CustoNN2: Customizing Neural Networks on FPGAs

Term WS 2018/19 + SS 2019
Program Computer Science Master's
Computer Engineering Master's
Lecture number L.079.07022

Project is running in second semester.
Project started 11 October 2018.

Regular Meeting Hours Monday 16:15-18:45
Wednesday 16:15-18:45

Goals and Contents

Neural networks are the key enablers of several technology breakthroughs in recent years, for example in the fields of speech recognition, image classification, autonomous driving and mastering the board game Go. These achievements go along with a huge demand for computing power, currently often delivered by GPUs. With recent research progress on neural networks with small fixed-point or even binary weights, FPGAs are becoming an interesting alternative. In the first incarnation of this project, a configurable inference architecture with all weights in local memory was designed and evaluated on two different FPGA platforms. The new, second project will focus on scaling to bigger and more FPGAs, working with weights from off-chip memory, and deeper customization of the designs.

In this project group, you will

  • Research current literature on learning strategies and architectures for neural networks with fixed-point or binary weights.
  • Propose and implement a neural network inference architecture on FPGA that makes efficient use of low-precision weights.
  • Use modern OpenCL-based programming tools to target 32 state-of-the-art Stratix 10 FPGAs that will be installed in the Noctua cluster.
  • Come up with performance and resource models and match them to hardware measurements and profiling results.
  • Explore strategies and technology to scale individual inference problems over multiple devices.