SpineML and Brian 2.0 interfaces for using GPU enhanced Neuronal Networks (GeNN)
BMC Neuroscience volume 15, Article number: P148 (2014)
The GPU enhanced Neuronal Networks (GeNN) framework [1, 2] was introduced in 2011 to facilitate the efficient use of graphical processing units (GPUs) as accelerators for neuronal network simulations, in particular as part of computational neuroscience investigations. GeNN is based substantially on code generation for the NVIDIA CUDA application programming interface. Code generation provides decisive advantages over stand-alone simulators in that (i) code can be optimized both for every individual model and for the specific GPU hardware detected at compile time, and (ii) code generation allows to provide a practically limitless number of pre-defined models while the generated simulation code remains as small and efficient as possible.
While GeNN is an important step towards facilitating the use of GPU acceleration for computational neuroscience applications it has been designed with expert users in mind. Particular emphasis has been put on flexibility and extendibility and, in case of conflict, these were prioritized over the easy of use.
In the work presented here we are aiming to make GeNN and the corresponding GPU acceleration now also available to non-expert users by providing two new interfaces from SpineCreator /SpineML  and the Brian 2 simulator [5, 6] to GeNN.
We have created prototype interfaces from SpineCreator using the SpineML markup language and from Brian 2 by modifying the code generation facilities within Brian 2 to generate valid GeNN input files. In both cases, a middleware was created that takes the model descriptions that were either available in SpineML (as generated by SpineCreator) or the internal representation in Brian 2 and translate them into the three main code parts necessary to run a GeNN simulation: (i) Neuron, synapse and network definitions including variables, parameters, code to integrate dynamical equations and properties of the connectivity, (ii) Code that runs the GeNN generated code to execute the simulation and (iii) code that regulates the transfer of information from SpineCreator/Brian 2 to GeNN and vice versa (e.g. for providing connectivity matrices and returning simulation results).
We believe that when the new SpineCreator and Brian 2 interfaces will have been fully developed, tested and released we can make a decisive difference in the uptake of GPU acceleration for neuronal network simulations. The completed prototypes show sufficient flexibility and ease of use to be appealing to a wide range of future users.
Nowotny T: Flexible neuronal network simulation framework using code generation for NVIDIA CUDA. BMC Neurosci. 2011, 12 (Suppl 1): P239-10.1186/1471-2202-12-S1-P239.
Nowotny T, Yavuz E, Turner J: GeNN. http://genn.sourceforge.net/, accessed 13-02-2014
Cope AJ, Richmond P: SpineCreator. 2014, http://bimpa.group.shef.ac.uk/SpineML/index.php/Gui, accessed 13-02-2014
Richmond P, Cope AJ, Gurney K, Allerton DJ: From Model Specification to Simulation of Biologically Constrained Networks of Spiking Neurons. Neuroinformatics. 10.1007/s12021-013-9208-z.
Goodman D, Brette R: The Brian Simulator. Front. Neurosci. 2009, 3 (2): 192-197. 10.3389/neuro.01.026.2009.
Stimberg M, Goodman DFM, Benichoux V, Brette R: Equation-oriented specification of neural models for simulations. Front. Neuroinf. 2014, 10.3389/fninf.2014.0000.
This work was supported by the EPSRC (Green Brain Project, grant numbers EP/J019690/1, EP/J019534/1 and Delivery Plan ‘Kickstart’ funding).
About this article
Cite this article
Nowotny, T., Cope, A.J., Yavuz, E. et al. SpineML and Brian 2.0 interfaces for using GPU enhanced Neuronal Networks (GeNN). BMC Neurosci 15 (Suppl 1), P148 (2014). https://doi.org/10.1186/1471-2202-15-S1-P148
- Code Generation
- Graphical Processing Unit
- Application Programming Interface
- Computational Neuroscience
- Connectivity Matrice