High Performance Simulation of Spiking Neural Networks

Adriano Pimpini



pdf Download PDF

Abstract:
Spiking Neural Networks (SNNs) are a class of Artificial Neural Networks that closely mimic biological neural networks. They are particularly interesting for the scientific community because of their potential to advance research in a number of fields, both because of better insights on neural behaviour, benefitting medicine, neuroscience, psychology, and because of the potential in Artificial Intelligence. Their ability to run on a very low energy budget once implemented in hardware makes them even more appealing. However, because of their behaviour that evolves with time, when a hardware implementation is not available, their output cannot simply be computed with a one-shot function—however large—, but rather they need to be simulated.
Simulating Spiking Neural Networks is extremely costly, mainly due to their sheer size. Current simulation methods have trouble scaling up on more powerful systems because of their use of conservative global synchronization methods. In this work, Parallel Discrete Event Simulation (PDES) with Time Warp is proposed as a highly scalable solution to simulate Spiking Neural Networks, thanks to the optimistic approach to synchronization.
The main problem of PDES is the complexity of implementing a model on it, especially of a system that is continuous in time, as time in PDES “jumps” from one event to the next. This greatly increases friction towards adoption of PDES to simulate SNNs. As such, current simulation-based work on SNNs is relegated to worse-scaling approaches. In order to foster the adoption of PDES and further the work on simulation of SNNs on larger scales, in this work a solution is developed and presented that hides the underlying complexity of PDES.

BibTeX Entry:

@mastersthesis{tPimp20,
author = {Pimpini, Adriano},
school = {Sapienza, University of Rome},
title = {High Performance Simulation of Spiking Neural Networks},
year = {2020},
month = oct,
type = {mathesis},
comment = {Supervisor: A. Pellegrini.}
}