MQL5 RiferimentoLavorare con OpenCL 

Lavorare con OpenCL

I programmi in OpenCL sono utilizzati per l'esecuzione di calcoli sulle schede video che supportano OpenCL 1.1 o superiore. Schede video moderne contengono centinaia di piccoli processori specializzati che possono contemporaneamente eseguire semplici operazioni matematiche con i flussi di dati in entrata. Il linguaggio OpenCL organizza il calcolo parallelo ed offre una maggiore velocità per una certa classe di tasks.

In alcune schede grafiche il lavoro con i tipi di numeri double è disabilitato di default. Questo può portare ad un errore di compilazione 5105. Per abilitare il supporto per i numeri di tipo double, si prega di aggiungere la seguente direttiva al programma OpenCL: #pragma OPENCL EXTENSION cl_khr_fp64 : enable. Tuttavia, se una scheda grafica non supporta i double, l'abilitazione di questa direttiva non sarà di aiuto.

Si raccomanda di scrivere il codice sorgente per OpenCL in file separati CL, che possono essere successivamente inseriti nel programma MQL5 utilizzando le variabili di risorse.

Funzioni per l'esecuzione di programmi in OpenCL:

Funzione

Azione

CLHandleType

Restituisce il tipo di un handle OpenCL come valore dell'enumerazione ENUM_OPENCL_HANDLE_TYPE

CLGetInfoInteger

Restituisce il valore di una proprietà integer per un oggetto OpenCL o dispositivo

CLContextCreate

Crea un contesto OpenCL

CLContextFree

Rimuove un contesto OpenCL

CLGetDeviceInfo

Riceve la proprietà del dispositivo dal driver di OpenCL

CLProgramCreate

Crea un programma di OpenCL da un codice sorgente

CLProgramFree

Rimuove un programma di OpenCL

CLKernelCreate

Crea una funzione di avvio OpenCL

CLKernelFree

Rimuove una funzione di avvio OpenCL

CLSetKernelArg

Imposta un parametro per la funzione OpenCL

CLSetKernelArgMem

Imposta un buffer OpenCL come parametro della funzione OpenCL

CLSetKernelArgMemLocal

Imposta il buffer locale come argomento della funzione del kernel

CLBufferCreate

Crea un buffer di OpenCL

CLBufferFree

Elimina un buffer OpenCL

CLBufferWrite

Scrive un array in un buffer OpenCL

CLBufferRead

Legge un buffer OpenCL in un array

CLExecute

Esegue un programma OpenCL

CLExecutionStatus

Restituisce lo stato di esecuzione del programma OpenCL

Vedi anche

OpenCL, Risorse