Bachelor/Master Thesis: Accelerating Neural Networks in FPGAs

Description

Machine learning or specifically artifical neural networks impact our daily life more and more. However, both training and inference of neural networks also has an increasingly high carbon footprint. Thus it is very important to also improve their efficiency by employing efficient hardware accelerators or apply concepts that are effective across software and hardware layers. Specifically FPGAs have been shown more energy-efficient than GPUs in many cases. Frameworks such as AMD Xilinx' FINN have added ease-of-use through PyTorch frontends, but not all potential optimizations are used yet, for instance mixed-precision arithmetics. Additionally, in safety-relevant applications such as medicine or autonomous driving, additional aspects on the hardware side need to be counted in, such as redundancy, self-attestation, fault tolerance, etc. In this project, you will work on one or more of optimization or dependability aspects.

If you got interested, please just contact us via mail. We will then meet with you to discuss the specific details of the topic. Involving your own ideas will be possible, too!

Beschreibung

Maschinelles Lernen oder speziell künstliche neuronale Netze beeinflussen unser tägliches Leben immer mehr. Sowohl das Training als auch die Inferenz von neuronalen Netzen hat jedoch einen zunehmend hohen CO2-Abdruck. Daher ist es sehr wichtig, auch die Effizienz durch den Einsatz effizienter Hardware-Beschleuniger zu verbessern und Ansätze anzuwenden die besonders von Software bis zur Hardware-Ebene hinweg effektiv sind. Insbesondere FPGAs haben sich in vielen Fällen als energieeffizienter erwiesen als GPUs. Frameworks wie FINN von AMD Xilinx haben die Benutzerfreundlichkeit durch PyTorch-Frontends erhöht, jedoch werden bisher nicht alle möglichen Optimierungen eingesetzt, wie zum Beispiel Mixed Precision Arithmetik. Weiterhin bringen speziell sicherheitsrelevante Anwendungen wie die Medizin oder das autonome Fahren zusätzliche Aspekte mit ins Spiel welche auf der Hardwareseite berücksichtigt werden müssen, wie Redundanz, Selbstbestätigung, Fehlertoleranz, etc. In diesem Projekt werden Sie an einem oder mehreren der Aspekte zur Effizienzoptimierung oder Zuverlässigkeit arbeiten.

Bei Interesse, kontaktiere uns einfach per Mail, dann können wir gemeinsam im Gespräch ein mögliches Thema für die Abschlussarbeit finden, wobei auch Deine eigenen Ideen involviert werden können!

Minimum Requirements

 - Elementary knowledge in hardware design and neural networks

 - Intermediate or advanced knowledge in one of the two aspects

Preferred Additional Skills or Knowledge

Verilog, C, Pytorch, ONNX, AMD/Xilinx Vivado, VHDL, Statistics, other machine learning methods, Security/Cryptography knowledge

Contact

Vincent Meyers, vincent.meyers@kit.edu

Dennis Gnad, dennis.gnad@kit.edu