- BufferCreate
- BufferFree
- BufferFromArray
- BufferRead
- BufferWrite
- Execute
- GetContext
- GetKernel
- GetKernelName
- GetProgram
- Initialize
- KernelCreate
- KernelFree
- SetArgument
- SetArgumentBuffer
- SetArgumentLocalMemory
- SetBuffersCount
- SetKernelsCount
- Shutdown
- SupportDouble
Класс для работы с программами OpenCL
Класс COpenCL является оберткой для удобной работы с функциями OpenCL. Использование GPU в некоторых случаях позволяет значительно увеличить скорость вычислений.
Примеры использования класса для расчетов на числах float и double можно найти в папке MQL5\Scripts\Examples\OpenCL\ в соответствующих подкаталогах, исходные коды самих OpenCL-программ находятся в подкаталогах MQL5\Scripts\Examples\OpenCL\Double\Kernels и MQL5\Scripts\Examples\OpenCL\Float\Kernels .
- MatrixMult.mq5 – пример умножения матриц с использованием глобальной и локальной памяти
- BitonicSort.mq5 – пример параллельной сортировки элементов массива на GPU
- FFT.mq5 – пример расчета быстрого преобразования Фурье
- Wavelet.mq5 – пример расчета вейвлет-преобразования данных при помощи вейвлета Морле.
Исходный код OpenCL рекомендуется писать в отдельных CL-файлах, которые затем можно подключать к MQL5-программе с помощью ресурсных переменных.
Декларация
class COpenCL |
Заголовок
#include <OpenCL\OpenCL.mqh> |
Методы класса
Имя |
Описание |
---|---|
Создает буфер OpenCL по указанному индексу |
|
Удаляет буфер по указанному индексу |
|
Создает буфер по указанному индексу из массива значений |
|
Считывает в массив буфер OpenCL по указанному индексу |
|
Записывает массив данных в буфер по указанному индексу |
|
Выполняет OpenCL программу по указанному индексу |
|
Возвращает хендл контекста OpenCL |
|
Возвращает хендл объекта кернел по указанному индексу |
|
Возвращает имя объекта кернел по указанному индексу |
|
Возвращает хендл программы OpenCL |
|
Инициализирует программу OpenCL |
|
Создает точку входа в программу OpenCL по указанному индексу |
|
Удаляет функцию запуска OpenCL по указанному индексу |
|
Выставляет параметр для функции OpenCL по указанному индексу |
|
Выставляет буфер OpenCL в качестве параметра функции OpenCL по указанному индексу |
|
Выставляет параметр в локальной памяти для функции OpenCL по указанному индексу |
|
Устанавливает количество буферов |
|
Устанавливает количество объектов кернел |
|
Выгружает программу OpenCL |
|
Узнает наличие поддержки на устройстве вещественных типов данных |