Referência MQL5Trabalhando com OpenCL 

Trabalhando com OpenCL

Programas em OpenCLsão utilizados para a realização de cálculos sobre placas de vídeo que suportam OpenCL 1.1 ou superior. Placas de vídeo modernas contêm centenas de pequenos processadores especializados que podem executar simultaneamente operações matemáticas simples, com fluxos de dados de entrada. A linguagem OpenCL organiza computação paralela e proporciona maior velocidade para uma certa classe de tarefas.

Em algumas placas de vídeo, o modo com números de tipo double está desativado por padrão, o que leva a o erro de compilação 5105. Para ativar o modo de suporte de números double, no texto do programa OpenCl, é preciso adicionar a diretiva #pragma OPENCL EXTENSION cl_khr_fp64 : enable. No entanto, se a placa de vídeo não suportar double, a desativação dessa diretiva não irá ajudar.

É 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.

Funções para os programas em execução em OpenCL:

Função

Ação

CLHandleType

Retorna o tipo do manipulador de OpenCL como valor da enumeração ENUM_OPENCL_HANDLE_TYPE

CLGetInfoInteger

Retorna o valor da propriedade de uma integer para um objeto ou dispositivo OpenCL

CLContextCreate

Cria um contexto OpenCL

CLContextFree

Remove um contexto OpenCL

CLGetDeviceInfo

Receives device property from OpenCL driver

CLProgramCreate

Cria um programa OpenCL a partir de um código fonte

CLProgramFree

Remove um programa OpenCL

CLKernelCreate

Cria uma função de partida OpenCL

CLKernelFree

Remove uma função de partida OpenCL

CLSetKernelArg

Define um parâmetro para a função OpenCL

CLSetKernelArgMem

Define um buffer OpenCL como um parâmetro da função OpenCL

CLSetKernelArgMemLocal

 

CLBufferCreate

Cria um buffer OpenCL

CLBufferFree

Exclui um buffer OpenCL

CLBufferWrite

Grava um array num buffer OpenCL

CLBufferRead

Lê um buffer de OpenCL num array

CLExecute

Executa um programa OpenCL

CLExecutionStatus

 

Também Veja

OpenCL, Recursos