Heterogeneous Computing
Verantwortlich: Prof.-Dr. Thilo Pionteck
Unter “Heterogeneous Computing” werden Rechensysteme verstanden, welche neben (Mehrkern)CPUs noch aus weiteren, spezialisierten Recheneinheiten wie GPUs oder FPGAs bestehen. Der Vorteil solcher heterogener Systeme besteht darin, dass Tasks auf genau denjenigen Hardwareplattformen ausgeführt werden können, welche die optimale Hardwarearchitektur für eine schnelle und energieeffiziente Realisierung bieten. Beispielsweise lassen sich Streaminganwendungen besonders effizient mit FPGAs realisieren, während kontrollflussdominierte Anwendungen sich besser für eine Realisierung auf CPUs eignen.
Diese Vorlesung beschäftigt sich mit dem Aufbau und Programmierung solcher Systeme. Zu Beginn wird der OpenCL-Standard vorgestellt, welcher es erlaubt, Anwendungen sowohl für CPUs, GPUs als auch FPGAs zu erstellen. Anschließend wird auf die jeweiligen Besonderheiten der einzelnen Hardwareplattformen eingegangen und es wird gezeigt, wie OpenCL-Anwendungen an architekturspezifische Eigenschaften angepasst werden können. Ein weiterer Schwerpunkt der Vorlesung ist die Vorstellung unkonventioneller Rechnenprinzipien. So werden Datenflussprozessoren ebenso behandelt wie Systolic Arrays. Auch werden spezielle Architekturen für die Realisierung von CNNs vorgestellt.
Zu der Vorlesung werden praktische Übungen angeboten. Neben Übungen zu OpenCL für GPUs und CPUs wird die Entwichlungsumgebung MaxCompiler der Firma Maxeller für Datenflussarchitekturen vorgestellt. Ein weiterer Bestandteil der Übungen ist die Vorstellung von unkonventionellen Hardwarearchitekturen durch die Studierenden.
Die Themen der Vorlesung im Einzelnen:
- Alternative Rechenprinzipien
- Aufbau hybrider Rechnersysteme
- Systolic Arrays
- Hardwarearchitekturen für CNNs
- Datenflussprozessoren
- Datenflussrechner
- OpenCL für GPUs, FPGAs, und CPUs
- Hardwarearchitektur von GPUs
Vorlesungssprache: Englisch, Stand 01.10.2019