|
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.
1.7.6.1