- BufferCreate
- BufferFree
- BufferFromArray
- BufferRead
- BufferWrite
- Execute
- GetContext
- GetKernel
- GetKernelName
- GetProgram
- Initialize
- KernelCreate
- KernelFree
- SetArgument
- SetArgumentBuffer
- SetArgumentLocalMemory
- SetBuffersCount
- SetKernelsCount
- Shutdown
- SupportDouble
Klasse für das Arbeiten mit OpenCL Programmen
Die Klasse COpenCL ist ein Wrapper ("Umhüllung") für das Arbeiten mit OpenCL Funktionen. Die Verwendung von GPU erlaubt es, in einigen Fällen die Geschwindigkeit der Berechnungen wesentlich zu erhöhen.
Beispiele für die Verwendung der Klasse für Berechnungen anhand der Zahlen float und double kann man im Ordner MQL5\Scripts\Examples\OpenCL\ in den entsprechenden Unterverzeichnissen finden, Quellcodes der OpenCL-Programme sind in den Unterverzeichnissen MQL5\Scripts\Examples\OpenCL\Double\Kernels und MQL5\Scripts\Examples\OpenCL\Float\Kernels zu finden.
- MatrixMult.mq5 - ein Beispiel für die Multiplikation von Matrizes unter Verwendung des globalen und lokalen Speichers
- BitonicSort.mq5 - ein Beispiel für eine parallele Sortierung von Elementen eines Arrays auf GPU
- FFT.mq5 - ein Beispiel für die Berechnung schneller Fourier-Transformation
- Wavelet.mq5 - ein Beispiel für die Berechnung der Wavelet-Transformation mithilfe von Morlet-Wavelet.
Es ist zu empfehlen, den OpenCL-Code in separaten CL-Dateien zu schreiben, die man später mithilfe von Ressourcenvariablen einem MQL5-Programm hinzufügen kann.
Deklaration
class COpenCL |
Überschrift
#include <OpenCL\COpenCL.mqh> |
Methoden der Klasse
Name |
Beschreibung |
---|---|
Erstellt einen OpenCL Puffer nach dem angegebenen Index |
|
Löscht einen Puffer nach dem angegebenen Index |
|
Erstellt einen Puffer nach dem angegebenen Index aus dem Array von Werten |
|
Liest einen OpenCL Puffer nach dem angegebenen Index ins Array |
|
Schreibt ein Array von Daten in den Puffer nach dem angegebenen Index |
|
Führt ein OpenCL Programm nach dem angegebenen Index aus |
|
Gibt den Handle des OpenCL Kontextes zurück |
|
Gibt den Handle eines Kernel-Objekts nach dem angegebenen Index zurück |
|
Gibt den Namen eines Kernel-Objekts nach dem angegebenen Index zurück |
|
Gibt den Handle des OpenCL-Programms zurück |
|
Initialisiert ein OpenCL Programm |
|
Erstellt den Einsprungpunkt eines OpenCL Programm nach dem angegebenen Index |
|
Löscht die Startfunktion von OpenCL nach dem angegebenen Index |
|
Setzt einen Parameter für eine OpenCL Funktion nach dem angegebenen Index |
|
Setzt einen OpenCL Puffer als Parameter einer OpenCL Funktion nach dem angegebenen Index |
|
Setzt einen Parameter im lokalen Speicher für eine OpenCL Funktion nach dem angegebenen Index |
|
Setzt die Anzahl von Puffern |
|
Setzt die Anzahl von Kernel-Objekten |
|
Entfernt ein OpenCL Programm aus dem Speicher |
|
Ermittelt, ob reelle Datentypen auf dem Gerät unterstützt werden |