Skip to main content

"FeNN tutorial", James Knight, Zainab Aizaz & Thomas Nowotny

Introduction

Luckily Zainab has already introduced FeNN but, just in case, it's a RISC-V vector processor, tailored for simulating SNNs on modern UltraScale+ FPGAs. For all the gory details, have a look at our paper.

FeNN is full programmable while having comparable resource usage and energy requirements to state-of-the-art fixed-function SNN accelerators. However, it supports more complex neuron models and network topologies, and can simulate up to 16 thousand neurons and 256 million synapses per core.

If you wish to install the prototype FeNN toolchain on your own machine, please follow the instructions at https://github.com/neworderofjamie/riscv_ise/. If you're lucky enough to have a Kria KV260 board running Ubuntu to try it out on, the releases on github come with bitstreams.

Tutorial 1

In this tutorial, we are going to implement an Adaptive LIF neuron on FeNN:

Collab

Tasks

  • Currently this neuron is simulated using the simplest "round-to-nearest" mode. See what affect changing the rounding mode has on the simulation.
  • This implementation actually has a bug in it. Can you fix it? It should be implementing the ALIF model described in the method of Bellec et al.

Tutorial 2

In this tutorial, we are going to build an SNN capable of classifying MNIST by copying the weights obtained by training using mlGeNN:

Collab

Tasks

  • We have a Kria KV260 set up for you to use. Try running this model on it! Use the --device command line argument to run the version in ~/riscv_ise/examples on the FeNN accelerator.
  • There are also lots of other examples in the same directory. Try them out!