Spike!  v1.0
A high speed Spiking Neural Network Simulator designed for GPGPUs.
Public Member Functions | Public Attributes
SpikingNeurons Class Reference
Inheritance diagram for SpikingNeurons:
Neurons AdExSpikingNeurons InputSpikingNeurons IzhikevichSpikingNeurons LIFSpikingNeurons GeneratorInputSpikingNeurons PoissonInputSpikingNeurons ImagePoissonInputSpikingNeurons

List of all members.

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

Member Function Documentation

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.

Parameters:
group_paramsA neuron_parameters_struct instance describing a 2D neuron population size.
Returns:
The unique ID for the population which was requested for creation.

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.

Parameters:
maximum_axonal_delay_in_timestepsThe length (in timesteps) of the largest axonal delay in the simulation. Unused in this class.
high_fidelity_spike_storageA 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.


The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Enumerations