OpenCL
Mehr Info
- Erstellt von
- Apple, standardisiert von der Khronos Group
- Jahr
- 2009 (1.0)
- Typ
- Offener Standard für Parallelberechnung
- Offizielle Website
- khronos.org/opencl
Offener Standard, um Berechnungen auf Grafikkarten, Prozessoren und FPGAs mit demselben Code auszuführen — das freie Gegenstück zu CUDA, das sich nie ganz durchsetzen konnte.
Apple entwarf den ersten Vorschlag und übergab ihn an die Khronos Group, die Ende 2008 die Version 1.0 veröffentlichte. Das Programmiermodell ähnelt CUDA: Ein Kernel wird in einem C-Dialekt geschrieben und von Tausenden Work-Items in Work-Groups ausgeführt, mit expliziter Verwaltung von globalem, lokalem und privatem Speicher. Der Unterschied war, dass derselbe Code auf der Hardware jedes beliebigen Herstellers laufen sollte.
In der Praxis gewann die Portabilität nicht. Nvidia hatte die besseren Werkzeuge, bessere Profiler und ein Bibliotheks-Ökosystem, auf das sich CUDA-Code stützen konnte, während die Qualität der OpenCL-Treiber von Hersteller zu Hersteller stark schwankte. Der Standard lebt weiter in eingebetteten Systemen, in der Signalverarbeitung und als Zwischenformat über SPIR-V, während viel neue Arbeit stattdessen in Vulkan Compute und SYCL fließt.