Digital Design for Machine Learning
Modul
Design of Embedded Systems
NEWS:
Kickoff: 13.10.21, 16:00 Uhr, voraussichtlich online
Organization
Ziel dieses Fachprojekts ist es, Hardwarebeschleuniger für Machine-Learning-Anwendungen zu entwickeln. Als Anwendungsbeispiele dienen dabei digitale Designs für die Beschleuningung von Convolutional Neural Networks (CNN), die Objekte klassifizieren.
Für die Implementierung der digitalen Designs wird die Hardwarebeschreibungssprache VHDL genutzt. Für Studierende, die VHDL nicht im Ramen des Hardwarepraktikums erlernt haben, wird ein VHDL-Crashkurs am Beispiel des MIPS-Prozessordesigns vor Beginn des Fachprojektes angeboten. Das Grundwissen für das Training und die Ausführung von CNNs, sowie die Funktionsweise der zu implementierenden Bausteine wird in einer Seminarphase zu Beginn des Fachprojekts erarbeitet.
Nach der Seminarphase werden die Studierenden in drei Gruppen aufgeteilt. welche für die folgenden Aufgabenbereiche zuständig sein werden:
- Implementierung der digitalen Bausteine für die Beschleunigung von CNN Workloads, wie z.B. MAC (Multiply-Accumulate) Units, Aktivierungsfunktionen, Maxpool, etc.
- Optimierung des CNNs in PyTorch, das auf dem Beschleuniger ausgeführt werden soll, wobei geeignete Werkzeuge zum Transfer der gelernten CNNs in die digitalen Bausteine entwickelt werden sollen
- Entwurf eines Controllers (z.B. basierend auf RISC-V), der mit speziellen Instruktionen die Inputs und Gewichte des CNNs an die digitalen Bausteine übermittelt und die schichtenweise Ausführung des CNNs koordiniert.
Nachdem die Korrektheit der digitalen Komponenten verifiziert wurde, sollen die Designs auf echter Hardware synthetisiert werden. Dazu stehen FPGAs (ZCU104) bereit, für welche Tutorials und Remote-Access zur Verfügung stehen.
Bei Fragen könnt ihr euch gerne an Mikail Yayla wenden.
Fachprojekte in den letzten Semestern
SoSe 21: Design Your Own CPU introduction slides