- BufferCreate
- BufferFree
- BufferFromArray
- BufferRead
- BufferWrite
- Execute
- GetContext
- GetKernel
- GetKernelName
- GetProgram
- Initialize
- KernelCreate
- KernelFree
- SetArgument
- SetArgumentBuffer
- SetArgumentLocalMemory
- SetBuffersCount
- SetKernelsCount
- Shutdown
- SupportDouble
Classe permettant de travailler avec les programmes OpenCL
La classe COpenCL est un wrapper facilitant le travail avec les fonctions OpenCL. Dans certains cas, l'utilisation de la GPU permet d'améliorer de façon substantielle la vitesse de calculs.
Des exemples d'utilisation de la classe pour des calculs basés sur des valeurs flottantes et doubles sont disponibles dans les répertoires correspondants du répertoire MQL5\Scripts\Examples\OpenCL\. Le code sources des programmes OpenCL sont situés dans les répertoires MQL5\Scripts\Examples\OpenCL\Double\Kernels et MQL5\Scripts\Examples\OpenCL\Float\Kernels.
- MatrixMult.mq5 - exemple de multiplication de matrices utilisant la mémoire globale et la mémoire locale
- BitonicSort.mq5 - exemple de tri en parallèle des éléments d'un tableau dans la GPU
- FFT.mq5 - exemple de calcul de la transformation de Fourier rapide
- Wavelet.mq5 - exemple de transformation en ondelettes de données utilisant l'ondelette de Morlet.
Il est recommandé d'écrire le code source OpenCL dans des fichiers CL séparés, pouvant être par la suite inclus dans le programme MQL5 en utilisant des variables de ressource.
Déclaration
class COpenCL |
Titre
#include <OpenCL\OpenCL.mqh> |
Méthode de la classe
Nom |
Description |
---|---|
Crée un buffer OpenCL à l'indice spécifié |
|
Supprime le buffer à l'indice spécifié |
|
Crée un buffer à l'indice spécifié à partir d'un tableau de valeurs |
|
Lit un buffer OpenCL à l'indice spécifié dans un tableau |
|
Ecrit un tableau de valeurs dans le buffer à l'indice spécifié |
|
Exécute le noyau OpenCL à l'indice spécifié |
|
Retourne le handle du contexte OpenCL |
|
Retourne le handle de l'objet noyau à l'indice spécifié |
|
Retourne le nom de l'objet noyau à l'indice spécifié |
|
Retourne le handle du programme OpenCL |
|
Initialise le programme OpenCL |
|
Crée un point d'entrée dans le programme OpenCL à l'indice spécifié |
|
Supprime une fonction de démarrage OpenCL à l'indice spécifié |
|
Définit un paramètre pour la fonction OpenCL à l'indice spécifié |
|
Définit un buffer OpenCL comme paramètre de la fonction OpenCL à l'indice spécifié |
|
Définit un paramètre dans la mémoire locale pour la fonction OpenCL à l'indice spécifié |
|
Définit le nombre de buffers |
|
Définit le nombre d'objets noyaux |
|
Décharge le programme OpenCL |
|
Vérifie si les types de données à virgule flottante sont supportés sur le périphérique |