Clase para trabajar con programas OpenCL

La clase COpenCL es un envoltorio para trabajar cómodamente con las funciones OpenCL. El uso de GPU en ciertos casos permite aumentar considerablemente la velocidad de cálculo.

Los ejemplos de uso de la clase para los cálculos en las cifras float y double se pueden encontrar en la carpeta MQL5\Scripts\Examples\OpenCL\, en los catálogos correspondientes, los códigos fuente de los propios programas OpenCL se encuentran en los subcatálogos MQL5\Scripts\Examples\OpenCL\Double\Kernels y MQL5\Scripts\Examples\OpenCL\Float\Kernels.

  • MatrixMult.mq5 - ejemplo de multiplicación de matrices con uso de la memoria local y global
  • BitonicSort.mq5 - ejemplo de clasificación paralela de los elementos de la matriz en GPU
  • FFT.mq5 - ejemplo de cálculo de la transformada rápida de Fourier
  • Wavelet.mq5 - ejemplo de cálculo de la transformada de ondícula de los datos con la ayuda de la ondícula de Morlet.

Es recomendable escribir el código fuente de OpenCL en archivos CL aparte, que después se puedan incluir en el programa MQL5 con la ayuda de las variables de recurso.

Declaración

   class COpenCL

Encabezamiento

   #include <OpenCL\COpenCL.mqh>

Métodos de la clase

Nombre

Descripción

BufferCreate

Crea un búfer OpenCL según el índice indicado

BufferFree

Elimina un búfer según el índice indicado

BufferFromArray

Crea un búfer según el índice indicado de la matriz de valores

BufferRead

Lee en la matriz un búfer OpenCL según el índice indicado

BufferWrite

Escribe la matriz de datos en el búfer según el índice indicado

Execute

Ejecuta un programa OpenCL según el índice indicado

GetContext

Retorna el manejador del contexto OpenCL

GetKernel

Retorna el manejador del objeto núcleo según el índice indicado

GetKernelName

Retorna el nombre del objeto núcleo según el índice indicado

GetProgram

Retorna el manejador de un programa OpenCL

Initialize

Inicia un programa OpenCL

KernelCreate

Crea un punto de entrada en un programa OpenCL según el índice indicado

KernelFree

Elimina la función de inicio de OpenCL según el índice indicado.

SetArgument

Establece un parámetro para una función OpenCL según el índice indicado.

SetArgumentBuffer

Establece un búfer de OpenCL como parámetro de una función OpenCL según el índice indicado

SetArgumentLocalMemory

Establece un parámetro en la memoria local para una función OpenCL según el índice indicado.

SetBuffersCount

Establece el número de búferes

SetKernelsCount

Establece el número de objetos núcleo

Shutdown

Libera de la memoria un programa OpenCL.

SupportDouble

Aclara si se da soporte a los tipos reales de datos en el dispositivo