GPGPU mittels OpenCL und Cloo 12.11.2018, 00:00 Uhr

Den Turbo einschalten

Die GPU zum Beschleunigen von Programmabläufen nutzen – dotnetpro zeigt, wie auch Sie das können.
In der Softwareentwicklung ist Parallelisierung fast nicht mehr wegzudenken. Ob in den neueren Berufen der Datenwissenschaft große Datenmengen zu verarbeiten sind oder ein Server mehrere Anfragen simultan verarbeiten muss: Überall finden sich Anwendungsgebiete. Das ist nicht nur ­eine Frage der CPU, sondern inzwischen auch des Grafikprozessors. Er wird für die sogenannte GPGPU, die „General Purpose Computation on Graphics Processing Unit“ herangezogen. Spielen Sie etwa ein 3D-beschleunigtes Spiel, kommt der Prozessor der Grafikkarte, die sogenannte GPU (Graphics Processing Unit), zum Einsatz. In den  Anfangszeiten der modernen Grafikprogrammierung wurde den Entwicklern die Möglichkeit gegeben, mit sogenannten Shader-Programmen verschiedene Tätigkeiten selbst zu programmieren und die Aufgaben, für die sich eine CPU nicht eignet, auf die GPU auszulagern; etwa das Einfärben von Pixeln auf dem Bildschirm, das bekanntermaßen mehrere Millionen Male pro Bildaufbau erfolgt. Im weiteren Verlauf der technischen Entwicklung erhielten die Entwickler die Möglichkeit, die GPU auch für andere Arten von Aufgaben in Form von „Compute-Shadern“ zu nutzen [1]. Dabei handelt es sich um gleichartige Tätigkeiten, die mit einer hohen Menge von Daten unabhängig voneinander ausgeführt werden können.
Aufgrund der Architektur einer GPU können sogenannte datenparallele Tasks oft wesentlich effizienter ausgeführt werden, als es auf einer CPU der Fall wäre. Als Beispiele lassen sich etwa mathematische Kalkulationen wie die Matrixmultiplikation oder verschiedene Algorithmen aus dem Bereich der Signalverarbeitung finden. Dieser Artikel stellt Algorithmen sowohl in C# auf der CPU als auch auf der GPU vor und vergleicht sie. Voraussetzung, um die Beispiele selbst nachvollziehen zu können, ist ein Rechner mit einer entsprechenden OpenCL-fähigen Grafikkarte. Das sollte bei allen gängigen Modellen der Fall sein.

Jetzt 1 Monat kostenlos testen!

Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
  • + Digitales Kundenkonto,
  • + Zugriff auf das digitale Heft,
  • + Zugang zum digitalen Heftarchiv,
  • + Auf Wunsch: Weekly Newsletter,
  • + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar