Efficient parameter calibration and real-time simulation of large-scale spiking neural networks with GeNN and NEST - Schmitt, Felix Johannes; Rostami, Vahid; Nawrot, Martin Paul (Frontiers in Neuroinformatics, 2023)
Spiking neural networks (SNN) represent the state-of-the-art approach to the biologically realistic modeling of nervous system function. The systematic calibration for multiple free model parameters is necessary to achieve robust network function and demands high computing power and large memory resources. Special requirements arise from closed-loop model simulation in virtual environments, and from real-time simulation in robotic application. Here, we compare two complementary approaches to efficient large scale and real-time SNN simulation. The widely used NEural Simulation Tool (NEST) parallelizes simulation across multiple CPU cores. The GPU-enhanced Neural Network (GeNN) simulator uses the highly parallel GPU-based architecture to gain simulation speed. We quantify fixed and variable simulation costs on single machines with different hardware configurations. As benchmark model we use a spiking cortical attractor network with a topology of densely connected excitatory and inhibitory neuron clusters with homogeneous or distributed synaptic time constants and in comparison to the random balanced network. We show that simulation time scales linearly with the simulated biological model time and, for large networks, approximately linearly with the model size as dominated by the number of synaptic connections. Additional fixed costs with GeNN for model compilation are independent of model size, while fixed costs with NEST for model building increase linearly with model size. We demonstrate how GeNN can be used for simulating networks with up to 3.5*10^6 neurons (> 3*10^12 synapses) on a high-end GPU, and up to 250,000 neurons (25*10^9 synapses) on a low-cost GPU. Real-time simulation was achieved for networks with 100,000 neurons. Network calibration and parameter grid search can be efficiently achieved using batch processing. We discuss the advantages and disadvantages of both approaches for different use cases.