DigiCortex - Biological neural network simulator
DigiCortex is a large-scale, biologically-realistic, neural network simulator that runs on a standard Windows PC. It uses multi-compartment neuron models and spiking models as developed by Eugene Izhikevich. The software is written C/C++ and is highly optimised for the latest generation of Intel CPUs and Nvidia GPUs.
DigiCortex can simulate around 32k neurons and 1.8m synapses at 0.25x real-time on a normal home computer. On a high-end 16-core PC with 350 GB of RAM a simulation of 16.7 million neurons and 3.52 billion synapses has been achieved, although this was at 0.001x real-time. Using Nvidia GPUs real-time simulations of 300k neurons and 30m synapses have been performed. The target for 2013 is to scale this up to a multi-GPU solution which simulates 1m neurons in real-time.
Latest news / current status
|June 9, 2013 -||Version 0.98 released, adds support for Intel Haswell AVX2 instructions. Haswell is the new Intel CPU architecture announced on June 4, 2013.|
|May 26, 2013 -||Version 0.97 released, includes a model of the visual system including retina, thalamus, and visual cortex. A webcam can send visual input to the model retina and resulting neural activity in the simulated visual cortex can be visualised.|
|March 16, 2013 -||Version 0.95 released, supports CUDA. Using an Nvidia GK110 GPU it achieves a 7x speedup over the CPU version. Real-time simulations of 100k neurons and 10m synapses achieved.|
|December 27, 2012 -||Video showing 16.7 million neurons and 3.52 billion synapses.|
|May 30, 2012 -||Video showing 8 million neurons and 1.45 billion synapses.|
|September 25, 2011 -||First public release, version 0.24.|
|March 10, 2011 -||Development started.|
DigiCortex is a small independent project started by Ivan Dimkovic in Stuttgart, Germany. Development began in March 2011 and the first version was publicly released in September that year. Ana Balevic started porting the code to GPUs in early 2013. The latest version was released in June 2013. The effort is not currently funded but is being developed as a hobby during spare time. The simulator is publicly available for free download. The source code is written from scratch in C/C++ and OpenGL. The source is not publicly available but might be released in the future once it's been tidied up.
The simulation uses neuronal models and algorithms developed by Eugene Izhekevic (Brain Corporation) and Henry Markram (Blue Brain Project). It simulates various types of spiking neurons including cortical pyramidal, spiny stellate, basket, and thalamic neurons. It models AMPA, NMDA, and GABA receptors, myelinated and non-myelinated axons, as well as synaptic plasticity (STDP).
The DigiCortex engine models neurons at the level of action potentials and synaptic receptors. It uses the phenomenological spiking model developed by Eugene Izhikevich. The multi-compartmental models currently have 30 compartments per neuron.
The implementation is currently optimized for the Intel Sandy Bridge family of processors. An implementation for GPUs is currently under development the using the CUDA parallel computing architecture.
The video right shows a simulation of the mammalian thalamocortical system with 8 million neurons and 1.45 billion synapses. View it at full screen and full resolution to see all the detail. The 100-second video shows just over three seconds of simulated time. Note the emergence of a 1 hertz delta wave which is characteristic of humans during deep sleep.
If the network is left to run for more than 15 minutes of simulated time, STDP will significantly alter the neuronal firing patterns. If a permanent stimulus is suddenly turned off after that time a shadow will persist because the simulated neurons are accustomed to the constant presence of the stimulus, just like real neurons.
Around 130 GB of memory were required by the simulation engine, and another 20 GB for the visualisation. The simulation runs at about 0.001x real time on a dual-processor Intel Xeon E5-2687W machine. Each processor has 8 cores, so that's 16 cores in total.
Many more videos are available via Ivan's 321psyq channel on YouTube.
Planned for the future is a client/server model to enable cluster processing, and an API for connecting the simulation to sensors.
DigiCortex is not currently open source. Ivan wrote in June 2012 that he will consider releasing the code once it is mature and clean.
Ivan Dimkovic, born 1981 in Serbia, is a software developer currently living in Stuttgart, Germany. In the late 1990s he became known for having developed the PsyTEL AAC Encoder - an encoding scheme for digital audio files. The stereo mode of this format had the best quality available in its day. Ivan has profiles on Google, LinkedIn, and EliteSecurity.
Ana Balevic was born 1980 in Serbia. In 2013 she submitted her PhD thesis in parallel programming at Leiden University in the Netherlands. See her website at imagineparallel.com, and Twitter feed at @anabalevic.
- Homepage: digicortex.net
- Twitter: @digicortex
- Videos: youtube.com/321psyq
- Discussion: Artificial nervous system demo (in Serbian)