All Projects → UCI-CARL → CARLsim4

UCI-CARL / CARLsim4

Licence: MIT license
CARLsim is an efficient, easy-to-use, GPU-accelerated software framework for simulating large-scale spiking neural network (SNN) models with a high degree of biological detail.

Programming Languages

C++
36643 projects - #6 most used programming language
java
68154 projects - #9 most used programming language
matlab
3953 projects
Cuda
1817 projects
c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to CARLsim4

auryn
Auryn: A fast simulator for spiking neural networks with synaptic plasticity
Stars: ✭ 77 (+2.67%)
Mutual labels:  simulation-framework, spiking-neural-networks
brian2cuda
A brian2 extension to simulate spiking neural networks on GPUs
Stars: ✭ 46 (-38.67%)
Mutual labels:  simulation-framework, spiking-neural-networks
spikeflow
Python library for easy creation and running of spiking neural networks in tensorflow.
Stars: ✭ 30 (-60%)
Mutual labels:  spiking-neural-networks
spore-nest-module
Synaptic Plasticity with Online Reinforcement learning
Stars: ✭ 24 (-68%)
Mutual labels:  spiking-neural-networks
Spiking-Restricted-Boltzmann-Machine
RBM implemented with spiking neurons in Python. Contrastive Divergence used to train the network.
Stars: ✭ 23 (-69.33%)
Mutual labels:  spiking-neural-networks
snn-encoder-tools
Data encoders
Stars: ✭ 26 (-65.33%)
Mutual labels:  spiking-neural-networks
BrainPy
Brain Dynamics Programming in Python
Stars: ✭ 242 (+222.67%)
Mutual labels:  spiking-neural-networks
BrainSimII
Neural Simulator for AGI research and development
Stars: ✭ 51 (-32%)
Mutual labels:  spiking-neural-networks
bindsnet
Simulation of spiking neural networks (SNNs) using PyTorch.
Stars: ✭ 34 (-54.67%)
Mutual labels:  spiking-neural-networks
open-dis-java
Java implementation of the IEEE-1278.1 Distributed Interactive Simulation (DIS) application protocol v6 and v7 💥
Stars: ✭ 30 (-60%)
Mutual labels:  simulation-framework
FreeFem-website
FreeFEM website
Stars: ✭ 13 (-82.67%)
Mutual labels:  simulation-framework
DL-NC
spiking-neural-networks
Stars: ✭ 34 (-54.67%)
Mutual labels:  spiking-neural-networks
SelfDrivingCarsControlDesign
Self Driving Cars Longitudinal and Lateral Control Design
Stars: ✭ 96 (+28%)
Mutual labels:  simulation-framework
rA9
JAX-based Spiking Neural Network framework
Stars: ✭ 60 (-20%)
Mutual labels:  spiking-neural-networks
OpenNAS
OpenN@S: Open-source software to NAS automatic VHDL code generation
Stars: ✭ 15 (-80%)
Mutual labels:  spiking-neural-networks
nengo-dl
Deep learning integration for Nengo
Stars: ✭ 76 (+1.33%)
Mutual labels:  spiking-neural-networks
hybrid-snn-conversion
Training spiking networks with hybrid ann-snn conversion and spike-based backpropagation
Stars: ✭ 72 (-4%)
Mutual labels:  spiking-neural-networks
norse
Deep learning for spiking neural networks
Stars: ✭ 59 (-21.33%)
Mutual labels:  spiking-neural-networks
snn angular velocity
Event-Based Angular Velocity Regression with Spiking Networks
Stars: ✭ 91 (+21.33%)
Mutual labels:  spiking-neural-networks
terrame
TerraME is a programming environment for spatial dynamical modelling
Stars: ✭ 33 (-56%)
Mutual labels:  simulation-framework

CARLsim 4

Build Status Coverage Status Docs Google group

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.

New features in CARLsim 4 include:

  • Multi-GPU support
  • Hybrid CPU/GPU mode
  • Multi-compartment and LIF point neurons

If you use CARLsim 4 in your research, please cite this paper.

Chou*, T.-S., Kashyap*, H.J., Xing, J., Listopad, S., Rounds, E.L., 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." In Proceedings of IEEE International Joint Conference on Neural Networks (IJCNN), pp. 1158-1165.

Installation

Detailed instructions for installing the latest stable release of CARLsim on Mac OS X / Linux / Windows can be found in our User Guide.

Linux/MacOS

For Beginner

  1. Download CARLsim 4 zip file by clicking on the Clone or download box in the top-right corner.

  2. Unzip the source code.

  3. Go into CARLsim4 folder

    $ cd CARLsim4
    
  4. Make and install

    $ make
    $ make install
    
  5. Verify installation

    $ cd ~
    $ ls
    

    You will see CARL folder

  6. Go back to CARLsim4 folder and start your own project! The "Hello World" project is a goot starting point for this. Make sure it runs:

    $ cd CARLsim4
    $ cd projects/hello_world
    $ make
    $ ./hello_world
    

For Advanced User and Developer

  1. Fork CARLsim 4 by clicking on the Fork box in the top-right corner.

  2. Clone the repo, where YourUsername is your actual GitHub user name:

    $ git clone --recursive https://github.com/UCI-CARL/CARLsim4.git
    $ cd CARLsim4
    

    Note the --recursive option: It will make sure Google Test gets installed.

  3. Choose between stable release and latest development version:

  4. Choose the installation directory: By default, the CARLsim library lives in ~/CARL/lib, and CARLsim include files live in ~/CARL/include. You can overwrite these by exporting an evironment variable called CARLSIM4_INSTALL_DIR:

    $ export CARLSIM4_INSTALL_DIR=/path/to/your/preferred/dir
    

    or

    $ export CARLSIM4_INSTALL_DIR=/usr/local
    

    if you want to install CARLsim library for all users.

    Also set the following evironment variable:

    $ export CUDA_PATH=/path/to/CUDA
    

    By default CUDA is installed to /usr/local/cuda in Linux systems.

  5. Make and install:

    $ make -j4
    $ sudo -E make install
    

    Note the -E flag, which will cause sudo to remember the CARLSIM4_INSTALL_DIR.

  6. In order to make sure the installation was successful, you can run the regression suite:

    $ make test
    $ ./carlsim/test/carlsim_tests
    
  7. Start your own project! The "Hello World" project is a goot starting point for this. Make sure it runs:

    $ cd projects/hello_world
    $ make
    $ ./hello_world
    

    You can easily create your own project based on this template using the init.sh script:

    $ cd projects
    $ ./init.sh project_name
    

    where project_name is the name of your new project. The script will copy all files from hello_world/ to project_name/, make all required file changes to compile the new project, and add all new files to git.

Using nvidia docker

  1. Using CARLsim4 on an Nvidia-docker image follows the instructions above. Only important thing to keep in mind is to copy the $CUDA_PATH/samples directory to the docker, which does not come with the nvidia docker image. CARLsim4 uses "helper_functions.h" from the library.

Using CMake

  1. Obtatin CARLsim4's source code.

  2. Create a build directory (you can make it anywhere)

    $ mkdir .build
    
  3. Proceed into build directory and do configuration:

    $ cd .build
    $ cmake \
        -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_INSTALL_PREFIX=/usr/local/carlsim \
        -DCARLSIM_NO_CUDA=OFF \
        <path-to-carlsim>
    

    As you can see cmake accepts several options -D<name>=<value>: they define cmake variables. CMAKE_BUILD_TYPE=Release means that we are going to build release version of the library. If you need debug version then pass Debug. CMAKE_INSTALL_PREFIX specifies a directory which we are going to install the library into. CARLSIM_NO_CUDA switches on/off support of CUDA inside the library. <path-to-carlsim> must be replaced with the path to the CARLsim4's source directory.

  4. Build:

    make -j <jobs-num>
    

    Set <jobs-num> to the number of logical processors your computer has plus one, this will employ parallel building.

  5. Install:

    make install
    

Windows

Simply download the code. Open and build CARLsim.sln. Run the "Hello World" project file projects\hello_world\hello_world.vcxproj.

Prerequisites

CARLsim 4 comes with the following requirements:

  • (Windows) Microsoft Visual Studio 2015 or higher.
  • (optional) CMake 3.0 or higher in case you want to build it using CMake.
  • (optional) CUDA Toolkit 6.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 latest release was tested on the following platforms:

  • Ubuntu 16.04
  • Mac OS X 10.11 (El Capitan)
  • Windows 7/10 (Tested using VS 15 and cuda 8.0)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].