Spike!
v1.0
A high speed Spiking Neural Network Simulator designed for GPGPUs.
|
Public Member Functions | |
virtual int | AddGroup (neuron_parameters_struct *group_params) |
virtual void | allocate_device_pointers (int maximum_axonal_delay_in_timesteps, bool high_fidelity_spike_flag) |
virtual void | copy_constants_to_device () |
virtual void | reset_neuron_activities () |
virtual void | update_membrane_potentials (float timestep, float current_time_in_seconds) |
virtual void | check_for_neuron_spikes (float current_time_in_seconds, float timestep) |
Public Attributes | |
int | bitarray_length |
int | bitarray_maximum_axonal_delay_in_timesteps |
bool | high_fidelity_spike_flag |
float * | after_spike_reset_membrane_potentials_c |
float * | thresholds_for_action_potential_spikes |
unsigned char * | bitarray_of_neuron_spikes |
float * | d_last_spike_time_of_each_neuron |
float * | d_membrane_potentials_v |
float * | d_thresholds_for_action_potential_spikes |
float * | d_resting_potentials |
unsigned char * | d_bitarray_of_neuron_spikes |
virtual int SpikingNeurons::AddGroup | ( | neuron_parameters_struct * | group_params | ) | [virtual] |
Determines the total number of neurons by which the simulation should increase. This is a virtual function to allow polymorphism in the methods of various SpikingNeuron implementations. Allocates memory as necessary for group size and indices storage.
group_params | A neuron_parameters_struct instance describing a 2D neuron population size. |
Reimplemented from Neurons.
Reimplemented in InputSpikingNeurons, AdExSpikingNeurons, GeneratorInputSpikingNeurons, IzhikevichSpikingNeurons, LIFSpikingNeurons, PoissonInputSpikingNeurons, and ImagePoissonInputSpikingNeurons.
virtual void SpikingNeurons::allocate_device_pointers | ( | int | maximum_axonal_delay_in_timesteps, |
bool | high_fidelity_spike_storage | ||
) | [virtual] |
Exclusively for the allocation of device memory. This class requires allocation of d_current_injections only.
maximum_axonal_delay_in_timesteps | The length (in timesteps) of the largest axonal delay in the simulation. Unused in this class. |
high_fidelity_spike_storage | A flag determining whether a bit mask based method is used to store spike times of neurons (ensure no spike transmission failure). |
Reimplemented from Neurons.
Reimplemented in AdExSpikingNeurons, GeneratorInputSpikingNeurons, IzhikevichSpikingNeurons, LIFSpikingNeurons, and PoissonInputSpikingNeurons.
virtual void SpikingNeurons::copy_constants_to_device | ( | ) | [virtual] |
Unused in this class. Allows copying of static data related to neuron dynamics to the device.
Reimplemented from Neurons.
Reimplemented in AdExSpikingNeurons, IzhikevichSpikingNeurons, LIFSpikingNeurons, and PoissonInputSpikingNeurons.
virtual void SpikingNeurons::reset_neuron_activities | ( | ) | [virtual] |
Resets any undesired device based data which is dynamically reassigned during a simulation. In this case, the current to be injected at the next time step.
Reimplemented from Neurons.
Reimplemented in AdExSpikingNeurons, IzhikevichSpikingNeurons, GeneratorInputSpikingNeurons, and PoissonInputSpikingNeurons.