colored-CARL-Logo

 


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 on both generic x86 CPUs and standard off-the-shelf GPUs. 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 3, builds on the efficiency and scalability of earlier releases (Nageswaran et al., 2009; Richert et al., 2011). 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.
New features include:

  • improved platform compatibility (Linux, Mac OS X, and Windows)
  • real-time and offline data analysis tools
  • a more complete STDP implementation which includes dopaminergic neuromodulation
  • an automated parameter tuning interface that utilizes evolutionary algorithms to construct functional SNNs
  • a test suite for functional code verification
  • an exhaustive User Guide and Tutorials

News: CARLsim 3 is also available at Neuroscience Gateway

Releases

New: Ask questions and get answers in our new Discussion group.

  • CARLsim 4 beta.
    December 2016
    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. Re-organized kernel code. Improved documentation. Bugfixes.
  • CARLsim 3.1
    November 2015
    9-parameter Izhikevich model. Compartmental model. CPU-only mode. 4th-order Runge-Kutta with user-specified integration step. Bugfixes.
    Latest release: 3.1.2 11/9/2016.
  • 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.0.3 9/28/15.
  • 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)
    2009
    Initial release. CUBA mode. Demonstration of GPU speedup.

For best usability and support we recommend downloading the latest version.
More detailed information about each release can be found in the file RELEASE_NOTES in the code package.
Last 6 months: Over 300 downloads from 31 different countries.

Installation

Detailed installation instructions can be found on our GitHub page.

CARLsim 3.1 comes with the following requirements:

  • (Windows) Microsoft Visual Studio 2012 or higher.
  • (optional) CUDA Toolkit 5.0 or higher. 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).
As of CARLsim 3.1 it is no longer necessary to have the CUDA framework installed. However, CARLsim development will continue to focus on the GPU implementation.

The current release has been tested on the following platforms: Windows 7; Ubuntu 12.04, 12.10, 13.04, 13.10, 14.04; Arch Linux; CentOS 6; OpenSUSE 13.1; Mac OS X.

Documentation

CARLsim 3 comes with extensive Documentation, which includes a User Guide and several helpful Tutorials.

If you would like to contribute to CARLsim 3, please check our CONTRIBUTING.md.

Background

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

  • 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

 
 
 

 

Carl