Brian2GeNN: a system for accelerating a large variety of spiking neural networks with graphics hardware

“Brian” is a popular Python-based simulator for spiking neural networks, commonly used in computational neuroscience. GeNN is a C++-based meta-compiler for accelerating spiking neural network simulations using consumer or high performance grade graphics processing units (GPUs). Here we introduce a new software package, Brian2GeNN, that connects the two systems so that users can make use of GeNN GPU acceleration when developing their models in Brian, without requiring any technical knowledge about GPUs, C++ or GeNN. The new Brian2GeNN software uses a pipeline of code generation to translate Brian scripts into C++ code that can be used as input to GeNN, and subsequently can be run on suitable NVIDIA GPU accelerators. From the user’s perspective, the entire pipeline is invoked by adding two simple lines to their Brian scripts. We have shown that using Brian2GeNN, typical models can run tens to hundreds of times faster than on CPU.

[1]  R. Traub,et al.  Neuronal Networks of the Hippocampus , 1991 .

[2]  Tomaso Poggio,et al.  CNS: a GPU-based framework for simulating cortically-organized networks , 2010 .

[3]  Nicholas T. Carnevale,et al.  Simulation of networks of spiking neurons: A review of tools and strategies , 2006, Journal of Computational Neuroscience.

[4]  Ramón Huerta,et al.  Self-organization in the olfactory system: one shot odor recognition in insects , 2005, Biological Cybernetics.

[5]  Nikil D. Dutt,et al.  A configurable simulation environment for the efficient simulation of large-scale spiking neural networks on graphics processors , 2009, Neural Networks.

[6]  Romain Brette,et al.  Neuroinformatics Original Research Article Brian: a Simulator for Spiking Neural Networks in Python , 2022 .

[7]  Frederick C. Harris,et al.  A novel CPU/GPU simulation environment for large-scale biologically realistic neural modeling , 2013, Front. Neuroinform..

[8]  Dan F. M. Goodman Code Generation: A Strategy for Neural Network Simulators , 2010, Neuroinformatics.

[9]  Romain Brette,et al.  Simulating spiking neural networks on GPU , 2012, Network.

[10]  Romain Brette,et al.  The Brian Simulator , 2009, Front. Neurosci..

[11]  Trevor Bekolay,et al.  Nengo: a Python tool for building large-scale functional brain models , 2014, Front. Neuroinform..

[12]  Thomas Nowotny,et al.  GeNN: a code generation framework for accelerated brain simulations , 2016, Scientific Reports.

[13]  Keechul Jung,et al.  GPU implementation of neural networks , 2004, Pattern Recognit..

[14]  Romain Brette,et al.  Equation-oriented specification of neural models for simulations , 2013, Front. Neuroinform..

[15]  Julien Vitay,et al.  ANNarchy: a code generation approach to neural simulations on parallel hardware , 2015, Front. Neuroinform..

[16]  Murray Shanahan,et al.  Accelerated simulation of spiking neural networks using GPUs , 2010, The 2010 International Joint Conference on Neural Networks (IJCNN).