zu www.bildungsgueter.de zur Inhaltsübersicht des Kapitels

OpenCL

Übersicht


Einführung

Ein programmierbarer Grafikprozessor ist eine Verarbei­tungs­einheit, die über viele (oft einige hundert, gelegentlich sogar mehr als tausend) Prozessoren verfügt. Diese Prozessoren können gleichzeitig verschiedene Teilaufgaben einer größeren Rechen­aufgabe erledigen. Dabei wird meist verlangt, dass alle Prozessoren gleichzeitig die gleiche Befehlsfolge auf unterschiedliche Daten anwenden. Dieses spezielle Schema heißt SIMD (Single Instruction Multiple Data).

Situation bei Android: Bei einigen Geräteanbietern steht OpenCL für Android zur Verfügung. Google hat OpenCL auf seinen Geräten ab der Android-Version 4.4 blockiert. Diese Blockade kann nicht aufgehoben werden. Als Alternative zu OpenCL wird RenderScript bereitgestellt, das Teil des Android SDK ist.

Die Parallelprogrammierung für programmierbare Grafikprozessoren ist verhältnismäßig aufwändig, weil Programme für zwei sehr verschiedenartige Prozessoren bereitgestellt werden müssen:

Bei dieser Zweiteilung übernimmt der konventionelle Prozessor die Aufgabe

Terminologie

Das Programm, das auf dem konventionellen Prozessor abläuft und den Grafikprozessor steuert, wird host program genannt. Programme, die im Grafikprozessor ablaufen, werden Kernel genannt.

Diese Aufgabenteilung findet sich ähnlich bei dem Grafikframework OpenGL ES 2.0, wo ein in C oder C++ geschriebenes Steuerprogramm ebenfalls die Versorgung der GPU mit Programmen und Daten übernimmt.

Benötigte Software

Erforderliche Pakete

Das Paket opencl-c-headers wird benötigt. Es wird mit dem folgenden Befehl installiert:

sudo apt-get install opencl-c-headers

Berichtigung: Das wird alles mit den Paketen für die GPU-Treiber installiert und sollte nicht nochamls installiert werden!


zur Inhaltsübersicht des Kapitels