Posts mit dem Label OpenCL werden angezeigt. Alle Posts anzeigen
Posts mit dem Label OpenCL werden angezeigt. Alle Posts anzeigen

OpenCL-Programmierung – eine deutschsprachige Einführung

An dieser Stelle möchte ich Ihnen eine wirklich hervorragend geschriebene deutschsprachige Einführung in die OpenCL-Programmierung vorstellen:

Praktikumsanleitung GPU Computing (Manuel Hohmann, 12. Januar 2012)

Wie der Titel schon vermuten lässt, erfolgt die Einführung vorwiegend praxisorientiert mit einer Vielzahl von Source-Code-Beispielen.

OpenCL basierte Rigid Body Physik Simulation

Im Rahmen seiner Master Thesis Real-Time Rigid Body Interactions (Norwegian University of Science and Technology / NTNU, 2011) entwickelte Fredrik Fossum eine für GPUs optimierte OpenCL basierte Rigid-Body-Physik-Simulation.

Wichtige Teile dieser Arbeit basieren auf dem GPU-Gems-3-Artikel Real-Time Rigid Body Simulation on GPUs von Takahiro Harada:

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.