title: Comparison of GPU- and CPU-implementations of mean-firing rate neural networks on parallel hardware.
abstract: Modern parallel hardware such as multi-core processors (CPUs) and graphics processing units (GPUs) have a high computational power which can be greatly beneficial to the simulation of large-scale neural networks. Over the past years, a number of efforts have focused on developing parallel algorithms and simulators best suited for the simulation of spiking neural models. In this article, we aim at investigating the advantages and drawbacks of the CPU and GPU parallelization of mean-firing rate neurons, widely used in systems-level computational neuroscience. By comparing OpenMP, CUDA and OpenCL implementations towards a serial CPU implementation, we show that GPUs are better suited than CPUs for the simulation of very large networks, but that smaller networks would benefit more from an OpenMP implementation. As this performance strongly depends on data organization, we analyze the impact of various factors such as data structure, memory alignment and floating precision. We then discuss the suitability of the different hardware depending on the networks' size and connectivity, as random or sparse connectivities in mean-firing rate networks tend to break parallel performance on GPUs due to the violation of coalescence.
authors.affiliation: Department of Computer Science, Artificial Intelligence, Chemnitz University of Technology, Germany.
authors.forename: Helge Ülo
authors.initials: HÜ
authors.lastname: Dinkelbach
authors.forename: Julien
authors.initials: J
authors.lastname: Vitay
authors.forename: Frederik
authors.initials: F
authors.lastname: Beuth
authors.forename: Fred H
authors.initials: FH
authors.lastname: Hamker
mesh_terms: D000200:Action Potentials / Q000502:physiology*; D000465:Algorithms; D000818:Animals; D003196:Computer Graphics / Q000295:instrumentation*; D003198:Computer Simulation; D004867:Equipment Design; D019544:Equipment Failure Analysis; D006801:Humans; D008959:Models, Neurological; D009415:Nerve Net / Q000502:physiology*; D011381:Programming Languages; D012815:Signal Processing, Computer-Assisted / Q000295:instrumentation*; D012984:Software