Master training highly parallel computing on FPGA and GPU
Lehrbeauftragte / Ansprechpartner:
Dipl. Inf. Oliver Knodel
Bestandteil des Moduls:
INF-MA-PR
Häufigkeit:
Die Lehrveranstaltung wird im Winter- und im Sommersemester angeboten.
Zeit und Ort:
Zeit und Ort entnehmen sie bitte dem Lehrangebotskatalog der Fakultät Informatik.
Inhalt und Qualifikationsziele:
Es erfolgt die Vertiefung bereits erworbener Kenntnisse auf dem Gebiet des Systementwurfs und des Hochleistungsrechenens (HPC). Ziel ist der Entwurf und die Implementierung von Rechenkernen (z.B. Monte Carlo Simulation) unter Einsatz eines Xilinx Virtex-5 oder Virtex-6 FPGA und den dort zur Verfügung stehenden FPGA-Architekturelemente wie z.B. DCM (Digital Clock Manager), HW-Multiplizierer, Block-RAM und SRAM. Es besteht die Möglichkeit die Kerne direkt in VHDL oder über eine High-Level Synthese (HLS) aus C-Code zu erstellen. Die Interaktion zwischen FPGA und Host erfolgt über PCI Express oder Gigabit Ethernet und einer eigenen C-Anwendung. Zur abschließenden Bewertung sind die Ergebnisse sind mit einer eigenen CUDA-Anwendung zu vergleichen.
Neben dem Entwurf der Rechenkerne besteht auch die Möglichkeit Teile einer HPC-Infratstruktur auf dem FPGA zu realisieren. Beispiele wären hier eine Verbindungsnetzwerk zwischen unterschiedlichen Rechenkernen auf dem FPGA oder die Anbindung eines DDR3-Speichers.
Gliederung:
- Einführungsseminar zur Vorstellung der Aufgabenstellung und zur Umsetzung des Entwurfes auf Xilinx Virtex-5 (ML505) oder Virtex-6 (ML605) FPGAs
- Selbständige Einarbeitung in den gewählten Algorithmus
- Entwurf eines Konzepts für den gewählten Algorithmus
- Implementierung des Rechenkerns in VHDL oder C (HLS)
- Erarbeitung geeigneter Testbenches zum vollständigen Test der entworfenen Komponenten und Dokumentation der Testergebnisse,
- ggf. Test der entworfenen Komponenten mit Simulationswerkzeugen
- Test der Komponenten auf dem Prototypingboard mit Hilfe einer Testapplikation auf dem Hostrechner
Literaturhinweise:
- Einführung in die Hardware-Beschreibungssprache VHDL
- Einführung in das Entwurfssystem Xilinx ISE
- Einführung in die High-Level Synthese mit Xilinx Vivado HLS (UG998 Juli, 2013)
- Rauber, T.; Rünger, G.: Parallele Programmierung, 2007
- Cook, S.: Cuda Programming: A Developer's Guide to Parallel Computing With GPUs, 2012.
- Gaster, B. R.: Heterogeneous Computing with OpenCL, 2008.
Art der Lehrveranstaltung:
Komplexpraktikum
Masterpraktikum
Lehr- und Lernformen:
8 Semesterwochenstunden, abweichende Aufgabenstellungen für 4 Semesterwochenstunden möglich.
Erwünschte Vorkenntnisse:
- Technische Informatik
- Rechnerarchitektur
- LV "Schaltkreis- und Systementwurf" + Praktikum, oder vergleichbar
- Grundkenntnisse in der Hardware-Beschreibungssprache VHDL
Abschlußleistung:
Entwurf bestehend aus:
- Schriftlicher Beleg zur Dokumentation
- C-Quellkode für den Rechenkern
- VHDL-Quellkode für die entworfene Komponente
- VHDL-Quellkode für die Testbench und Simulationsergebnisse
- C-Quellkode für die Hostanwendung
Vorführung des Entwurfes
Kolloquium