Spike!
v1.0
A high speed Spiking Neural Network Simulator designed for GPGPUs.
|
Public Member Functions | |
virtual void | AddGroup (int presynaptic_group_id, int postsynaptic_group_id, Neurons *neurons, Neurons *input_neurons, float timestep, synapse_parameters_struct *synapse_params) |
virtual void | allocate_device_pointers () |
virtual void | copy_constants_and_initial_efficacies_to_device () |
virtual void | reset_synapse_activities () |
virtual void | set_threads_per_block_and_blocks_per_grid (int threads) |
virtual void | increment_number_of_synapses (int increment) |
virtual void | shuffle_synapses () |
virtual void | update_synaptic_conductances (float timestep, float current_time_in_seconds) |
virtual void | calculate_postsynaptic_current_injection (SpikingNeurons *neurons, float current_time_in_seconds, float timestep) |
virtual void | interact_spikes_with_synapses (SpikingNeurons *neurons, SpikingNeurons *input_neurons, float current_time_in_seconds, float timestep) |
Public Attributes | |
int * | delays |
bool * | stdp |
int * | d_delays |
bool * | d_stdp |
int * | d_spikes_travelling_to_synapse |
float * | d_time_of_last_spike_to_reach_synapse |
int | maximum_axonal_delay_in_timesteps |
virtual void SpikingSynapses::AddGroup | ( | int | presynaptic_group_id, |
int | postsynaptic_group_id, | ||
Neurons * | neurons, | ||
Neurons * | input_neurons, | ||
float | timestep, | ||
synapse_parameters_struct * | synapse_params | ||
) | [virtual] |
Determines the synaptic connections to add to the simulation connectivity. This is a virtual function to allow polymorphism in the methods of various sub-class implementations. Allocates memory as necessary for group size and indices storage.
presynaptic_group_id | An int ID of the presynaptic neuron population (ID is < 0 if presynaptic population is an InputSpikingNeuron population) |
postsynaptic_group_id | An int ID of the postsynaptic neuron population. |
neurons | A pointer to an instance of the Neurons class (or sub-class) which is included in this simulation. |
input_neurons | A pointer to an instance of the Neurons class (or sub-class) which is included in this simulation (for population indices < 0, i.e. InputSpikingNeurons). |
timestep | A float indicating the timestep at which the simulator is running. |
synapse_params | A synapse_parameters_struct pointer describing the connectivity arrangement to be added between the pre and postsynaptic neuron populations. |
Reimplemented from Synapses.
Reimplemented in ConductanceSpikingSynapses, and CurrentSpikingSynapses.
virtual void SpikingSynapses::allocate_device_pointers | ( | ) | [virtual] |
Exclusively for the allocation of device memory. This class allocates device pointers for presynaptic and postsynaptic neuron ids, synaptic efficacies/weights, and the number of synaptic connections to the postsynaptic neuron.
Reimplemented from Synapses.
Reimplemented in ConductanceSpikingSynapses.
virtual void SpikingSynapses::copy_constants_and_initial_efficacies_to_device | ( | ) | [virtual] |
Allows copying of static data related to neuron dynamics to the device. Copies synapse pre/post ids, efficies/weights, and number of postsynaptic contacts on postsynaptic neuron.
Reimplemented from Synapses.
Reimplemented in ConductanceSpikingSynapses.
virtual void SpikingSynapses::increment_number_of_synapses | ( | int | increment | ) | [virtual] |
A function called in to reallocate memory for a given number more synapses. /param increment The number of synapses for which allocated memory must be expanded.
Reimplemented from Synapses.
Reimplemented in ConductanceSpikingSynapses.
virtual void SpikingSynapses::set_threads_per_block_and_blocks_per_grid | ( | int | threads | ) | [virtual] |
A local, function called in to determine the CUDA Device thread (Synapses::threads_per_block) and block dimensions (Synapses::number_of_synapse_blocks_per_grid).
Reimplemented from Synapses.
Reimplemented in ConductanceSpikingSynapses.
virtual void SpikingSynapses::shuffle_synapses | ( | ) | [virtual] |
A function to shuffle the order of synapse array storage for increased GPU memory write speeds. Currently Unused.
Reimplemented from Synapses.
Reimplemented in ConductanceSpikingSynapses.