Accelerating spiking neural network simulations with PymoNNto and PymoNNtorch

Front Neuroinform. 2024 Feb 20:18:1331220. doi: 10.3389/fninf.2024.1331220. eCollection 2024.

Abstract

Spiking neural network simulations are a central tool in Computational Neuroscience, Artificial Intelligence, and Neuromorphic Engineering research. A broad range of simulators and software frameworks for such simulations exist with different target application areas. Among these, PymoNNto is a recent Python-based toolbox for spiking neural network simulations that emphasizes the embedding of custom code in a modular and flexible way. While PymoNNto already supports GPU implementations, its backend relies on NumPy operations. Here we introduce PymoNNtorch, which is natively implemented with PyTorch while retaining PymoNNto's modular design. Furthermore, we demonstrate how changes to the implementations of common network operations in combination with PymoNNtorch's native GPU support can offer speed-up over conventional simulators like NEST, ANNarchy, and Brian 2 in certain situations. Overall, we show how PymoNNto's modular and flexible design in combination with PymoNNtorch's GPU acceleration and optimized indexing operations facilitate research and development of spiking neural networks in the Python programming language.

Keywords: GPU accelerated; comparison; efficient implementation; simulator; spiking neural network (SNN).

Grants and funding

The author(s) declare that no financial support was received for the research, authorship, and/or publication of this article.