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

Releases

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

  • CARLsim 3.1 (.zip, 4.5 MB)
    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.1 12/3/15.
  • 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.

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). (*co-first authors) (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]

Installation

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.

Quickstart:

  • Download CARLsim 3.1.
  • Unzip the package in a convenient location (e.g., ~/Downloads) to extract all files.
  • Open the User Guide (carlsim-3.1.0/doc/html/index.html; now also available online) in a Web browser and navigate to User Guide > Chapter 1: Getting Started.
  • Follow the detailed installation instructions for your platform:
    • Linux / Mac OS X: Follow the instructions in Chapter 1.2.1.
      In short: After making sure that all environment variables are set accordingly, CARLsim 3 can be compiled and installed via:
      $ make
      $ sudo make install

      To use CARLsim in CPU-only mode, simply set the variable CPU_ONLY in the file user.mk to 1 before you compile and install the library.
    • Windows 7: Follow the instructions in Chapter 1.2.2.
      In short: Open the solution file CARLsim.sln (located in the carlsim-3.1.0/ directory) in Microsoft Visual Studio (VS) 2012. The solution file was made with VS 2012 and CUDA 5.5. For different software versions, follow the instructions in the User Guide to adjust the solution file accordingly.
      Set Configuration to x64 and compile a Release build.
      To use CARLsim in CPU-only mode, simply open the CARLsim.cpuonly.sln solution file instead.
  • Run the "Hello World" project (or the test suite) to make sure your installation was successful.
    • Linux / Mac OS X: Change to the "Hello World" projects folder, make and run:
      $ cd projects/hello_world
      $ make
      $ ./hello_world
    • Windows 7: Open/Run the "Hello World" project file projects\hello_world\hello_world.vcxproj.
  • Learn more about CARLsim by browsing through the User Guide or try Tutorial 1.
  • Create a new project based on the "Hello World" project by following instructions in Chapter 1.3 of the User Guide.

Documentation

After downloading and unzipping CARLsim 3.1, open the Documentation (carlsim-3.1.0/doc/html/index.html) in a Web browser and select "User Guide" from the navigation pane on the left.
The documentation package was generated using Doxygen, and contains a User Guide, a Tutorial, and complete source code documentation (for classes, files, etc.).

Tutorial

After downloading and unzipping CARLsim 3.1, open the Documentation (carlsim-3.1.0/doc/html/index.html) in a Web browser and select "Tutorial" from the navigation pane on the left.
The documentation package was generated using Doxygen, and contains a User Guide, a Tutorial, and complete source code documentation (for classes, files, etc.).

last updated 25 November 2015

 
 
 

 

CARLsim

Carl