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

Beispielprogramme

Verwendung von OpenCL


Kurzbeschreibung

OpenCL ist eine mit C und C++ verwendbare Programmbibliothek, die Funktionen bereitstellt, mit denen die Prozessoren der GPU für die Durchführung aufwendiger Berechnungen herangezogen werden können. Das Verarbeitungsmodell von OpenCL folgt dem SIMD (Single Instruction Multiple Data) Prinzip.

Das Verarbeitungsmodell SIMD ist für Aufgaben verwendbar, bei denen die gleiche Rechnung für eine Vielzahl voneinander unabhängiger Datensätze auszuführen ist. Solche Aufgaben lassen sich mit geringer Mühe finden. Die hier bereitgestellten Beispielprogramme zeigen

Beide Aufgaben sind für das Verarbeitungsmodell SIMD tauglich, da der Farbwert jedes Bildpunktes völlig unabhängig von den Farbwerten aller anderen Bildpunkte berechnet werden kann.

Die Verwendung der GPU mit OpenCL folgt dem gleichen Schema, nach dem OpenGL ES 2.0 verwendet wird. Ein Hostprogramm:

Erforderliche Pakete

Für die Compilierung von C-Programmen, die Gtk-3 verwenden, wird das Paket libgtk-3-dev benötigt,das mit der Anweisung

sudo apt-get install libgtk-3-dev

installiert wird.

Für die Compilierung von Programmen, die OpenCL verwenden, wird das Paket opencl-headers benötigt. Dieses Paket wird mit der folgenden Anweisung installiert:

sudo apt-get install opencl-headers

Compilierung

Die Funktionen von OpenCL werden mit der folgenden include-Anweisung zugänglich:

#include "CL/opencl.h"

Für das Binden eines Programms, das OpenCL verwendet, ist die Option

-lOpenCL

anzugeben.


Archivdatei mit diesem Beispielprogramm: C-OpenCL-Gradient02.tar.gz.

Ein mit OpenCL berechneter Farbverlauf

Compilierung

Die Compilierung geschieht im Hauptverzeichnis des Projekts wie folgt:

make

Das compilierte Programm wird im Hauptverzeichnis des Projekts abgelegt umd mit dem Befehl

./demo

gestartet.


Das Beispielprogramm verwendet OpenCL für die Berechnung eines Fraktals. (Das gleiche Fraktal wird auch durch ein Beispielprogramm für OpenGL ES 2.0 berechnet.)

Archivdatei mit diesem Beispielprogramm: C-OpenCL-Fraktal001.tar.gz.

Ein mit OpenCL berechnetes Fraktal

Ein mit OpenCL berechnetes Fraktal

Mit dem linken Schieberegler wird der Bildausschnitt eingestellt, mit dem rechten Schieberegler der Parameter α.


zur Inhaltsübersicht des Kapitels