SpikeFun 1.05 - First release of DigiCortex SDK

Click here to download DigiCortex demo...

SpikeFun 1.05 release comes with the first public release of the DigiCortex SDK. You can find the SDK in the /SDK subdirectory of the SpikeFun installation. The number of APIs in the first version of the SDK is limited and the SDK works only with CPU simulation (CUDA simulations are currently not supported but will be in the future versions of DigiCortex.).














First SDK release also contains neuron_query C++ example showing the following capabilities (currently, the only exposed APIs so far):

  • Searching for and obtaining the list of pyramidal neurons of layer V, located in cuneus and pericalcarine regions
  • Creating a mapped neuron buffer containing above neurons, which is used for further operations
  • Injecting current (1 nA) in the somatic compartment of the first neuron in the buffer
  • Updating mapped neuron buffer with the latest information from the simulation
  • Waiting for the asynchronous update to complete
  • Showing membrane voltages and spike information of the first 10 neurons in the buffer

To build neuron_query example, Visual Studio 2012 (or later) is needed. SDK requires x64 platform and compilers. After the build is complete, neuron_query64.exe should be copied to the folder where the DigiCortex engine binaries reside and executed after start of the simulation.

If everything is executed well, the output of neuron_query64.exe should look similar to this:

Number of p5(l5/6) neurons found in PERICALCARINE and CUNEUS regions: 70
Successfully mapped 70 neurons
Neuron 0 (real idx: 33576): Vsoma=-59.877 mv, spikes: 188, last spike ts: 39504
Neuron 1 (real idx: 33676): Vsoma=-74.762 mv, spikes: 0, last spike ts: 0
Neuron 2 (real idx: 52858): Vsoma=-74.741 mv, spikes: 0, last spike ts: 0
Neuron 3 (real idx: 52977): Vsoma=-74.743 mv, spikes: 0, last spike ts: 0
Neuron 4 (real idx: 52989): Vsoma=-74.742 mv, spikes: 0, last spike ts: 0
Neuron 5 (real idx: 53002): Vsoma=-74.741 mv, spikes: 0, last spike ts: 0
Neuron 6 (real idx: 53023): Vsoma=-74.742 mv, spikes: 0, last spike ts: 0
Neuron 7 (real idx: 53091): Vsoma=-74.743 mv, spikes: 0, last spike ts: 0
Neuron 8 (real idx: 53097): Vsoma=-74.742 mv, spikes: 0, last spike ts: 0
Neuron 9 (real idx: 53143): Vsoma=-74.742 mv, spikes: 0, last spike ts: 0

Please note that above information is queried with the built-in RPC mechanism of DigiCortex engine. This means it is not "real-time", as it is asynchronous as gets fulfilled on the "best effort" basis. These APIs (RPC and mapped neuron buffers) are called "Tier 2" API. In the future, "Tier 1" APIs will be published, too, which will allow running inside the simulation process (as a plug-in) and ability to respond to every simulation time step synchronously, blocking the simulation until arbitrary processing is done.

The advantage of Tier-2 APIs is that they, generally, do not slow down the simulation and execute outside of the simulation process. However, this comes at the price of latency: by the time neuron_query example gets back the updated neuron buffer, simulation already advanced by the number of timestamp(s).