Programme auf OpenCLsind entwickelt, um Berechnungen auf Grafikkarten mit Unterstützung für OpenCL 1.1 oder höher auszuführen. Moderne Grafikkarten enthalten hunderte von kleinen, spezialisierten Prozessoren, die gleichzeitig einfache mathematische Operationen auf eingehenden Datenströme ausführen können. Die Sprache OpenCL übernimmt die Organisation der Parallel-Computing und ermöglicht eine hohe Geschwindigkeit für eine bestimmte Klasse von Aufgaben.
Bei einigen Grafikkarten ist der Modus der Arbeit mit double-Zahlen deaktiviert, das zum Kompilierung-Fehler 5105 führen kann. Um Unterstützung von double-Zahlen zu aktivieren, fügen Sie eine Direktive #pragma OPENCL EXTENSION cl_khr_fp64 : enable in den Text des OpenCL-Programms hinzu. Aber wenn die Grafikkarte den double-Typ nicht unterstützt, die Einbeziehung dieser Direktive wird nicht helfen.
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.
Funktionen zum Ausführen von Programmen auf OpenCL:
Funktion |
Aktion |
Gibt den Typ des OpenCL-Handles als ein Wert aus Enumeration ENUM_OPENCL_HANDLE_TYPE zurück |
|
Gibt den Wer des ganzzahligen Eigenschafts für ein OpenCL-Objekt oder Gerät zurück |
|
Erstellt einen Kontext für OpenCL |
|
Löscht den Kontext von OpenCL |
|
Erhielt die Geräteeigenschaft aus dem OpenCL-Treiber |
|
Erstellt ein OpenCL-Programm aus dem Quellcode |
|
Löscht das OpenCL-Programm |
|
Erstellt eine Funktion des Starts von OpenCL |
|
Löscht die Funktion des Starts von OpenCL |
|
Setzt den Parameter für die OpenCL-Funktion |
|
Setzt einen OpenCL-Puffer als ein Parameter der OpenCL-Funktion |
|
Setzt den lokalen Puffer als Argument der kernel-Funktion |
|
Erstellt einen OpenCL-Puffer |
|
Löscht einen OpenCL-Puffer |
|
Schreibt ein Array in einen OpenCL-Puffer |
|
Liest einen OpenCL-Puffer in ein Array |
|
Führt OpenCL-Programm |
|
Gibt den Ausführungsstatus eines OpenCL Programms zurück |
Sehen Sie auch