Veranstaltung: Fundamentals of GPU Programming

Nummer:
141374
Lehrform:
Vorlesung und Übungen
Medienform:
Folien
Verantwortlicher:
Prof. Dr. Ralf Peter Brinkmann
Dozent:
Dr. Denis Eremin (ETIT)
Sprache:
Englisch
SWS:
3
LP:
4
Angeboten im:
Wintersemester

Termine im Wintersemester

  • Beginn: Donnerstag den 11.10.2018
  • Vorlesung Donnerstags: ab 14:15 bis 15.45 Uhr im ID 03/471
  • Übung Donnerstags: ab 16:15 bis 17.00 Uhr im ID 03/471

Prüfung

Termin nach Absprache mit dem Dozenten.

Prüfungsform:mündlich
Prüfungsanmeldung:FlexNow
Dauer:30min

Ziele

Die Studierenden erlernen das Programmieren auf Grafikprozessoren (GPUs)

Inhalt

Zu einem bestimmten Zeitpunkt um 2003 stieg die Rechenleistung nicht auf Kosten der Taktfrequenz des Prozessors, sondern durch Erhöhung der Anzahl der auf dem Prozessorchip zugewiesenen Rechenkerne. Grafikprozessoren (GPUs) sind die Meister dieser Computer-Hardware-Entwicklung und bieten bis zu Zehntausende einzelner Kerneinheiten. Gleichzeitig wird das GPU-Speichersystem nicht so sehr durch die Kompatibilitätsanforderungen mit älteren Generationen eingeschränkt wie CPU-Speichersysteme. Deswegen zeigen GPUs im Vergleich zu ihren älteren "Bruder" -Zentraleinheiten (CPUs) eine deutlich bessere Rohleistung der Recheneinheiten und des Speichersystems. Ursprünglich für Videobearbeitungsaufgaben entwickelt, wird die enorme Rechenleistung moderner GPUs üblicherweise zur Unterstützung von CPUs oder zur Lösung einer Vielzahl von Rechenproblemen mit (massiv) parallelisierbaren Teilen verwendet, wodurch Teraflops-hohe Rechenleistung kann schon auf Laptop- / Desktop-Computers erzielt werden. Der vorliegende Kurs zeigt, wie CUDA C (Erweiterung der C-Sprache für die GPU-Programmierung) und das entsprechende (sehr flexible!) CUDA-Laufzeit-API-Framework verwendet werden kann, um die Ausführung einiger typischer Programmiermuster um einen Faktor von 10 oder mehr zu beschleunigen das der CPU. Ausgehend vom CUDA-Programmiermodell geht man zum CUDA-Ausführungsmodell über und betrachtet grundlegende konzeptionelle, Software- und Hardwareprobleme, die zum Verständnis der Funktionsweise von GPUs beitragen. Fallstudien zu mehreren Problemen mit massiv parallelen Algorithmen, die in GPUs implementiert sind, werden ebenfalls weiter ausgeführt. Das theoretische Wissen, das in den Vorlesungen vermittelt wird, wird durch eine Vielzahl von praktischen Beispielen untermauert, an denen die Schüler zu Hause arbeiten können.

Voraussetzungen

none

Empfohlene Vorkenntnisse

C (Programmiersprache)