PyCARL: A PyNN Interface for Hardware-Software Co-Simulation of Spiking Neural Network

We present PyCARL, a PyNN-based common Python programming interface for hardware-software cosimulation of spiking neural network (SNN). Through PyCARL, we make the following two key contributions. First, we provide an interface of PyNN to CARLsim, a computationally- efficient, GPU-accelerated and biophysically-detailed SNN simulator. PyCARL facilitates joint development of machine learning models and code sharing between CARLsim and PyNN users, promoting an integrated and larger neuromorphic community. Second, we integrate cycle-accurate models of state-of-the-art neuromorphic hardware such as TrueNorth, Loihi, and DynapSE in PyCARL, to accurately model hardware latencies, which delay spikes between communicating neurons, degrading performance of machine learning models. PyCARL allows users to analyze and optimize the performance difference between software-based simulation and hardware-oriented simulation. We show that system designers can also use PyCARL to perform design-space exploration early in the product development stage, facilitating faster time-to-market of neuromorphic products.

[1]  Nicholas T. Carnevale,et al.  The NEURON Simulation Environment , 1997, Neural Computation.

[2]  Wolfgang Maass,et al.  Networks of Spiking Neurons: The Third Generation of Neural Network Models , 1996, Electron. Colloquium Comput. Complex..

[3]  Pierre Yger,et al.  PyNN: A Common Interface for Neuronal Network Simulators , 2008, Front. Neuroinform..

[4]  Francky Catthoor,et al.  Power-Accuracy Trade-Offs for Heartbeat Classification on Neural Networks Hardware , 2018, J. Low Power Electron..

[5]  Salvatore Monteleone,et al.  Noxim: An open, extensible and cycle-accurate network on chip simulator , 2015, 2015 IEEE 26th International Conference on Application-specific Systems, Architectures and Processors (ASAP).

[6]  Nagarajan Kandasamy,et al.  A Framework to Explore Workload-Specific Performance and Lifetime Trade-offs in Neuromorphic Computing , 2019, IEEE Computer Architecture Letters.

[7]  Nikil D. Dutt,et al.  CARLsim 4: An Open Source Library for Large Scale, Biologically Detailed Spiking Neural Network Simulation using Heterogeneous Clusters , 2018, 2018 International Joint Conference on Neural Networks (IJCNN).

[8]  Romain Brette,et al.  Brian 2, an intuitive and efficient neural simulator , 2019, eLife.

[9]  Francky Catthoor,et al.  Mapping of local and global synapses on spiking neuromorphic hardware , 2018, 2018 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[10]  Andrew S. Cassidy,et al.  TrueNorth: Accelerating From Zero to 64 Million Neurons in 10 Years , 2019, Computer.

[11]  Nikil D. Dutt,et al.  Unsupervised Heart-rate Estimation in Wearables With Liquid States and A Probabilistic Readout , 2017, Neural Networks.

[12]  Matthew Cook,et al.  Unsupervised learning of digit recognition using spike-timing-dependent plasticity , 2015, Front. Comput. Neurosci..

[13]  Nikil D. Dutt,et al.  A configurable simulation environment for the efficient simulation of large-scale spiking neural networks on graphics processors , 2009, Neural Networks.

[14]  Romain Brette,et al.  Brian 2: an intuitive and efficient neural simulator , 2019, bioRxiv.

[15]  Nagarajan Kandasamy,et al.  Compiling Spiking Neural Networks to Neuromorphic Hardware , 2020, LCTES.

[16]  Eugene M. Izhikevich,et al.  Simple model of spiking neurons , 2003, IEEE Trans. Neural Networks.

[17]  Francky Catthoor,et al.  Exploration of Segmented Bus As Scalable Global Interconnect for Neuromorphic Computing , 2019, ACM Great Lakes Symposium on VLSI.

[18]  Giacomo Indiveri,et al.  A Scalable Multicore Architecture With Heterogeneous Memory Structures for Dynamic Neuromorphic Asynchronous Processors (DYNAPs) , 2017, IEEE Transactions on Biomedical Circuits and Systems.

[19]  Hong Wang,et al.  Loihi: A Neuromorphic Manycore Processor with On-Chip Learning , 2018, IEEE Micro.

[20]  Marc-Oliver Gewaltig,et al.  NEST (NEural Simulation Tool) , 2007, Scholarpedia.

[21]  Sonja Grün,et al.  Analysis of Parallel Spike Trains , 2010 .

[22]  Francky Catthoor,et al.  Heartbeat Classification in Wearables Using Multi-layer Perceptron and Time-Frequency Joint Distribution of ECG , 2018, 2018 IEEE/ACM International Conference on Connected Health: Applications, Systems and Engineering Technologies (CHASE).

[23]  Romain Brette,et al.  Neuroinformatics Original Research Article Brian: a Simulator for Spiking Neural Networks in Python , 2022 .

[24]  Steve B. Furber,et al.  The SpiNNaker Project , 2014, Proceedings of the IEEE.

[25]  Moritz Helias,et al.  Neuroinformatics Original Research Article Pynest: a Convenient Interface to the Nest Simulator , 2022 .

[26]  Riccardo Poli,et al.  Particle swarm optimization , 1995, Swarm Intelligence.

[27]  Klaus Schuch,et al.  PCSIM: A Parallel Simulation Environment for Neural Circuits Fully Integrated with Python , 2008, Frontiers Neuroinformatics.

[28]  Wofgang Maas,et al.  Networks of spiking neurons: the third generation of neural network models , 1997 .

[29]  Carver A. Mead,et al.  Neuromorphic electronic systems , 1990, Proc. IEEE.

[30]  Nikil D. Dutt,et al.  Mapping Spiking Neural Networks to Neuromorphic Hardware , 2019, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.