MetaTrader 5 herunterladen
Nachschlagewerk MQL5Arbeit mit OpenCL 

Arbeit mit OpenCL

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

CLHandleType

Gibt den Typ des OpenCL-Handles als ein Wert aus Enumeration ENUM_OPENCL_HANDLE_TYPE zurück

CLGetInfoInteger

Gibt den Wer des ganzzahligen Eigenschafts für ein OpenCL-Objekt oder Gerät zurück

CLContextCreate

Erstellt einen Kontext für OpenCL

CLContextFree

Löscht den Kontext von OpenCL

CLGetDeviceInfo

Erhielt die Geräteeigenschaft aus dem OpenCL-Treiber

CLProgramCreate

Erstellt ein OpenCL-Programm aus dem Quellcode

CLProgramFree

Löscht das OpenCL-Programm

CLKernelCreate

Erstellt eine Funktion des Starts von OpenCL

CLKernelFree

Löscht die Funktion des Starts von OpenCL

CLSetKernelArg

Setzt den Parameter für die OpenCL-Funktion

CLSetKernelArgMem

Setzt einen OpenCL-Puffer als ein Parameter der OpenCL-Funktion

CLSetKernelArgMemLocal

Setzt den lokalen Puffer als Argument der kernel-Funktion

CLBufferCreate

Erstellt einen OpenCL-Puffer

CLBufferFree

Löscht einen OpenCL-Puffer

CLBufferWrite

Schreibt ein Array in einen OpenCL-Puffer

CLBufferRead

Liest einen OpenCL-Puffer in ein Array

CLExecute

Führt OpenCL-Programm

CLExecutionStatus

Gibt den Ausführungsstatus eines OpenCL Programms zurück

Sehen Sie auch

OpenCL, Ressourcen