Another popular and open-source simulator for SNNs is NEST, focusing on the dynamics, size, and structure of neural network. It is suitable for large networks of spiking neurons (Gewaltig et al. 2007). CARLsim is a user-friendly and GPU-accelerated SNN library written in C that supports CPU-GPU co-execution (Beyeler et al., 2015). Version 4 of CARLsim has been improved to simulate large-scale SNN models in with real-time constraints (Chou et al. 2018). Table 4,0 shows the features of the most SNNs simulation software.
Features of the Best-Known SNN Software.
Simulator . | Open Source . | GPU . | Simulation . | Programming Language . | Features . |
---|---|---|---|---|---|
BindsNET | Yes | Yes | Clock-driven | C (Python package) | • BindsNET can be connected to different hardware (e.g., FPGA, ASIC), to execute the simulations. |
• Provide an interface with the OpenAI gym library for training SNNs on reinforcement learning environment. | |||||
• Suitable for application in the domain of machine learning. | |||||
• A Torchvision data set has integrated into the library for computer vision tasks. | |||||
Nengo | Yes | Yes | Clock-driven | C (Python package) | • Focuses on high-level behaviors of spiking neural networks. |
• Supports multithreaded execution on CPUs. | |||||
• Has simulation back ends, such as NengoFPGA, Nengo Loihi, Nengo SpiNNaker, and Nengo OpenCL. | |||||
• Nengo's libraries are designed to help with deep learning, adaptive control, and cognitive modeling. | |||||
NeMo | Yes | Yes | Clock-driven | C | • Supports multithreaded execution on CPU |
• Good candidate for applications in machine learning. | |||||
• Can to simulate different neuron models and hardware configurations. | |||||
• Can run on CUDA-enabled GPUs. | |||||
Brian2GeNN | Yes | Yes | Clock-driven | C (Python package) | • Supports all major operating system. |
• Takes advantage of both GeNN and Brain2, which allow users to run their Brian 2 scripts on NVIDIA GPU accelerators without any further necessary programming. | |||||
• Using the Brian2GeNN library enhances performance by tens to hundreds of times faster |
Simulator . | Open Source . | GPU . | Simulation . | Programming Language . | Features . |
---|---|---|---|---|---|
BindsNET | Yes | Yes | Clock-driven | C (Python package) | • BindsNET can be connected to different hardware (e.g., FPGA, ASIC), to execute the simulations. |
• Provide an interface with the OpenAI gym library for training SNNs on reinforcement learning environment. | |||||
• Suitable for application in the domain of machine learning. | |||||
• A Torchvision data set has integrated into the library for computer vision tasks. | |||||
Nengo | Yes | Yes | Clock-driven | C (Python package) | • Focuses on high-level behaviors of spiking neural networks. |
• Supports multithreaded execution on CPUs. | |||||
• Has simulation back ends, such as NengoFPGA, Nengo Loihi, Nengo SpiNNaker, and Nengo OpenCL. | |||||
• Nengo's libraries are designed to help with deep learning, adaptive control, and cognitive modeling. | |||||
NeMo | Yes | Yes | Clock-driven | C | • Supports multithreaded execution on CPU |
• Good candidate for applications in machine learning. | |||||
• Can to simulate different neuron models and hardware configurations. | |||||
• Can run on CUDA-enabled GPUs. | |||||
Brian2GeNN | Yes | Yes | Clock-driven | C (Python package) | • Supports all major operating system. |
• Takes advantage of both GeNN and Brain2, which allow users to run their Brian 2 scripts on NVIDIA GPU accelerators without any further necessary programming. | |||||
• Using the Brian2GeNN library enhances performance by tens to hundreds of times faster |
Continued.
Simulator . | Open Source . | GPU . | Simulation . | Programming Language . | Features . |
---|---|---|---|---|---|
NEST | Yes | No | Hybrid | C (Python package) | • Fast and memory efficient with minimal dependencies. |
• Best suited for models that focus on the dynamics, size, and structure of neural systems. | |||||
• Can take advantage of multicore computer in a local network to increase the available memory or to speedup the simulation. | |||||
CARLsim | Yes | Yes | Clock-driven | C (Python package) | • Balances between flexibility and performance by providing optimized CUDA/C implementations of a large number of biologically plausible model features. |
• Provides an easy-to-use programming interface | |||||
• Provides an integrated automatic parameter tuning interface for spiking neural networks. | |||||
• Allows users to add a new feature with minimal effort. | |||||
• Finds open parameters of an SNN that best fit a given response behavior. |
Simulator . | Open Source . | GPU . | Simulation . | Programming Language . | Features . |
---|---|---|---|---|---|
NEST | Yes | No | Hybrid | C (Python package) | • Fast and memory efficient with minimal dependencies. |
• Best suited for models that focus on the dynamics, size, and structure of neural systems. | |||||
• Can take advantage of multicore computer in a local network to increase the available memory or to speedup the simulation. | |||||
CARLsim | Yes | Yes | Clock-driven | C (Python package) | • Balances between flexibility and performance by providing optimized CUDA/C implementations of a large number of biologically plausible model features. |
• Provides an easy-to-use programming interface | |||||
• Provides an integrated automatic parameter tuning interface for spiking neural networks. | |||||
• Allows users to add a new feature with minimal effort. | |||||
• Finds open parameters of an SNN that best fit a given response behavior. |