Fachbereich 6 Mathematik/Informatik

Institut für Informatik


Navigation und Suche der Universität Osnabrück


Hauptinhalt

Topinformationen

Bachelor- und Masterarbeiten im Bereich von Hardware-Implementierungen mit FPGAs

FPGAs (Field-Programmable Gate Arrays) kombinieren die Leistungsfähigkeit und Energieeffizienz anwendungsspezifischer Schaltungen mit der Flexibilität programmierbarer Architekturen. Sie sind daher ideale Plattformen für die Realisierung leistungsfähiger Informationsverarbeitung. Das Einsatzspektrum reicht dabei von kompakten eingebetteten Systemen bis hin zu Anwendungen im Bereich des Cloud- und High-Performance-Computing. Programmiert werden die FPGAs von uns abhängig von den Anforderungen in speziellen Hardware-Beschreibungssprachen (z. B. VHDL oder Chisel), in C oder C++ (unter Verwendung von High-Level-Synthese) oder – ähnlich wie GPUs – in OpenCL.

Vor diesem Hintergrund bietet die Arbeitsgruppe Technische Informatik Bachelor- und Masterarbeiten an, die von der Implementierung neuer Anwendungen auf FPGAs bis hin zur Veränderung von Hardware zur Laufzeit reichen. Einige Beispiele sind im Folgenden exemplarisch skizziert.

Maschinelles Lernen auf eingebetteten FPGAs (Bachelor- oder Masterarbeit)

Machine-Learning-Algorithmen haben ein großes Potential im Bereich der Video- und Audioverarbeitung. FPGAs bietet eine interessante Möglichkeit, dieses Potential auch auf eingebetteten Systemen zu nutzen. Im Rahmen dieser Arbeit sollen verschiedene ML-Beschleuniger entwickelt werden, die auf embedded FPGAs genutzt werden können. Dabei soll vor allem die Beschleunigung von Machine-Learning-Algorithmen im Bereich der Video- und Audioverarbeitung betrachtet werde. Die Entwicklung erfolgt unter Einsatz aktueller Entwurfswerkzeuge auf Register-Transfer-Ebene oder in C/C++ mit anschließender High-Level-Synthese.
Ansprechpartner: Marco Tassemeier, Mario Porrmann

Maschinelles Lernen auf FPGA-Beschleunigern im High-Performance-Computing (Bachelor- oder Masterarbeit)

Um die Verarbeitung großer Datenmengen mittels Machine-Learning-Algorithmen zu beschleunigen, kommen auch im Bereich des High-Performance-Computing vermehrt FPGA-Beschleuniger zum Einsatz. Diese, oftmals als PCIe-Erweiterungskarten realisierten Architekturen bilden für massiv-parallele Berechnungen eine interessante Alternative zu GPUs. In dieser Arbeit sollen ML-Beschleuniger für FPGAs in Server-Anwendungen entwickelt werden, um Videoverarbeitung anwendungsspezifisch zu beschleunigen. Die Entwicklung erfolgt unter Einsatz aktueller Entwurfswerkzeuge in C/C++ oder OpenCL mit anschließender High-Level-Synthese.
Ansprechpartner: Marco Tassemeier, Mario Porrmann

Aufbau, Inbetriebnahme und Evaluierung eines FPGA-Rechenclusters (Bachelor- oder Masterarbeit)

Ziel dieser Arbeit ist es, einen FPGA-Rechencluster mit mehreren parallel arbeitenden FPGA-Beschleunigerkarten zu realisieren. Dies beinhaltet die Konzipierung und Inbetriebnahme einer Mehrprozessor-Serverplattform und die Integration der FPGA-Beschleunigerkarten auf Hardware- und Softwareebene. Die von den Beschleunigern zur Verfügung gestellten seriellen High-Speed-Kommunikationslinks sollen für eine schnelle Kommunikation mit geringer Latenz zwischen den Bausteinen genutzt werden. Die Evaluierung der Leistungsfähigkeit der neuen Plattform erfolgt auf Basis eines in OpenCL spezifizierten Anwendungsbeispiels.
Ansprechpartner: Marco Tassemeier, Mario Porrmann

Dynamische Rekonfiguration von Videofiltern auf FPGAs (Masterarbeit)

FPGAs bieten die Möglichkeit, Berechnungen massiv parallel auszuführen und sind gleichzeitig durch die mögliche Rekonfiguration sehr flexibel. Im Rahmen dieser Arbeit soll eine Plattform zur Videoverarbeitung auf FPGAs entwickelt werden. Dabei steht die Flexibilität der Implementierung im Vordergrund. Durch dynamische Rekonfiguration im laufenden Betrieb sollen Videofilter ausgetauscht oder die Ein- und Ausgabemethoden (z. B. Kamera, HDMI oder Datei) gewechselt werden. Die Entwicklung erfolgt unter Einsatz aktueller Entwurfswerkzeuge auf Register-Transfer-Ebene sowie in C/C++ mit anschließender High-Level-Synthese.
Ansprechpartner: Marco Tassemeier, Mario Porrmann

High-Performance-Computing mit FPGAs und OpenCL (Masterarbeit)

FPGAs bieten im Bereich des High-Performance-Computing (HPC) vielversprechende Möglichkeit zur Beschleunigung von parallelisierbaren Algorithmen. Problematisch wird gerade in diesem Umfeld die aufwändige Umsetzung neuer Algorithmen für diese Architekturen gesehen. Eine Alternative zur Programmierung in VHDL oder C/C++ stellt der Einsatz von OpenCL dar, einer auf C basierenden Programmiersprache, die auch für die Programmierung von GPUs zum Einsatz kommt. In dieser Arbeit soll die Programmierung von FPGAs mit OpenCL für HPC-relevante Anwendungen evaluiert werden. Zu diesem Zweck wird zunächst eine Bibliothek entwickelt, die verschiedene Templates für das High-Performance-Computing enthält. Anschließend wird die erzielte Leistungsfähigkeit mit Hilfe von Benchmarks auf aktuellen FPGA-Plattformen evaluiert und mit alternativen Implementierungen verglichen.
Ansprechpartner: Marco Tassemeier, Mario Porrmann

FPGAs als Evaluierungsplattform für In-/Near-Memory-Computing (Bachelor- oder Masterarbeit)

Mit der stetig wachsenden Anforderung, immer größere Datenmengen in immer kürzerer Zeit zu verarbeiten, erweist sich in vielen Fällen die Bandbreite zwischen Prozessor und Arbeitsspeicher als Flaschenhals, der die erzielbare Leistungsfähigkeit begrenzt. Neue Architekturkonzepte  versuchen diesen Bottleneck zu überwinden, indem der Prozessor näher mit dem Arbeitsspeicher verknüpft oder sogar mit ihm verschmolzen wird. FPGA-Plattformen bieten aufgrund ihres internen verteilten Speichers die Möglichkeit, von diesen Konzepten zu profitieren bzw. neue Architekturkonzepte ohne teure Chip-Prototypen zu evaluieren. Im Rahmen dieser Arbeit soll eine Evaluierungs-Plattform für In-/Near-Memory-Computing auf FPGAs entwickelt werden. Als Prozessorplattform dient ein in VHDL beschriebener RISC-V Prozessor. Die Entwicklung erfolgt unter Einsatz aktueller Entwurfswerkzeuge auf Register-Transfer-Ebene oder in C/C++ mit anschließender High-Level-Synthese.
Ansprechpartner: Marco Tassemeier, Mario Porrmann