OpenCL – mit Grafikkarten rechnen statt zocken Mit der immer weiter wachsenden Leistungsfähigkeit von Grafikprozessoren öffnete sich ein breites Einsatzfeld, zunächst im wissenschaftlichen Bereich, später auch für Desktop-Anwendung. Der entscheidende Schritt war dabei die Einführung von universell programmierbaren Shadern und die Bereitstellung eines Frameworks, das den Programmierer bei der Entwicklung von Anwendungen für Grafikprozessoren unterstützt. Im Dezember 2008 Jahres wurde der hersteller- und plattformübergreifende Standard OpenCL verabschiedet, der bereits erste Implementierungen durch die Grafikkartenhersteller AMD und Nvidia, durch Apple und durch IBM gefunden hat. Der Vortrag wird das Kozept, auf das OpenCL-Programme aufbauen, vorstellen und eine kleine Einführung in die Grafikprogrammierung geben. Ein OpenCL-Programm gliedert sich grundsätzlich in zwei Teile: ein Teil, der auf der CPU ausgeführt wird und ein Teil, der auf dem Grafikprozessor (GPU) ausgeführt wird. Aufgrund der extrem hohen Parallelität der Grafikprozessoren werden eine Vielzahl von Threads gestartet. Im Vortrag wird erläutert, wie man diese handhabt und welche Einschränkungen zu beachten sind. Ebenso wird erklärt, wie CPU- und GPU-Teil miteinander kommunizieren und wie Daten in den Grafikspeicher kopiert werden. Nicht fehlen darf natürlich auch eine Diskussion der Fragen, welche Art von Algorithmen überhaupt für die Implementierung auf Grafikprozessoren geeignet ist, und welche Kriterien bei der Optimierung des Programms wichtig sind. Zum Verständnis des Vortrages sind Programmierkenntnisse erforderlich, die Programmbeispiele werden in C sein. Ebenfalls hilfreich sind grundlegende Kenntnisse im nebenläufigen Programmieren (z. B. mit PThread oder OpenMP). WWW-Seite zum OpenCL-Standard: http://www.khronos.org/opencl/