OpenCL-Programmierung: Tutorials, Bücher und Präsentationen für den schnellen Einstieg

Als Entwickler sieht man sich beim Entwurf einer neuen Anwendung zunächst mit der Frage konfrontiert, wie sich die Rechenleistung älterer, aktueller und zukünftiger Computer bestmöglich ausnutzen lässt. Insbesondere bei Echtzeitanwendungen, die für den Einsatz im Rahmen der Spieleprogrammierung entwickelt werden, kommt dieser Fragestellung eine besondere Bedeutung zu.
Betrachten wir als Beispiel eine Physik-Engine. In nicht wenigen Internetforen wird verbissen darüber gestritten, ob Physikberechnungen von der CPU oder von der GPU (Grafikkarte) ausgeführt werden sollten. Die pragmatische Antwort lautet, dass die Berechnungen sinnvoller Weise dort durchgeführt werden sollten, wo momentan genügend Rechenleistung zur Verfügung steht. Spielrelevante Physik sollte jedoch wenn möglich von der CPU berechnet werden, um den notwendigen Datentransfer zwischen CPU und GPU möglichst gering zu halten. Voraussetzung hierfür ist jedoch, dass die Fähigkeiten moderner 4-Kern-CPUs mit ihren bis zu 8 parallelen Threads auch wirklich ausgenutzt werden.
Ist man als Entwickler daran interessiert, Berechnungen zu parallelisieren und diese sowohl auf der CPU als auch auf der GPU auszuführen, dann ist der Einsatz von OpenCL zwingend erforderlich. Alternativen stehen momentan nicht zur Verfügung.

Für den OpenCL-Erstkontakt empfiehlt sich der nachfolgende deutschsprachige Artikel, der sowohl mit einer ausführlichen Einführung als auch mit einem einfachen Programmbeispiel aufwarten kann:



Ein kostenloses OpenCL-Buch im HTML-Format finden Sie hier:



Entwurf eines einfachen OpenCL-Frameworks; einfache OpenCL-basierte Bewegungssimulation eines Asteroidenfelds:



Speziell für den Einsatz in Universitäten hat AMD das sogenannte OpenCL University Kit zusammengestellt:



Die aktuelle OpenCL-Spezifikation finden Sie auf der Webseite der Khronos Group:



Intel OpenCL SDK:



AMD OpenCL SDK:



OpenCL bei NVIDIA: