Heterogeneous Computing (SoSe)

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. Hierzu wird auch ein kurzer Einblick in die Synthese von Schaltungen und in die Hardware/Software-Partitionierung von Anwendungen gegeben. Als weitere Beschreibungsmöglichkeit für FPGA-basierte Hardwarebeschleuniger werden Datenflussmodelle behandelt. Im Rahmen der Vorlesung und Übung werden unter anderem die Entwicklungsumgebungen SDAccel der Firma Xilinx sowie MaxCompiler der Firma Maxeler vorgestellt.

Die Themen der Vorlesung im Einzelnen:

  • Hardwarearchitektur von GPUs und FPGAs
  • Manycore-Architekturen
  • Datenflussrechner
  • Aufbau hybrider Rechnersysteme
  • Programmiermodelle für Manycore-Systeme
  • Datenflussrechner
  • OpenCL für GPUs, FPGAs, und CPUs
  • Hardware-Synthese: Scheduling, Binding, Allokation
  • High-Level-Synthese
  • Dynamische Rekonfiguration von FPGAs

Verantwortlich: Prof.-Dr. Thilo Pionteck

Letzte Änderung: 09.07.2018 - Ansprechpartner:

Sie können eine Nachricht versenden an:
Sicherheitsabfrage:
Captcha
 
Lösung: