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

@article{Balaji2020PyCARLAP,
  title={PyCARL: A PyNN Interface for Hardware-Software Co-Simulation of Spiking Neural Network},
  author={Adarsha Balaji and Prathyusha Adiraju and Hirak J. Kashyap and Anup Das and Jeffrey L. Krichmar and Nikil D. Dutt and Francky Catthoor},
  journal={2020 International Joint Conference on Neural Networks (IJCNN)},
  year={2020},
  pages={1-10}
}
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… 
PyGeNN: A Python Library for GPU-Enhanced Neural Networks
TLDR
PyGeNN, a Python package which exposes all of GeNN's functionality to Python with minimal overhead, provides an alternative, arguably more user-friendly, way of using GeNN and allows modelers to use GeNN within the growing Python-based machine learning and computational neuroscience ecosystems.
NeuroXplorer 1.0: An Extensible Framework for Architectural Exploration with Spiking Neural Networks
TLDR
NeuroXplorer is presented, a fast and extensible framework that is based on a generalized template for modeling a neuromorphic architecture that can be infused with the specific details of a given hardware and/or technology.
Compiling Spiking Neural Networks to Neuromorphic Hardware
TLDR
This work proposes an approach to analyze and compile SNNs on resource-constrained neuromorphic hardware, providing guarantees on key performance metrics such as execution time and throughput and proposes a greedy technique to partition an SNN into clusters of neurons and synapses such that each cluster can fit on to the resources of a crossbar.
DFSynthesizer: Dataflow-based Synthesis of Spiking Neural Networks to Neuromorphic Hardware
TLDR
The proposed DFSynthesizer, an end-to-end framework for synthesizing SNN-based machine learning programs to neuromorphic hardware, uses the rich semantics of Synchronous Dataflow Graph to represent a clustered SNN program, allowing for performance analysis in terms of key hardware constraints.
Run-time Mapping of Spiking Neural Networks to Neuromorphic Hardware
TLDR
A design methodology to partition and map the neurons and synapses of online learning SNN-based applications to neuromorphic architectures at run-time and it is demonstrated that this algorithm reduces SNN mapping time by an average 780x compared to a state-of-the-art design-time based SNN partitioning approach with only 6.25% lower solution quality.
A Design Flow for Mapping Spiking Neural Networks to Many-Core Neuromorphic Hardware
TLDR
An SDFG-based design flow to map spiking neural networks (SNNs) to many-core neuromorphic hardware with the objective of exploring the tradeoff between throughput and buffer-size requirements is proposed.
On the role of system software in energy management of neuromorphic computing
TLDR
This work formulate the energy consumption of a neuromorphic hardware, considering the power consumed by neurons and synapses, and the energy consumed in communicating spikes on the interconnect, and formulate a simple heuristic-based mapping approach to place the neurons andsynapses onto the computing resources to reduce energy consumption.
Implementing Spiking Neural Networks on Neuromorphic Architectures: A Review
TLDR
A comprehensive overview of frameworks proposed for both, platform-based design and hardware-software co-design in the area of system software technology for neuromorphic computing is provided.
Design of Many-Core Big Little µBrains for Energy-Efficient Embedded Neuromorphic Computing
TLDR
A μBrain-based scalable many-core neuromorphic hardware design to accelerate the computations of spiking deep convolutional neural networks (SDCNNs) and a system software framework called SentryOS to map SDCNN inference applications to the proposed design is proposed.
Enabling Resource-Aware Mapping of Spiking Neural Networks via Spatial Decomposition
TLDR
This work proposes a novel unrolling technique that decomposes a neuron function with many pre- Synaptic connections into a sequence of homogeneous neural units, where each neural unit is a function computation node, with two pre-synaptic connections.
...
1
2
3
...

References

SHOWING 1-10 OF 31 REFERENCES
CARLsim 4: An Open Source Library for Large Scale, Biologically Detailed Spiking Neural Network Simulation using Heterogeneous Clusters
TLDR
CARLsim 4, a user-friendly SNN library written in C++ that can simulate large biologically detailed neural networks, is released, improving on the efficiency and scalability of earlier releases and adding new features, such as leaky-integrate-and-fire (LIF), 9-parameter Izhikevich, multi-compartment neuron models, and fourth order Runge Kutta integration.
PyNN: A Common Interface for Neuronal Network Simulators
TLDR
PyNN increases the productivity of neuronal network modelling by providing high-level abstraction, by promoting code sharing and reuse, and by providing a foundation for simulator-agnostic analysis, visualization and data-management tools.
PCSIM: A Parallel Simulation Environment for Neural Circuits Fully Integrated with Python
TLDR
This paper investigates how the automatically generated bidirectional interface and PCSIM's object-oriented modular framework enable the user to adopt a hybrid modeling approach: using and extending PC SIM's functionality either employing pure Python or C++ and thus combining the advantages of both worlds.
Compiling Spiking Neural Networks to Neuromorphic Hardware
TLDR
This work proposes an approach to analyze and compile SNNs on resource-constrained neuromorphic hardware, providing guarantees on key performance metrics such as execution time and throughput and proposes a greedy technique to partition an SNN into clusters of neurons and synapses such that each cluster can fit on to the resources of a crossbar.
PyNEST: A Convenient Interface to the NEST Simulator
TLDR
PyNEST, the new user interface to NEST, combines NEST's efficient simulation kernel with the simplicity and flexibility of Python, and makes it easier to set up simulations, generate stimuli, and analyze simulation results.
Brian 2, an intuitive and efficient neural simulator
TLDR
Brian 2 allows scientists to simply and efficiently simulate spiking neural network models by transforming code with simple and concise high-level descriptions into efficient low-level code that can run interleaved with their code.
Mapping of local and global synapses on spiking neuromorphic hardware
TLDR
This paper proposes the instantiation of particle swarm optimization, which partitions SNNs into local synapses and global synapses, with the objective of reducing spike communication on the interconnect, and improves latency, power consumption as well as application performance.
Brian: a simulator for spiking neural networks in Python
TLDR
“Brian” is a new simulator for spiking neural networks, written in Python, which will be especially valuable for working on non-standard neuron models not easily covered by existing software, and as an alternative to using Matlab or C for simulations.
The SpiNNaker Project
TLDR
The current state of the spiking neural network architecture project is reviewed, and the real-time event-driven programming model that supports flexible access to the resources of the machine and has enabled its use by a wide range of collaborators around the world is presented.
...
1
2
3
4
...