CARLsim: a GPU-accelerated SNN Simulator

CARLsim is an efficient, easy-to-use, GPU-accelerated library for simulating large-scale spiking neural network (SNN) models with a high degree of biological detail. CARLsim allows execution of networks of Izhikevich spiking neurons with realistic synaptic dynamics using multiple off-the-shelf GPUs and x86 CPUs. The simulator provides a PyNN-like programming interface in C/C++, which allows for details and parameters to be specified at the synapse, neuron, and network level.

The present release, CARLsim 4, builds on the efficiency and scalability of earlier releases (Nageswaran et al., 2009; Richert et al., 2011, and Beyeler et al., 2015). The functionality of the simulator has been greatly expanded by the addition of a number of features that enable and simplify the creation, tuning, and simulation of complex networks with spatial structure.

Release 4.0 highlights:

  • Multiple GPU/CPU (hybrid) simulation
  • Multi-compartment neuron model
  • Leaky integrate-and-fire (LIF) neuron model
  • Fourth order Runge-Kutta integration
  • Open source public repository on GitHub

News: CARLsim 3 is also available at Neuroscience Gateway


  • CARLsim 4.0
    July 2018
    Support Hybrid mode, which allows a SNN to run on multiple GPU cards and/or multiple CPU cores. Increase maximum number of neurons, synapse, and groups in a SNN. Leaky integrate-and-Fire neuron. Neuron monitor. Re-organized kernel code. Performance benchmark. CMake installation. Improved documentation. Bugfixes.
    Latest release: 4.0.0 07/24/18.
  • CARLsim 3.1
    November 2015
    9-parameter Izhikevich model. Compartmental model. CPU-only mode. 4th-order Runge-Kutta with user-specified integration step. Bugfixes.
  • CARLsim 3.0 (.zip, 3.7 MB)
    February 2015
    New user interface. Platform compatibility (Linux, Windows, and Mac OS X). Shared library build. Support for CUDA6 and CUDA7. E-STDP, I-STDP, DA-STDP. Plugin for Evolutionary Computations in Java (ECJ). Improved SpikeMonitor, ConnectionMonitor, and GroupMonitor. 3D Topography. Current injection. On-line weight tuning. MATLAB Offline Analysis Toolbox. MATLAB Visual Stimulus Toolbox. Regression suite. User Guide. Tutorial. Improved documentation. Bugfixes.
    Latest release: 3.1.2 11/9/2016.
  • CARLsim 2.2 (.zip, 4.5 MB)
    February 2014
    Homeostatic synaptic scaling. Parameter tuning interface (PTI) library (automated parameter tuning of SNNs using evolutionary algorithms). CUDA5 support. Bugfixes.
    Latest release: 2.2.0 2/5/14.
  • CARLsim 2.1 (.zip, 4.4 MB)
    July 2013
    Cortical model of pattern motion selectivity (V1, MT, LIP). Improved GPU memory management. Bugfixes.
    Latest release: 2.1.3 10/31/13.
  • CARLsim 2.0 (.zip, 1.9 MB)
    September 2011
    COBA mode. STDP. STP. Cortical model of color selectivity (color opponency). Cortical model of motion selectivity (V1, MT) and orientation selectivity (V1, V4).
  • CARLsim 1.0 (.zip, 0.4 MB)
    Initial release. CUBA mode. Demonstration of GPU speedup.

For best usability and support we recommend downloading the latest version.


Detailed installation instructions can be found on our GitHub page.

Since version 3.1, CARLsim comes with the following requirements:

  • (optional) CUDA Toolkit 5.0 or higher (we have tested upto version 9.2). For platform-specific CUDA installation instructions, please navigate to the NVIDIA CUDA Zone. This is only required if you want to run CARLsim in GPU_MODE. Make sure to install the CUDA samples, too, as CARLsim relies on the file helper_cuda.h.
  • (optional) A GPU with compute capability 2.0 or higher. To find the compute capability of your device please refer to the CUDA article on Wikipedia. This is only required if you want to run CARLsim in GPU_MODE.
  • (optional) MATLAB R2014a or higher. This is only required if you want to use the Offline Analysis Toolbox (OAT).
  • (For Windows only) Microsoft Visual Studio 2012 or higher.
As of CARLsim 3.1 it is no longer necessary to have the CUDA framework installed. However, CARLsim development will continue to focus on implementations for heterogeneous CPU-GPU clusters.

The current release has been tested on the following platforms: Windows 7, 10; Ubuntu 16.04; Mac OS X 10.11


CARLsim 4 comes with extensive Documentation, which includes a User Guide and several helpful tutorials. Bug reports and contributions are accepted through GitHub Issues and Pull requests, respectively.

CARLsim 3 tutorials and user guide are available at here. If you would like to contribute to CARLsim 3, please check our


The simulator—along with its various releases, computational studies, and sample code—has previously been published in the following studies:

  • Chou, T.-S.*, Kashyap, H.J.*, Xing, J., Listopad, S., Rounds, E., Beyeler, M., Dutt, N., and Krichmar, J.L. (2018). CARLsim 4: An Open Source Library for Large Scale, Biologically Detailed Spiking Neural Network Simulation using Heterogeneous Clusters. Paper presented at: International Joint Conference on Neural Networks (Rio de Janeiro, Brazil). (*equal contribution) (CARLsim v4.0) (Finalist for the best student paper award.) [pdf]
  • Beyeler, M.*, Carlson, K.D.*, Chou, T.-S.*, Dutt, N., and Krichmar, J.L. (2015). A User-Friendly and Highly Optimized Library for the Creation of Neurobiologically Detailed Spiking Neural Networks. Paper presented at: International Joint Conference on Neural Networks (Killarney, Ireland). (*equal contribution) (CARLsim v3.0) [pdf]
  • Carlson, K.D., Nageswaran, J.M., Dutt, N., and Krichmar, J.L. (2014). An efficient automated parameter tuning framework for spiking neural networks. Frontiers in Neuroscience 8(10). (CARLsim v2.2) [pdf]
  • Beyeler, M., Richert, M., Dutt, N.D., and Krichmar, J.L. (2014). Efficient spiking neural network model of pattern motion selectivity in visual cortex. Neuroinformatics. (CARLsim v2.1) [pdf]
  • Richert, M., Nageswaran, J.M., Dutt, N., and Krichmar, J.L. (2011). An efficient simulation environment for modeling large-scale cortical processing. Frontiers in Neuroinformatics 5, 1-15. (CARLsim v2.0) [pdf]
  • Nageswaran, J.M., Dutt, N., Krichmar, J.L., Nicolau, A., and Veidenbaum, A.V. (2009). A configurable simulation environment for the efficient simulation of large-scale spiking neural networks on graphics processors. Neural Networks 22, 791-800. (CARLsim v1.0) [ScienceDirect-pdf]

last updated 4 March 2017