From GUI to GPU: A toolchain for GPU code generation for large scale Drosophila simulations using SpineML
The University of Sheffield, Department of Automatic Control and Systems Engineering, United Kingdom
The University of Sheffield, Department of Computer Science, United Kingdom
The importance of simulator-independent high-level model-description languages for model building, sharing, and integration in computational neuroscience has been well established. Simulator independence is essential to ensure that complex models are both testable and reproducible. However the adoption of standardisation has been hampered by the current difficulty of developing and visualising Layered XML models, due to a lack of intuitive model creation tools.
Concurrently, the development of increasingly complex and comprehensive simulations, such as whole-brain emulation, require a shift to massively parallel programming paradigms. GPU utilization has proven to be a powerful tool for reducing execution times of the large-scale models required for rapid hypothesis generation and testing. Problematically, while parallel programming is a powerful tool, it is notoriously difficult and time consuming for non-experts to develop efficient, portable and testable code.
This requirement for efficient GPU-level programming presents a further barrier to entry for open-science, due to both the increased financial burden of GPU infrastructure, and the specialized knowledge needed for proficiency specific GPU programming paradigms. This in turn negatively impacts the progress model sharing and integration.
Here we describe a complete GUI to GPU tool chain based on SpineML (Richmond et al, 2014) , a LEMS derived layered neural modeling language (Cannon et al. 2014), and the associated graphical user interface, SpineCreator. We demonstrate easy development of large scale neural networks, with support for both CPU and GPU code generation. We prototype both local and remote code execution, encouraging large-scale, parallel-execution of standardised model specifications, with seamless model sharing. We demonstrate the capability of running these models both on local hardware, and with easily set up cloud computing services, enabling GPU utilization, without requiring the considerable time and financial investments associated with GPU development and maintenance.
As an important model for neurological investigation, with a large genetic tool-base, we focus here on the Drosophila model organism, and utilise the Neurokernel GPU based simulation platform (Givon et al. (2016)), aimed at facilitating easy model integration through modularly defined drosophila Local Processing Units (LPUs). To enable model translation from XML to GPU code we developed the libSpineML python library as a pythonic interface to the model description, to facilitate programmatic model creation and translation into executable Neurokernel modules.
Using this programmatic SpineML interface, we developed the toolchain to transform arbitrary neuron components into CUDA kernels (Goodman et al. (2010)), which can run in massively parallel network simulations natively in the Neurokernel GPU framework. Building on this modular pipeline, we show how locally created high level network specifications can be compiled down to efficient CUDA code to be executed locally, or remotely. We detail a novel web-interface and framework for GPU-cloud computing access, further reducing the barrier to entry to massively parallel neural simulations.
What results is a flexible, powerful, and open-standard based toolchain which empowers intuitive graphical neuroscientific simulation design, with seamless dynamic GPU code generation. This combination of large scale massively-parallel simulations, with graphical creation tools and remote execution through cloud access, will simultaneously reduced the barrier to entry for GPU-enabled simulations, and significantly improve the development process for the sharable, testable and reproducible models required in successful open science initiatives.
Richmond, P. Cope A, Gurney K, Allerton DJ. (2014) From model specification to simulation of biologically constrained networks of spiking neurons. Neuroinformatics. 12(2):307-23
Cannon, R. C. Gleeson, P. Crook, C. Ganapathy, G. Marin, B. Piasini, E. Silver, R, A. (2014) LEMS: A language for expressing complex biological models in concise and hierarchical form and its use in underpinning NeuroML 2.
Givon, L. Lazar, A. (2016). Neurokernel: An Open Source Platform for Emulating the Fruit Fly Brain. Plos One.
Goodman, D. (2010). Code Generation: A Strategy for Neural Network Simulators. Neuroinformatics, Volume 8, Issue 3, pp 183-196
GPU code generation,
Graphical Neuron Modelling,
Cloud Based Neuron Simulator
Neuroinformatics 2016, Reading, United Kingdom, 3 Sep - 4 Sep, 2016.
(2016). From GUI to GPU: A toolchain for GPU code generation for large scale Drosophila simulations using SpineML.
30 Apr 2016;
18 Jul 2016.
Dr. Adam Tomkins, The University of Sheffield, Department of Automatic Control and Systems Engineering, Sheffield, South Yorkshire, S1 3JD, United Kingdom, email@example.com