Design eines rekonfigurierbaren Beschleuniger-Frameworks

Design eines rekonfigurierbaren Beschleuniger-Frameworks

Umfeld:

Für viele moderne Anwendungen sind spezialisierte Hardwarebeschleuniger nötig um eine ausreichende Verarbeitungsgeschwindigkeit zu erreichen. Beispiele dafür sind GPUs, Crypto-Beschleuniger oder Netzwerk-Offloader. Diese Beschleuniger sind jedoch sehr spezifisch und oft nicht für andere Anwendungsfälle nutzbar, die bei der Entwicklung noch nicht bekannt waren. Eine mögliche Lösung ist der Einsatz von rekonfigurierbarer Hardware. Durch FPGA-Strukturen im Hardwarebeschleuniger können einzelne Teile oder die gesamte Architektur zur Laufzeit verändert und auf neue Anforderungen angepasst werden.

Aufgabe:

Im Rahmen dieser Arbeit soll ein Beschleuniger in Form eines systolischen Arrays entworfen werden, dessen funktionale Einheiten (FUs) zur Laufzeit ausgetauscht werden können. Zur Kommunikation zwischen den FUs kann ein bereits bestehendes Network-on-Chip verwendet werden. Auch im NoC soll Rekonfiguration möglich sein, sodass auch feste Verbindungen zwischen FUs für hohe Anforderung an die Bandbreite realisiert werden können. Das Design soll exemplarisch mit Bildverarbeitungs-Algorithmen oder Convolutional Neural Networks (CNNs) simulativ getestet werden und falls möglich auch auf einem hochmodernen FPGA umgesetzt werden.

Voraussetzungen:

  • Interesse am Design von Hardwarebeschleunigern und Bussystemen von Grund auf
  • Vorkenntnisse über Hardwareentwicklung in VHDL/Verilog
  • Motivation und Interesse am selbstständigen Lösen von technischen Problemen