Skip to content

Latest commit

 

History

History
50 lines (38 loc) · 1.8 KB

README.md

File metadata and controls

50 lines (38 loc) · 1.8 KB

soft-npu

soft-npu (software-based neural processing unit) is an event-driven framework for processing dynamics of spiking neural networks (SNNs). This project served as a proof of concept for some of my newer projects.

Key Features

  • Event-driven
  • Leaky integrate-and-fire neurons
  • Conduction delays
  • Spike-timing-dependent plasticity modulated via dopamine-based signaling (R-STDP)
  • Short-term plasticity
  • Json-based configuration
  • Tools for generating network topologies
  • Tools for metaheuristic optimization of parameters

Motivation

Inspiration for this projects originates from two publications by neuroscientist Eugene M. Izhikevich:

  • Polychronization: Computation with Spikes [1]
  • Solving the Distal Reward Problem through Linkage of STDP and Dopamine Signaling [2]

The aim is to explore the potential of emerging polychronous groups with R-STDP as a learning mechanism in SNNs.

Example Spike Raster

plot

Usage

Below instructions should work on UNIX-based systems. Some dependencies may have to be installed.

# build
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release .. # -DCMAKE_INSTALL_PREFIX=${HOME}/.local/
make # -j8

# run tests
make test

# run example
./src/nsim

Note: one of the dependencies is libcmaes, which is fetched and built on the fly if not present. This may take some time. If a local installation of libcmaes is already present, best to make it visible to cmake in the install prefix.

References

[1] Eugene M. Izhikevich (2006). Polychronization: Computation with Spikes. https://www.izhikevich.org/publications/spnet.pdf.

[2] Eugene M. Izhikevich (2007). Solving the Distal Reward Problem through Linkage of STDP and Dopamine Signalings. https://www.izhikevich.org/publications/dastdp.pdf.