with Michael Hull, Steve Marsh and Matt Naylor

Download Report

Transcript with Michael Hull, Steve Marsh and Matt Naylor

A toolchain for running
NeuroML/LEMS models
on Bluehive
Simon Moore
Glossary!
• NeuroML/LEMS
– XML based declarative descriptions of neural
networks
– LEMS – language for modeling event-based systems
– NeuroML – library of LEMS components for
neuroscience
• Bluehive
– One or more boxes of highly-connected FPGAs
• FPGA
– Field Programmable Gate Array
– Allows custom computation and communication
Bluehive Communcation Topology
Case Study: Custom Communication
for Neural Computation
Dan won the 2011 UK distinguished
Ph.D. thesis in Computer Science
BlueVec on Bluehive
• BlueVec
– a domain specific vector processor
– supports streamed memory accesses and parallel
compute on FPGA
– provides an effective software-programmable
substrate for neural computation
• FPL’2013 paper:
Managing the FPGA memory wall:
custom computing or vector processing?
Refining neural descriptions
LEMS  LEMS-lite
• LEMS provides a high-level declarative
description of models
• LEMS-lite provides an intermediate language
between LEMS and machine-specific code
• Transforming LEMS to LEMS-lite involves
choosing numerical methods
Work by Robert Cannon (Textensor, Edinburgh) with
Michael Hull, Steve Marsh and Matt Naylor (Cambridge)
Code generation from LEMS-lite
• Compile LEMS-lite to output:
– C-code
• Single threaded (in beta)
• Multithreaded (in progress)
– Vectorised C
• BlueVec (in progress)
– OpenCL
• For GPUs (in planning)
• For FPGAs (in planning)
Tadpoles  LEMS-lite  FPGAs
• Michael Hull hired on eFutures grant as an RA
– PhD work on modeling tadpoles
• Collaboration with Matt Naylor to produce
– Fixed point implementation
(useful for Bluehive or SpiNNaker)
– Vectorised version for BlueVec on Bluehive
– NeuroML+LEMS version (in progress)
• Collaboration with Robert Cannon to
transform into a LEMS-lite version
Demo – Tadpole simulation on FPGA
Video online: http://sms.cam.ac.uk/media/1608566
Neural simulation scale-up
Num. neurons
Num. cores
BlueVec on FPGA
Xeon server (max 32 cores)
64k
1
1.3s
1.1s
128k
2
2.2s
2.2s
256k
4
3.0s
2.9s
512k
8
3.1s
3.0s
1M
16
3.3s
5.6s
2M
32
3.4s
10.8s
1M
32
2.0s
-
512k
32
1.0s
-
Data for Izhikevich neurons with 1000 synapses per
neuron simulating for 1 second of real-time
Conclusions
• NeuroML+LEMS
– Provides a good interface between neuroscientists
and computer scientists
• LEMS-lite
– Allows declarative neural models in LEMS to be
refined into a more implementation-focused
description
• Compilation from LEMS-lite
– Allows efficient machine-specific executable code to
be automatically generated
• Neural computation demands
scalable low-latency communication
– FPGAs allow us to explore architectural possibilities
Future Directions
• Hypothesis: highly-connected event-driven
architectures will provide power-efficient
high-performance scientific computation
Extra demo: simulation on FPGA of
a Nengo LIF model
Video online: http://sms.cam.ac.uk/media/1446267