MSc thesis project proposal
[2022] Flexible device-aware training by interfacing custom hardware with the PyTorch deep learning framework [taken]
In order to reduce reliance on the cloud, data needs to be pre-processed as close as possible to the sensors. Compared to handcrafted feature extraction, neural-network-based machine learning algorithms offer higher flexibility and state-of-the-art accuracy. However, compared to their software implementation, the deployment of neural networks on hardware for low-cost smart sensor nodes faces specific challenges:
- limited on-chip memory resources require reduced weight / activation resolutions and hardly match the requirements for on-chip-learning schemes,
- noise, mismatch and sensitivity to process, voltage and temperature (PVT) variations in analog / mixed-signal designs require error-tolerant training.
To address these challenges, an approach that is gaining traction is to directly interface the hardware to be trained with a modern deep learning framework such as PyTorch [1]. By retrieving the actual network dynamics and activations directly from the hardware, such "hardware-in-the-loop" training setups can learn to compensate hardware non-idealities, and even to exploit them [2]. Furthermore, being fully programmable directly in software, these setups can also serve as a testbed for algorithmic exploration and provide proof-of-concept implementations for future on-chip-learning hardware.
In this MSc thesis project, we propose to interface custom neuromorphic hardware with the PyTorch deep learning framework for the exploration of new bio-inspired training algorithms. The chosen custom neuromorphic hardware is the ODIN spiking neural network (SNN) processor which, for convenience, will be prototyped on an FPGA.
More about ODIN:
ODIN is an open-source digital SNN processor [3]. It is based on a single 256-neuron 64k-synapse crossbar neurosynaptic core with the following key features:
- synapses embed spike-dependent synaptic plasticity (SDSP)-based online learning on 3-bit weights,
- neurons can reproduce the 20 main spiking behaviors of biological cortical neurons.
ODIN is thus a versatile neuromorphic experimentation platform for learning in low-cost smart sensor nodes. At the time of publication, it demonstrated (i) record neuron and synapse densities and (ii) the lowest energy per synaptic operation.
Its full Verilog HDL code and documentation are publicly available at https://github.com/ChFrenkel/ODIN.
[1] https://pytorch.org/
[2] B. Cramer et al., "Surrogate gradients for analog neuromorphic computing," vol. 119, no. 4 e2109194119, 2022.
[3] C. Frenkel et al., "A 0.086-mm² 12.7-pJ/SOP 64k-synapse 256-neuron online-learning digital spiking neuromorphic processor in 28-nm CMOS," IEEE Transactions on Biomedical Circuits and Systems, vol. 13, no. 1, pp. 145-158, 2019.
Assignment
1. Development of a working interface for online data exchange between PyTorch and an instance of ODIN prototyped in an FPGA. This will require developing the interface both on the software side (Python) and the hardware side (e.g., addition of a USB or Ethernet IP interface in the FPGA design).
2. Exploration and deployment of a learning algorithm for an online hardware-in-the-loop training of ODIN. Depending on the student's interests, the chosen algorithm can be either strongly grounded on recent neuroscience insight (see [a] for an example) or derived from standard machine learning techniques based on gradient descent (see [b] for an example).
[a] N. Frémaux and W. Gerstner, "Neuromodulated spike-timing-dependent plasticity, and theory of three-factor learning rules," Frontiers in neural circuits, vol. 9, no. 85, 2016.
[b] E. O. Neftci, H. Mostafa and F. Zenke, "Surrogate gradient learning in spiking neural networks: Bringing the power of gradient-based optimization to spiking neural networks," IEEE Signal Processing Magazine, vol. 36, no. 6, pp. 51-63, 2019.
Requirements
You should be fluent in Python and comfortable with FPGA prototyping.
Previous exposure to any deep learning framework (Keras, Tensorflow, PyTorch,...) is a plus.
Curiosity-driven and unconventional ideas are always welcome and can be integrated in the MSc thesis project. Interested students should send a motivation letter together with their CV (incl. course transcripts and grades) to Dr. Charlotte Frenkel at c.frenkel@tudelft.nl
Contact
dr. Charlotte Frenkel
Electronic Instrumentation Group
Department of Microelectronics
Last modified: 2022-08-03