How to record spikes in NEST GPU

There are different ways to record spikes in NEST GPU. The first way is to continuously record the spikes using the device spike_detector.

An alternative way, which is computationally faster than the spike_detector device, can be achieved using the RecSpikeTimes method. This method has to be activated before the Simulate function through the command ActivateRecSpikeTimes in this way:

nestgpu.ActivateRecSpikeTimes(neurons, N_max_spike_times)

where neurons is a population of N neurons created using the Create function, and N_max_spike_times is an integer which sets the maximum amount of spikes that can be recorded from each neuron of the population (needed to optimize GPU memory). This method does not enable the recording of a subset of neurons belonging to a population created in a single Create function.

After the simulation, the spike times of the recorded population can be obtained using the command GetRecSpikeTimes, which returns a list of N lists with the spike times for every neuron of the population:

spike_times = nestgpu.GetRecSpikeTimes(neurons)