Neuromorphic Computing Tools and Libraries

To facilitate learning about neuromorphic computing and the development of new neuromorphic algorithms, we host a series of standard neuromorphic libraries and tools as a container. This container is located at /sw/container/neuromorphic/nmc-tools-and-libs.sif, and can be accessed through our JupyterHub as a custom container, or directly as a container on the cluster through Apptainer.

Here is a list and short description of the available tools. If you need new or updated tools, please contact us through our support channels.

Tool/Library
Description
Python based?
PyNNPyNN is an API. It works as a frontend to set up and configure neuron networks, while the actual simulation is performed by a simulator in the backend. Bindings for many software simulators are available, such as Neuron, NEST, Brian2. Bindings for SpiNnaker-2 are currently a WIP. PyNN is the best starting point for learning about neuromorphic simulations, due to its simplicity and universality. In principle, networks designed with PyNN can be executed by any of the available simulators.Yes
NeuronNeuron is a simulator for spiking neuron networks. Compatible with PyNN.No (but can be used from Python through PyNN)
NESTNEST is a simulator for spiking neuron networks. Compatible with PyNN.No (but can be used from Python through PyNN)
Brian2Brian2 is a simulator for spiking neuron networks. Compatible with PyNN. (It is indeed called Brian, and not Brain!)Yes
SNNTorchA package for performing AI/ML tasks with spiking neurons, extending the well known PyTorch library.Yes
NIRAn intermediate representation library that allows for transferring models between different neuromorphic software libraries and hardware architectures.Yes
NorseNeuromorphic AI/ML library.Yes
Lava-DLNeuromorphic AI/ML library. Associated with Intel’s Loihi neuromorphic hardware.Yes