PyGeNN: A Python Library for GPU-Enhanced Neural Networks
- PMID: 33967731
- PMCID: PMC8100330
- DOI: 10.3389/fninf.2021.659005
PyGeNN: A Python Library for GPU-Enhanced Neural Networks
Abstract
More than half of the Top 10 supercomputing sites worldwide use GPU accelerators and they are becoming ubiquitous in workstations and edge computing devices. GeNN is a C++ library for generating efficient spiking neural network simulation code for GPUs. However, until now, the full flexibility of GeNN could only be harnessed by writing model descriptions and simulation code in C++. Here we present PyGeNN, a Python package which exposes all of GeNN's functionality to Python with minimal overhead. This provides an alternative, arguably more user-friendly, way of using GeNN and allows modelers to use GeNN within the growing Python-based machine learning and computational neuroscience ecosystems. In addition, we demonstrate that, in both Python and C++ GeNN simulations, the overheads of recording spiking data can strongly affect runtimes and show how a new spike recording system can reduce these overheads by up to 10×. Using the new recording system, we demonstrate that by using PyGeNN on a modern GPU, we can simulate a full-scale model of a cortical column faster even than real-time neuromorphic systems. Finally, we show that long simulations of a smaller model with complex stimuli and a custom three-factor learning rule defined in PyGeNN can be simulated almost two orders of magnitude faster than real-time.
Keywords: GPU; benchmarking; computational neuroscience; high-performance computing; parallel computing; python; spiking neural networks.
Copyright © 2021 Knight, Komissarov and Nowotny.
Conflict of interest statement
The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.
Figures
Similar articles
-
Brian2CUDA: Flexible and Efficient Simulation of Spiking Neural Network Models on GPUs.Front Neuroinform. 2022 Oct 31;16:883700. doi: 10.3389/fninf.2022.883700. eCollection 2022. Front Neuroinform. 2022. PMID: 36387586 Free PMC article.
-
GPUs Outperform Current HPC and Neuromorphic Solutions in Terms of Speed and Energy When Simulating a Highly-Connected Cortical Model.Front Neurosci. 2018 Dec 12;12:941. doi: 10.3389/fnins.2018.00941. eCollection 2018. Front Neurosci. 2018. PMID: 30618570 Free PMC article.
-
Brian2GeNN: accelerating spiking neural network simulations with graphics hardware.Sci Rep. 2020 Jan 15;10(1):410. doi: 10.1038/s41598-019-54957-7. Sci Rep. 2020. PMID: 31941893 Free PMC article.
-
Efficient parameter calibration and real-time simulation of large-scale spiking neural networks with GeNN and NEST.Front Neuroinform. 2023 Feb 10;17:941696. doi: 10.3389/fninf.2023.941696. eCollection 2023. Front Neuroinform. 2023. PMID: 36844916 Free PMC article.
-
GPUPeP: Parallel Enzymatic Numerical P System simulator with a Python-based interface.Biosystems. 2020 Oct;196:104186. doi: 10.1016/j.biosystems.2020.104186. Epub 2020 Jun 11. Biosystems. 2020. PMID: 32535178 Review.
Cited by
-
Brian2CUDA: Flexible and Efficient Simulation of Spiking Neural Network Models on GPUs.Front Neuroinform. 2022 Oct 31;16:883700. doi: 10.3389/fninf.2022.883700. eCollection 2022. Front Neuroinform. 2022. PMID: 36387586 Free PMC article.
-
Fast Simulation of a Multi-Area Spiking Network Model of Macaque Cortex on an MPI-GPU Cluster.Front Neuroinform. 2022 Jul 4;16:883333. doi: 10.3389/fninf.2022.883333. eCollection 2022. Front Neuroinform. 2022. PMID: 35859800 Free PMC article.
-
Investigating visual navigation using spiking neural network models of the insect mushroom bodies.Front Physiol. 2024 May 22;15:1379977. doi: 10.3389/fphys.2024.1379977. eCollection 2024. Front Physiol. 2024. PMID: 38841209 Free PMC article.
-
EXODUS: Stable and efficient training of spiking neural networks.Front Neurosci. 2023 Feb 8;17:1110444. doi: 10.3389/fnins.2023.1110444. eCollection 2023. Front Neurosci. 2023. PMID: 36845419 Free PMC article.
-
Connectivity concepts in neuronal network modeling.PLoS Comput Biol. 2022 Sep 8;18(9):e1010086. doi: 10.1371/journal.pcbi.1010086. eCollection 2022 Sep. PLoS Comput Biol. 2022. PMID: 36074778 Free PMC article. Review.
References
-
- Akar N. A., Cumming B., Karakasis V., Kusters A., Klijn W., Peyser A., et al. . (2019). “Arbor–A morphologically-detailed neural network simulation library for contemporary high-performance computing architectures,” in 2019 27th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP) (Pavia: ), 274–282. 10.1109/EMPDP.2019.8671560 - DOI
-
- Apache Crail (2019). Crail Python API: Python -> C/C++ Call Overhead.
-
- Balaji A., Adiraju P., Kashyap H. J., Das A., Krichmar J. L., Dutt N. D., et al. . (2020). PyCARL: a PyNN interface for hardware-software co-simulation of spiking neural network. arXiv:2003.09696. 10.1109/IJCNN48605.2020.9207142 - DOI
-
- Bautembach D., Oikonomidis I., Argyros A. (2021). Multi-GPU SNN simulation with perfect static load balancing. arXiv:2102.04681.
-
- Beazley D. M. (1996). “Using SWIG to control, prototype, and debug C programs with Python,” in Proc. 4th Int. Python Conf (Livermore, CA: ).
LinkOut - more resources
Full Text Sources
