Cargando…

PyGeNN: A Python Library for GPU-Enhanced Neural Networks

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 Ge...

Descripción completa

Detalles Bibliográficos
Autores principales: Knight, James C., Komissarov, Anton, Nowotny, Thomas
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Frontiers Media S.A. 2021
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8100330/
https://www.ncbi.nlm.nih.gov/pubmed/33967731
http://dx.doi.org/10.3389/fninf.2021.659005
_version_ 1783688763670528000
author Knight, James C.
Komissarov, Anton
Nowotny, Thomas
author_facet Knight, James C.
Komissarov, Anton
Nowotny, Thomas
author_sort Knight, James C.
collection PubMed
description 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.
format Online
Article
Text
id pubmed-8100330
institution National Center for Biotechnology Information
language English
publishDate 2021
publisher Frontiers Media S.A.
record_format MEDLINE/PubMed
spelling pubmed-81003302021-05-07 PyGeNN: A Python Library for GPU-Enhanced Neural Networks Knight, James C. Komissarov, Anton Nowotny, Thomas Front Neuroinform Neuroscience 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. Frontiers Media S.A. 2021-04-22 /pmc/articles/PMC8100330/ /pubmed/33967731 http://dx.doi.org/10.3389/fninf.2021.659005 Text en Copyright © 2021 Knight, Komissarov and Nowotny. https://creativecommons.org/licenses/by/4.0/This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.
spellingShingle Neuroscience
Knight, James C.
Komissarov, Anton
Nowotny, Thomas
PyGeNN: A Python Library for GPU-Enhanced Neural Networks
title PyGeNN: A Python Library for GPU-Enhanced Neural Networks
title_full PyGeNN: A Python Library for GPU-Enhanced Neural Networks
title_fullStr PyGeNN: A Python Library for GPU-Enhanced Neural Networks
title_full_unstemmed PyGeNN: A Python Library for GPU-Enhanced Neural Networks
title_short PyGeNN: A Python Library for GPU-Enhanced Neural Networks
title_sort pygenn: a python library for gpu-enhanced neural networks
topic Neuroscience
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8100330/
https://www.ncbi.nlm.nih.gov/pubmed/33967731
http://dx.doi.org/10.3389/fninf.2021.659005
work_keys_str_mv AT knightjamesc pygennapythonlibraryforgpuenhancedneuralnetworks
AT komissarovanton pygennapythonlibraryforgpuenhancedneuralnetworks
AT nowotnythomas pygennapythonlibraryforgpuenhancedneuralnetworks