Abstract
This paper presents a toolbox of solutions that enable the user to construct biologically-inspired spiking neural networks with tens of thousands of neurons and millions of connections that can be simulated in real time, visualized in 3D and connected to robots and other devices. NeMo is a high performance simulator that works with a variety of neural and oscillator models and performs parallel simulations on either GPUs or multi-core processors. SpikeStream is a visualization and analysis environment that works with NeMo and can construct networks, store them in a database and visualize their activity in 3D. The iSpike library provides biologically-inspired conversion between real data and spike representations to support work with robots, such as the iCub. Each of the tools described in this paper can be used independently with other software, and they also work well together.
Similar content being viewed by others
Notes
PyNN (Davison et al. 2008) is a common SNN simulator interface written in Python. By default PyNN is supported by several simulators including NEURON (Carnevale and Hines 2006), NEST (Gewaltig and Diesmann 2007), and Brian (Goodman and Brette 2009). PyNN support for NeMo is currently found in its development branch.
The Matlab and Python interfaces also provide vector versions of the network construction functions.
Both SpikeStream and PyNN provides such connectivity patterns, for example, to create topographic connections.
Another application called SpikeStream was created after the one described in this paper and given this name independently: http://spikestream.bitbucket.org. ‘SpikeStream’ has also been used to name a component of the C2 simulator (Ananthanarayanan et al. 2009).
Instructions for writing SpikeStream plugins are given in the SpikeStream manual (Gamez 2011b).
NRM stands for Neural Representation Modeller, a simulator of weightless neurons that was developed by Barry Dunmall and Igor Aleksander (Aleksander 2005).
Player/Stage: http://playerstage.sf.net; Orocos: http://www.orocos.org; Urbi: http://gostai.com/products/urbi/; Robot Operating System (ROS): http://www.ros.org. While iSpike’s YARP interface should make it relatively straightforward to interface with these other systems, it has only been tested with the iCub robot.
Rods are not included in the current implementation of iSpike because it is designed for daylight conditions, during which the light intensity is too high for rod photoreceptors to operate.
The neuron that receives the most current will be the first to spike and it will also fire at the highest rate. The neuron with the most current will also be likely to fire before the one with the second highest current, and so on, producing a rank order code.
These effects relate to changes to the temporal grid on which the spike events take place. A reduction of the step size used in the numerical integration within each simulation time step would only have a minimal effect on performance.
References
Aleksander, I. (2005). The world in my mind, my mind in the world. Exeter: Imprint Academic.
Ananthanarayanan, R., Esser, S.K., Simon, H.D., Modha, D.S. (2009). The cat is out of the bag: cortical simulations with 109 neurons, 1013 synapses. In Proc. conf. high performance computing networking, storage and analysis (pp. 1–12). New York: ACM.
Andreou, A., & Boahen, K. (1994). A 48,000 pixel silicon retina in current-mode subthreshold cmos. In 37th midwest symposium on circuits and systems (pp. 97–102).
Bergenheim, M., Ribot-Ciscar, E., Roll, J.P. (2000). Proprioceptive population coding of two-dimensional limb movements in humans: I. Muscle spindle feedback during spatially oriented movements. Experimental Brain Research, 134(3), 301–310.
Bernardet, U., & Verschure, P.F. (2010). iqr: a tool for the construction of multi-level simulations of brain and behaviour. Neuroinformatics, 8(2), 113–134.
Bernhard, F., & Keriven, R. (2006). Spiking neurons on GPUs. In Proc. 6th int. conf. computational science (pp. 236–243).
Bhowmik, D., & Shanahan, M. (2012). How well do oscillator models capture the behaviour of biological neurons? In Proc. int. joint conf. neural networks.
Binzegger, T., Douglas, R.J., Martin, K.A. (2004). A quantitative map of the circuit of cat primary visual cortex. Journal of Neuroscience, 24(39), 8441–8453.
Bolduc, M., & Levine, M. (1998). A review of biologically motivated space-variant data reduction models for robotic vision. Computer Vision and Image Understanding, 69, 170–184.
Bouganis, A., & Shanahan, M. (2010). Training a spiking neural network to control a 4-DoF robotic arm based on spike timing-dependent plasticity. In Proc. int. joint conf. neural networks (pp. 4104–4111).
Bower, J.M., Beeman, D., Hucka, M. (2003). The GENESIS simulation system In M. Arbib (Ed.), In The handbook of brain theory and neural networks (2nd ed., 475–478). Cambridge: MIT Press.
Brette, R., Rudolph, M., Carnevale, T., Hines, M., Beeman, D., Bower, J.M., Diesmann, M.,Morrison, A., Goodman, P.H., Harris, F.C. Jr., Zirpe, M., Natschlager, T., Pecevski, D., Ermentrout, B., Djurfeldt, M., Lansner, A., Rochel, O., Vieville, T., Muller, E., Davison, A.P., El Boustani, S., Destexhe, A. (2007). Simulation of networks of spiking neurons: a review of tools and strategies. Journal of Computational Neuroscience, 23(3), 349–398.
Buchmann, T. (2011). Stock market trading with spiking neural networks. MSc thesis, Imperial College London.
Cannata, G., Maggiali, M., Metta, G., Sandini, G. (2008). An embedded artificial skin for humanoid robots. In IEEE int. conf. multisensor fusion and integration for intelligent systems (pp. 434–438).
Carnevale, N.T., & Hines, M.L. (2006). The NEURON book. Cambridge: Cambridge University Press.
Cheung, K., Schultz, S.R., Leong, P.H.W. (2009). A parallel spiking neural network simulator. In Proc. IEEE. int. conf. field-programmable technology (pp. 247–254).
Clark, A. (2008). Supersizing the mind: Embodiment, action, and cognitive extension. New York: Oxford University Press.
Collins, D.F., & Prochazka, A. (1996). Movement illusions evoked by ensemble cutaneous input from the dorsum of the human hand. Journal of Physiology, 496(Pt 3), 857–71.
Collins, D.F., Refshauge, K.M., Todd, G., Gandevia, S.C. (2005). Cutaneous receptors contribute to kinesthesia at the index finger, elbow, and knee. Journal of Neurophysiology, 94(3), 1699–1706.
Davison, A.P., Brüderle, D., Eppler, J., Kremkow, J., Muller, E., Pecevski, D., Perrinet, L., Yger, P. (2008). PyNN: a common interface for neuronal network simulators. Frontiers in Neuroinformatics, 2, article 11.
Djurfeldt, M., Lundqvist, M., Johansson, C., Rehn, M., Ekeberg, O., Lansner, A. (2008). Brain-scale simulation of the neocortex on the IBM Blue Gene/L supercomputer. IBM Journal of Research and Development, 52(1–2), 31–41.
Edin, B.B., & Johansson, N. (1995). Skin strain patterns provide kinaesthetic information to the human central nervous system. Journal of Physiology, 487(Pt 1), 243–251.
Enroth-Cugell, C., & Robson, J. (1966). The contrast sensitivity of retinal ganglion cells of the cat. Journal of Physiology, 187(3), 517–552.
Ferrell,W.R., Gandevia, S.C., Mccloskey, D.I. (1987). The role of joint receptors in human kinaesthesia when intramuscular receptors cannot contribute. Journal of Physiology, 386, 63–71.
Fidjeland, A.K. (2011). NeMo manual. http://nemosim.sf.net/manual.pdf.
Fitzpatrick, P., Metta, G., Natale, L. (2008). Towards long-lived robot genes. Robotics and Autonomous Systems, 56(1), 29–45.
Fidjeland, A.K., Roesch, E.B., Shanahan, M.P., Luk, W. (2009). NeMo: a platform for neural modelling of spiking neurons using GPUs. In Proc. IEEE int. conf application-specific systems, architectures and processors (pp. 137–144).
Fidjeland, A., & Shanahan, M. (2010). Accelerated simulation of spiking neural networks using GPUs. In Proc. int. joint conf. neural networks (pp. 536–543). Piscataway: IEEE.
Fontaine, B., Goodman, D., Benichoux, V., Brette, R. (2011). Brian hears: online auditory processing using vectorization over channels. Frontiers in Neuroinformatics, 5, 9.
Fountas, Z., Gamez, D., Fidjeland, A. (2011). A neuronal global workspace for human-like control of a computer game character. In IEEE conf. computational intelligence and games (pp. 350–357).
Gamez, D. (2007). Spikestream: a fast and flexible simulator of spiking neural networks. In Proceedings of the International Conference on Artificial Neural Networks (ICANN). Lecture Notes in Computer Science (Vol. 4668, pp. 360–369).
Gamez, D. (2010). Information integration based predictions about the conscious states of a spiking neural network. Consciousness and Cognition, 19(1), 294–310.
Gamez, D. (2011a). iSpike manual. http://ispike.sf.net/doc/ispike-manual-2.1.pdf.
Gamez, D. (2011b). SpikeStream manual. http://spikestream.sf.net/pages/documentation.html.
Gamez, D., & Aleksander, I. (2011). Accuracy and performance of the state-based phi and liveliness measures of information integration. Consciousness and Cognition, 20(4), 1403–1424.
Gamez, D., Fidjeland, A., Lazdins, E. (2012). iSpike: a spiking neural interface for the icub robot. Bioinspiration and Biomimetics, 7, 025008.
Gamez, D., Newcombe, R., Holland, O., Knight, R. (2006). Two simulation tools for biologically inspired virtual robotics. In Proc. IEEE 5th chapter conf. on advances in cybernetic systems (pp. 85–90).
Georgopoulos, A.P., Schwartz, A.B., Kettner, R.E. (1986). Neuronal population coding of movement direction. Science, 233(4771), 1416–1419.
Gewaltig, M.O., & Diesmann, M. (2007). NEST. Scholarpedia, 2(4), 1430.
Goodman, D.F. (2010). Code generation: a strategy for neural network simulators. Neuroinformatics, 8(3), 183–196.
Goodman, D.F., & Brette, R. (2009). The Brian simulator. Frontiers in Neuroscience, 3(2), 192–197.
Grill-Spector, K., & Malach, R. (2004). The human visual cortex. Annual Review of Neuroscience, 27, 649–677.
Grillner, S., Hellgren, J., Menard, A., Saitoh, K., Wikstrom, M.A. (2005). Mechanisms for selection of basic motor programs–roles for the striatum and pallidum. Trends in Neuroscience, 28(7), 364–370.
Hagmann, P., Cammoun, L., Gigandet, X., Meuli, R., Honey, C.J., Wedeen, V.J., Sporns, O. (2008). Mapping the structural core of human cerebral cortex. PLoS Biol, 6(7), e159.
Hammarlund, P., & Ekeberg, O. (1998). Large neural network simulations on multiple hardware platforms. Journal of Computational Neuroscience, 5(4), 443–459.
Han, B., & Taha, T.M. (2010). Neuromorphic models on a GPGPU cluster. In Proc int. joint conf. neural networks (pp. 3050–3057). Piscataway: IEEE.
Hellwig, B. (2000). A quantitative analysis of the local connectivity between pyramidal neurons in layers 2/3 of the rat visual cortex. Biological Cybernetics, 82(2), 111–121.
Hoshi, T., & Shinoda, H. (2006). Robot skin based on touch-area-sensitive tactile element. In Proc. IEEE int. conf. robotics and automation (pp. 3463–3468).
Ijspeert, A.J., Crespi, A., Ryczko, D., Cabelguen, J.M. (2007). From swimming to walking with a salamander robot driven by a spinal cord model. Science, 315(5817), 1416–1420.
Indiveri, G., Linares-Barranco, B., Hamilton, T.J., van Schaik, A., Etienne-Cummings, R., Delbruck, T., Liu, S.C., Dudek, P., Hafliger, P., Renaud, S., Schemmel, J., Cauwenberghs, G., Arthur, J., Hynna, K., Folowosele, F., Saighi, S., Serrano-Gotarredona, T., Wijekoon, J., Wang, Y., Boahen, K. (2011). Neuromorphic silicon neuron circuits. Frontiers Neuroscience, 5, 73.
Izhikevich, E.M. (2003). Simple model of spiking neurons. IEEE Transactions on Neural Networks, 14, 1569–1572.
Izhikevich, E., & Edelman, G. (2008). Large-scale model of mammalian thalamocortical systems. Proceedings of the National Academy of Science of the United States of America, 105(9), 3593–3598. doi:10.1073/pnas.0712231105.
Jiirgens, R., Becker, W., Kornhuber, H. (1981). Natural and drug-induced variations of velocity and duration of human saccadic eye movements: evidence for a control of the neural pulse generator by local feedback. Biological Cybernetics, 39, 87–96. 1507
Jones, K.E., Wessberg, J., Vallbo, A.B. (2001). Directional tuning of human forearm muscle afferents during voluntary wrist movements. Journal of Physiology, 536(2), 635–647.
Krichmar, J.L., Nitz, D.A., Gally, J.A., Edelman, G.M. (2005). Characterizing functional hippocampal pathways in a brain-based device as it solves a spatial memory task. Proceedings of the National Academy of Science of the United States of America, 102(6), 2111–2116.
Kuramoto, Y. (1984). Chemical oscillations, waves, and turbulence. Berlin: Springer.
Linares-Barranco, A., Gomez-Rodriguez, F., Jimenez-Fernandez, A., Delbruck, T., Lichtensteiner, P. (2007). Using FPGA for visuomotor control with a silicon retina and a humanoid robot. In IEEE int. symp. circuits and systems (pp. 1192–1195).
Liu, J.D., & Hu, H. (2006). Biologically inspired behaviour design for autonomous robotic fish. Internation Journal of Automation and Computing, 3, 336–347.
Lyon, R. (1982). A computational model of filtering, detection, and compression in the cochlea. IEEE International Conference on Acoustics, Speech, and Signal Processing, 7, 1282–1285.
Macefield, G., Gandevia, S.C., Burke, D. (1990). Perceptual responses to microstimulation of single afferents innervating joints, muscles and skin of the human hand. Journal of Physiology, 429, 113–129.
Maguire, L.P., McGinnity, T.M., Glackin, B., Ghani, A., Belatreche, A., Harkin, J. (2007). Challenges for large-scale implementations of spiking neural networks on FPGAs. Neurocomputing, 71(1–3), 13–29.
Markram, H. (2006). The blue brain project. Nature Reviews Neuroscience, 7(2), 153–160.
Marques, H., Jäntsch, M., Wittmeier, S., Alessandro, C., Holland, O., Diamond, A., Lungarella, M., Knight, R. (2010). ECCE1: the first of a series of anthropomimetic musculoskelal upper torsos. In Proc. IEEE int. conf. humanoid robotics (pp. 391–396).
Masquelier, T., & Thorpe, S. (2007). Unsupervised learning of visual features through spike timing dependent plasticity. PLoS Computational Biology, 3(2), e31.
Metta, G., Sandini, G., Vernon, D., Natale, L., Nori, F. (2008). The iCub humanoid robot: an open platform for research in embodied cognition. In Proc. workshop on performance metrics for intelligent systems.
Meuth, R.J., & Wunsch, D.C. (2007). A survey of neural computation on graphics processing hardware. In 2007 IEEE 22nd international symposium on intelligent control (pp. 524–527). Piscataway: IEEE.
Morrison, A., Diesmann, M., Gerstner, W. (2008). Phenomenological models of synaptic plasticity based on spike timing. Biological Cybernetics, 98(6), 459–478.
Nageswaran, J.M., Dutt, N., Krichmar, J.L., Nicolau, A., Veidenbaum, A.V. (2009). A configurable simulation environment for the efficient simulation of large-scale spiking neural networks on graphics processors. Neural Networks, 22, 791–800.
Noë, A., & Thompson, E. (2004). Are there neural correlates of consciousness? Journal of Consciousness Studies, 11(1), 3–28.
Nowotny, T. (2011). Flexible neuronal network simulation framework using code generation for NVidia CUDA. BMC Neuroscience, 12(1), 239.
Rast, A., Galluppi, F., Davies, S., Plana, L., Patterson, C., Sharp, T., Lester, D., Furber, S. (2011). Concurrent heterogeneous neural model simulation on real-time neuromimetic hardware. Neural Networks, 24(9), 961–978.
Ribot-Ciscar, E., Bergenheim, M., Albert, F., Roll, J.P. (2003). Proprioceptive population coding of limb position in humans. Experimental Brain Research, 149(4), 512–519.
Richert, M., Nageswaran, J.M., Dutt, N., Krichmar, J.L. (2011). An efficient simulation environment for modeling large-scale cortical processing. Frontiers in Neuroinformatics, 5, 19.
Robinson, D.A. (1964). The mechanics of human saccadic eye movement. Journal of Physiology, 174, 245–264.
Roll, J.P., Albert, F., Ribot-Ciscar, E., Bergenheim, M. (2004). “Proprioceptive signature” of cursive writing in humans: a multi-population coding. Experimental Brain Research, 157(3), 359–368.
Roll, J.P., Bergenheim, M., Ribot-Ciscar, E. (2000). Proprioceptive population coding of two-dimensional limb movements in humans: II. Muscle-spindle feedback during “drawing-like” movements. Experimental Brain Research, 134(3), 311–321.
Schemmel, J., Brüderle, D., Grübl, A., Hock, M., Meier, K., Millner, S. (2010). A wafer-scale neuromorphic hardware system for large-scale neural modeling. In Proc. IEEE int. conf. circuits and systems (pp. 1947–1950).
Schwartz, E.L. (1980). Computational anatomy and functional architecture of striate cortex—a spatial-mapping approach to perceptual coding. Vision Research, 20(8), 645–669.
Song, S., Miller, K.D., Abbott, L.F. (2000). Competitive hebbian learning through spike-timing-dependent synaptic plasticity. Nature Neuroscience, 3(9), 919–926.
Sporns, O. (2007). Brain connectivity. Scholarpedia, 2(10), 4695.
Thomas, D.B., & Luk, W. (2009). FPGA accelerated simulation of biologically plausible spiking neural networks. In Proc. IEEE symp. field-programmable custom computing machines.
Tiesel, J.P., & Maida, A.S. (2009). Using parallel GPU architecture for simulation of planar I/F networks. In Proc int. joint conf. neural networks (pp. 754–759). 1602
Tononi, G. (2008). Consciousness as integrated information: a provisional manifesto. Biological Bulletin, 215(3), 216–242.
Vogels, T.P., & Abbott, L.F. (2005). Signal propagation and logic gating in networks of integrate-and-fire neurons. Journal of Neuroscience, 25(46), 10786–10795.
Yudanov, D., Shaaban, M., Melton, R., Reznik, L. (2010). GPU-based simulation of spiking neural networks with real-time performance and high accuracy. In Proc. int. joint conf. neural networks.
Acknowledgements
This work was supported by EPSRC grant EP/F033516/1. Some of the GPUs used were funded through the NVIDIA University Program. We would also like to thank the reviewers of this paper for their helpful comments.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Fidjeland, A.K., Gamez, D., Shanahan, M.P. et al. Three Tools for the Real-Time Simulation of Embodied Spiking Neural Networks Using GPUs. Neuroinform 11, 267–290 (2013). https://doi.org/10.1007/s12021-012-9174-x
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12021-012-9174-x