sPyNNaker: A Software Package for Running PyNN Simulations on SpiNNaker - Rhodes, Oliver; Bogdan, Petruţ A.; Brenninkmeijer, Christian; Davidson, Simon; Fellows, Donal; Gait, Andrew; Lester, David R.; Mikaitis, Mantas; Plana, Luis A.; Rowley, Andrew G. D.; Stokes, Alan B.; Furber, Steve B. (Frontiers in Neuroscience, 2018)
This work presents sPyNNaker 4.0.0, the latest version of the software package for simulating PyNN-defined spiking neural networks (SNNs) on the SpiNNaker neuromorphic platform. Operations underpinning realtime SNN execution are presented, including an event-based operating system facilitating efficient time-driven neuron state updates and pipelined event-driven spike processing. Preprocessing, realtime execution, and neuron/synapse model implementations are discussed, all in the context of a simple example SNN. Simulation results are demonstrated, together with performance profiling providing insights into how software interacts with the underlying hardware to achieve realtime execution. System performance is shown to be within a factor of 2 of the original design target of 10,000 synaptic events per millisecond, however SNN topology is shown to influence performance considerably. A cost model is therefore developed characterizing the effect of network connectivity and SNN partitioning. This model enables users to estimate SNN simulation performance, allows the SpiNNaker team to make predictions on the impact of performance improvements, and helps demonstrate the continued potential of the SpiNNaker neuromorphic hardware.