Classe per lavorare con i programmi OpenCL

La classe COpenCL è un wrapper per facilitare il lavoro con le funzioni OpenCL. In alcuni casi, l'uso della GPU permette di aumentare notevolmente la velocità di calcolo.

Esempi di utilizzo della classe per i calcoli basati su valori float e double possono essere trovati nelle corrispondenti sottodirectory dei MQL5\Scripts\Examples\OpenCL\cartella\. I codici sorgente dei programmi OpenCL si trovano nelle sottodirectory MQL5\Scripts\Examples\OpenCL\Double\Kernels e MQL5\Scripts\Examples\OpenCL\Float\Kernels.

  • MatrixMult.mq5 - esempio di moltiplicazione di matrici utilizzando la memoria globale e locale
  • BitonicSort.mq5 - esempio di ordinamento parallelo di elementi dell'array nella GPU
  • FFT.mq5 - esempio di calcolo di trasformata rapida di Fourier
  • Wavelet.mq5 - esempio di trasformata wavelet dei dati utilizzando la Wavelet Morlet.

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.

Dichiarazione

   class COpenCL

Titolo

   #include <OpenCL\OpenCL.mqh>

Metodi della classe

Nome

Descrizione

BufferCreate

Crea un buffer OpenCL in corrispondenza dell'indice specificato

BufferFree

Elimina buffer in corrispondenza dell'indice specificato

BufferFromArray

Crea un buffer in corrispondenza dell'indice specificato da un array di valori

BufferRead

Legge un buffer OpenCL all'indice specificato in un array

BufferWrite

Scrive un array di valori nel buffer in corrispondenza dell'indice specificato

Execute

Esegue il kernel OpenCL con l'indice specificato

GetContext

Restituisce l' handle del contesto OpenCL

GetKernel

Restituisce l'handle dell'oggetto kernel in corrispondenza dell'indice specificato

GetKernelName

Restituisce il nome dell'oggetto kernel in corrispondenza dell'indice specificato

GetProgram

Restituisce l'handle del programma OpenCL

Initialize

Inizializza il programma OpenCL

KernelCreate

Crea un punto di ingresso nel programma OpenCL in corrispondenza dell'indice specificato

KernelFree

Rimuove una funzione di avvio OpenCL in corrispondenza dell'indice specificato

SetArgument

Imposta un parametro per la funzione OpenCL in corrispondenza dell'indice specificato

SetArgumentBuffer

Imposta un buffer OpenCL come parametro della funzione OpenCL in corrispondenza dell'indice specificato

SetArgumentLocalMemory

Imposta un parametro nella memoria locale per la funzione di OpenCL in corrispondenza dell'indice specificato

SetBuffersCount

Imposta il numero di buffer

SetKernelsCount

Imposta il numero di oggetti del kernel

Shutdown

Scarica il programma OpenCL

SupportDouble

Controlla se i tipi di dati in virgola mobile sono supportati dal dispositivo