Question about Auryn

General discussion on network/plasticity simulation based questions. Specifically, which simulator is the right one for your use case?
Post Reply
zgu666
Posts: 1
Joined: Wed Apr 15, 2015 2:01 pm

Question about Auryn

Post by zgu666 »

We are implementing a FPGA-based Spiking NN simulator.

1. We implement Leaky Integrate and Fire (LIF) neuron model with current-based synapses, with no learning (STDP). Your paper mentioned "Poisson neurons". Could you please explain what it means, and how it relates to LIF model?
2. Is it straightforward to turn off STDP in the simulator?
3. Since FPGA uses fixed-point arithmetic, we would like to evaluate the effect of fixed-point arithmetic on simulation accuracy.
If we use Auryn to run simulations before mapping the NN to FPGA implementation. Is there an easy way to change Auryn to use fixed-point arithmetic, instead of floating point?

Thanks for your help!
User avatar
zenke
Site Admin
Posts: 156
Joined: Tue Oct 14, 2014 11:34 am
Location: Basel, CH
Contact:

Re: Question about Auryn

Post by zenke »

zgu666 wrote:We are implementing a FPGA-based Spiking NN
simulator.
1. We implement Leaky Integrate and Fire (LIF) neuron model with
current-based synapses, with no learning (STDP). Your paper mentioned
"Poisson neurons". Could you please explain what it means, and how it
relates to LIF model?
Poisson neurons implement Poisson processes (i.e. they emit spike trains with exponentially distributed inter-spike-interval (ISI) distributions). They are commonly used as noise source and external background input in network simulations.
zgu666 wrote: 2. Is it straightforward to turn off STDP in the simulator?
Yes. STDP is implement as a particular connection object. If you use a non-plastic connection instead (e.g. SparseConnection) there won't be STDP in the model.
zgu666 wrote:3. Since FPGA uses fixed-point arithmetic, we would like to
evaluate the effect of fixed-point arithmetic on simulation accuracy.
If we use Auryn to
run simulations before mapping the NN to FPGA implementation. Is there an
easy way to change Auryn to use fixed-point arithmetic, instead of
floating point?

Thanks for your help!
That is fairly straight forward if you are not worried about maximum performance in the simulation, but you want to test for correctness. Depending on the neuron model it will be sufficient to just change the implementation of the vector operations in auryn_definitions.cpp:
https://github.com/fzenke/auryn/blob/ma ... itions.cpp

For one such function (starting with auryn_vector_XYZ, e.g. auryn_vector_float_scale, which scales a state vector by a constant) you could replace the functionality, by the fixed comma arithmetic. The simulator will pass around floats though (changing this to a fixed comma type would be more demanding), but the floats would be limited to your fixed comma range and discretization whichever you choose to implement in these vector operations.

Note that some neuron models (such as TIFGroup) do not fully use vector operations, but implement certain parts on a neuron by neuron basis.
https://github.com/fzenke/auryn/blob/ma ... FGroup.cpp see evolve()

You would have to implement your fixed comma arithmetic here too.
Post Reply