Classe para trabalhar com programas OpenCL

A classe COpenCL é um wrapper (pano de embrulho) para facilitar o trabalho com as funções OpenCL. O uso da GPU, em alguns casos, pode aumentar significativamente a velocidade de computação.

Exemplos de utilização de classe para cálculos nos números float e double podem ser encontrados na pasta MQL5\Scripts\Examples\OpenCL\ nos respectivos sub-diretórios, os códigos-fontes dos programas OpenCL residem nos sub-diretórios MQL5\Scripts\Examples\OpenCL\Double\Kernels e MQL5\Scripts\Examples\OpenCL\Float\Kernels .

  • MatrixMult.mq5 - exemplo de multiplicação de matrizes usando as memórias global e local
  • BitonicSort.mq5 - exemplo de classificação paralela de elementos de matriz na GPU
  • FFT.mq5 - exemplo de cálculo de transformada rápida de Fourier
  • Wavelet.mq5 - exemplo de cálculo da transformação de dados por ondulação usando a transformação por ondulação Morlet.

É recomendado escrever o código-fonte OpenCL em arquivos CL separados, que podem então ser ligados ao programa MQL5 usando variáveis ​​de recursos.

Declaração

   class COpenCL

Cabeçalho

   #include <OpenCL\COpenCL.mqh>

Métodos de classe

Nome

Descrição

BufferCreate

Cria o buffer OpenCL segundo o índice especificado

BufferFree

Remove o buffer segundo o índice especificado

BufferFromArray

Cria o buffer segundo o índice especificado a partir da matriz de valores

BufferRead

Lê - na matriz - o buffer OpenCL segundo o índice especificado

BufferWrite

Escreve a matriz de dados no buffer segundo o índice especificado

Execute

Executa o programa OpenCL segundo o índice especificado

GetContext

Retorna o identificador de contexto OpenCL

GetKernel

Retorna o identificador de objeto kernel segundo o índice especificado

GetKernelName

Retorna o nome do objeto kernel segundo o índice especificado

GetProgram

Retorna o identificador de programa OpenCL

Initialize

Inicializa o programa OpenCL

KernelCreate

Cria o ponto de entrada para o programa OpenCL segundo o índice especificado

KernelFree

Exclui a função que inicia OpenCL segundo o índice especificado

SetArgument

Define o parâmetro para a função OpenCL segundo o índice especificado

SetArgumentBuffer

Define o buffer OpenCL como um parâmetro da função OpenCL segundo o índice especificado

SetArgumentLocalMemory

Define o parâmetro na memória local para a função OpenCL segundo o índice especificado

SetBuffersCount

Define o número de buffers

SetKernelsCount

Define o número de objetos kernel

Shutdown

Descarrega o programa OpenCL

SupportDouble

Confere a presença de suporte - no dispositivo - de tipos de dados reais