OpenCL (Open Computing Language)

OpenCL steht für "Open Computing Language". OpenCL ist ein offener Standard für die parallele, plattformübergreifende Programmierung. Er wurde ursprünglich von Apple im Jahr 2008 entwickelt und wird jetzt von der Khronos-Gruppe gepflegt. Das erste größere Betriebssystem, das OpenCL unterstützte, war Snow Leopard (Mac OS X 10.6), das 2009 veröffentlicht wurde.

OpenCL bietet eine API, die es Softwareprogrammen ermöglicht, gleichzeitig auf mehrere Prozessoren zuzugreifen, um eine parallele Verarbeitung durchzuführen. Beispiele hierfür sind CPUs, GPUs, digitale Signalprozessoren (DSPs) und feldprogrammierbare Gate-Arrays (FPGAs). Durch die Verteilung der Rechenlast auf mehrere Prozessoren steigert OpenCL die Verarbeitungseffizienz und kann die Leistung eines Programms erheblich verbessern.

Obwohl OpenCL viele verschiedene Prozessortypen unterstützt, wird es vor allem für den Zugriff auf den Grafikprozessor für allgemeine Rechenaufgaben verwendet. Diese Technik, auch GPGPU genannt, nutzt die Rechenleistung des Grafikprozessors und ermöglicht es ihm, die CPU bei der Ausführung von Berechnungen zu unterstützen. Vor OpenCL blieb der Grafikprozessor oft im Leerlauf, während die CPU mit voller Leistung lief. OpenCL ermöglicht es dem Grafikprozessor, die CPU bei der Verarbeitung nicht grafikbezogener Berechnungen zu unterstützen.

Um die Vorteile von OpenCL nutzen zu können, müssen sowohl die Hardware als auch die Software die OpenCL-API unterstützen. Aufgrund des Leistungsvorteils, den OpenCL bietet, unterstützen die meisten von NVIDIA und AMD entwickelten Grafikkarten jetzt OpenCL. Viele mobile Grafikprozessoren, wie z. B. die in Smartphones und Tablets verwendeten, unterstützen ebenfalls OpenCL.

Stand: 13.08.2020