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

Beschreibung der GPU

Übersicht


Einführung

Ein programmierbarer Grafikprozessor ist eine Verarbeitungseinheit, die über viele (oft einige hundert, gelegentlich sogar mehr als tausend) Prozessoren verfügt. Diese Prozessoren können gleichzeitig verschiedene Teilaufgaben einer größeren Rechenaufgabe 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 aublaufen, 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.

Grundsätzliches zur Verwendung von OpenGL ES

Die im TinkerBoard verbaute GPU unterstützt OpenCL, OpenGL ES 1.1, OpenGL ES 2.0 und OpenGL ES 3.0. Für alle diese Frameworks gilt, dass die Verbindung zur GPU durch EGL vermittelt wird.

OpenGl ES ist eine Sammlung von Spezifikationen für die Grafikprozessoren von embedded systems. In OpenGL ES finden sich wesentliche Ideen aus den Spezifikationen der OpenGL-Gruppe wieder. Trotzdem muss OpenGL ES sorgfältig von OpenGL unterschieden werden: Es handelt sich um verschiedene Systeme. Insbesondere besteht keine Code-Portabilität von OpenGL nach OpenGL ES.

EGL Reference Pages

OpenGL ES 1.1 Reference Pages

OpenGL Es 2.0

Dokumentation: OpenGL ES 2.0 Reference Pages.

Dokumentation: Full Specification (PDF, 204 Seiten).

Dokumentation: Shader Language (PDF, 119 Seiten).

Dokumentation: Shader Language (OnlineReference).

Das maßgebliche Buch zum Thema ist:

Munshi, Aaftab; Ginsburg, Dan; Shreiner, Dave

OpenGL ES 2.0 Programming Guide

Addison-Wesley, 2009, ISBN-13: 978-0-321-50279-7

OpenGL ES 3.0

Dokumentation: OpenGL ES 3.0 Reference Pages.


zur Inhaltsübersicht des Kapitels