51 #ifndef _SNN_DATASTRUCTURES_H_ 52 #define _SNN_DATASTRUCTURES_H_ 128 #ifdef LN_I_CALC_TYPES 139 STPConfig_s() : WithSTP(false), STP_A(-1.0f), STP_U(-1.0f), STP_tau_u_inv(-1.0f), STP_tau_x_inv(-1.0f)
152 avgTimeScale(-1.0f), avgTimeScaleInv(-1.0f), avgTimeScaleDecay(-1.0f),
153 homeostasisScale(-1.0f)
168 decayDP(0.99f), decay5HT(0.99f), decayACh(0.99f), decayNE(0.99f),
169 releaseDP(0.04f), release5HT(0.04f), releaseACh(0.04f), releaseNE(0.04f),
170 activeDP(true), active5HT(true), activeACh(true), activeNE(true)
194 #ifdef LN_I_CALC_TYPES 197 ConductanceConfig_s(): dAMPA(.0), rNMDA(.0), dNMDA(.0), sNMDA(.0), dGABAa(.0), rGABAb(.0), dGABAb(.0), sGABAb(.0) {};
235 float w[
NM_NE+3] = { 1.f, 1.f, 1.f, 1.f, 0.25f, 1.0f };
241 bool WithNM4STP =
false;
242 float w_STP_U[
NM_NE + 3] = { 1.f, 0.f, 0.f, 0.f, 1.f, 1.f };
243 float w_STP_tau_u[
NM_NE + 3] = { 1.f, 0.f, 0.f, 0.f, 1.f, 1.f };
244 float w_STP_tau_x[
NM_NE + 3] = { 1.f, 0.f, 0.f, 0.f, 1.f, 1.f };
266 return (nSrc + srcGLoffset == conn.
nSrc);
280 #ifdef LN_I_CALC_TYPES 301 #ifdef LN_I_CALC_TYPES 312 ConnectConfigMD_s() : gConnId(-1), lConnId(-1), connectionMonitorId(-1), numberOfConnections(-1)
360 #ifdef LN_I_CALC_TYPES 390 Izh_c(-1.0f), Izh_c_sd(-1.0f), Izh_d(-1.0f), Izh_d_sd(-1.0f),
391 Izh_C(-1.0f), Izh_C_sd(-1.0f), Izh_k(-1.0f), Izh_k_sd(-1.0f),
392 Izh_vr(-1.0f), Izh_vr_sd(1.0f), Izh_vt(1.0f), Izh_vt_sd(-1.0f),
393 Izh_vpeak(-1.0f), Izh_vpeak_sd(-1.0f), lif_tau_m(-1),
394 lif_tau_ref(-1), lif_vTh(1.0f), lif_vReset(0.0f), lif_minRmem(1.0f),
432 GroupConfig_s() : grpName(
"N/A"), preferredNetId(-2), type(0), numN(-1), isSpikeGenerator(false), spikeGenFunc(NULL),
433 WithSTDP(false), WithDA_MOD(false)
434 #ifdef LN_I_CALC_TYPES
436 , with_NMDA_rise(false)
437 , with_GABAb_rise(false)
440 , WithAxonPlast(false)
460 #ifdef LN_I_CALC_TYPES 472 #ifdef LN_I_CALC_TYPES 489 lGrpId(-1), lStartN(-1), lEndN(-1),
490 netId(-1), maxOutgoingDelay(1), fixedInputWts(true), hasExternalConnect(false),
491 LtoGOffset(0), GtoLOffset(0), numPostSynapses(0), numPreSynapses(0), Noffset(0),
492 spikeMonitorId(-1), neuronMonitorId(-1), groupMonitorId(-1), currTimeSlice(1000), sliceUpdateTime(0), homeoId(-1), ratePtr(NULL)
520 return (gGrpId == grp.
gGrpId);
613 int compNeighbors[4];
614 float compCoupling[4];
617 #ifdef LN_I_CALC_TYPES 699 #define LN_I_CALC_TYPES__REQUIRED_FOR_NETWORK_LEVEL 806 numNExcReg(0), numNInhReg(0), numNExcPois(0), numNInhPois(0),
807 numSynNet(0), maxDelay(-1), numN1msDelay(0), numN2msDelay(0),
809 simNumStepsPerMs(2), timeStep(0.5)
873 #define LN_I_CALC_TYPES__REQUIRED_FOR_NETWORK_LEVEL 891 #define LN_I_CALC_TYPES__REQUIRED_FOR_NETWORK_LEVEL 894 #ifndef LN_I_CALC_TYPES bool sim_with_compartments
struct ConnectConfigRT_s ConnectConfigRT
The runtime configuration of a connection.
float * maxSynWt
maximum synaptic weight for a connection
float * voltage
membrane potential for each regular neuron
Class for generating Poisson spike trains.
bool WithDA_MOD
True if at least one connection group is WithDA_MOD.
struct ConductanceConfig_s ConductanceConfig
ACh,NE configurations (ANCK12, K12,K13,..)
float rGABAb
multiplication factor for rise time of GABAb
struct NM4STPConfig_s NM4STPConfig
float * randNum
firing random number. max value is 10,000
float ALPHA_MINUS_EXC
published by GroupConfig
float mulSynFast
factor to be applied to either gAMPA or gGABAa
float p1
sample param 1 for ACh
int numNSpikeGen
number of poisson neurons generating spikes based on callback functions
int * synSpikeTime
stores the last spike time of a synapse
float decayNE
decay rate for Noradrenaline, published by GroupConfig
SNNState
the state of spiking neural network, used with in kernel.
int NM_PLC
published by GroupConfig
float p2
sample param 2 for NE
STDPCurve WithISTDPcurve
published by GroupConfig
bool sim_with_modulated_stdp
struct ConnectConfigMD_s ConnectConfigMD
the intermediate data of connect config
float KAPPA
published by GroupConfig
float sNMDA
scaling factor for NMDA amplitude
IcalcType icalcType
conduction of receptor determined by connection
int numNExcReg
number of regular excitatory neurons
int numNAssigned
number of total neurons assigned to the local network
bool WithSTDP
True if at least one connection group is WithSTDP.
struct RoutingTableEntry_s RoutingTableEntry
runtime spike routing table entry
struct NM4wConfig_s NM4wConfig
int numNPois
number of poisson neurons
float LAMBDA
published by GroupConfig
int numPreSynNet
the total number of pre-connections in a network
int GtoLOffset
published by GroupConfigMD
float W_PLC
published by GroupConfig
float timeStep
inverse of simNumStepsPerMs
float homeostasisScale
published by GroupConfig
float dAMPA
multiplication factor for decay time of AMPA conductance (gAMPA[i] *= dAMPA)
unsigned int * timeTableD1
firing table, only used in CPU_MODE currently
int * nSpikeCnt
homeostatic plasticity variables
float rGABAb
multiplication factor for rise time of GABAb
int numNRateGen
number of poisson neurons generating spikes based on firing rate
float * baseFiringInv
only used on GPU
struct STDPConfig_s STDPConfig
short-term plasiticity configurations
unsigned int spikeCountD1Sec
the total number of spikes with axonal delay == 1 in 1 second, used in CPU_MODE currently ...
unsigned int spikeCountD1
the total number of spikes with anxonal delay == 1 in a simulation, used in CPU_MODE currently ...
bool sim_with_homeostasis
struct STPConfig_s STPConfig
homeostatic plasticity configurations
int numN2msDelay
number of neurons with maximum out going axonal delay >= 2 ms
unsigned int spikeCountExtRxD2
the number of external spikes with axonal delay > 1 in a simulation, used in CPU_MODE currently ...
float DELTA
published by GroupConfig
ACNE12Config acneConfig
ACNE config at group level.
struct GlobalNetworkConfig_s GlobalNetworkConfig
bool activeACh
flag for Acetylcholine
float GAMMA
published by GroupConfig
float baseACh
baseline concentration of Acetylcholine
bool allocated
true if all data has been allocated
float decayDP
decay rate for Dopaamine, published by GroupConfig
runtime data is allocated on CPU (main) memory
float TAU_PLUS_INV_INB
published by GroupConfig
float * gAMPA
conductance of gAMPA
float acne12p2
sample param 2 for ACNE15
struct HomeostasisConfig_s HomeostasisConfig
neuromodulator configurations
float decayACh
decay rate for Acetylcholine
int numSynNet
number of total synaptic connections in the global network
struct NetworkConfigRT_s NetworkConfigRT
runtime network configuration
int * lif_tau_m
parameters for a LIF spiking group
unsigned int * cumulativePre
int maxDelay
maximum axonal delay in the gloabl network
bool activeNE
flag for Noradrenaline
bool isLIF
True = a LIF spiking group.
unsigned * firingTimesD2
stores the actual firing time
float * Npre_plasticInv
stores the 1/number of plastic input connections, only used on GPU
unsigned int spikeCountD2
the total number of spikes with anxonal delay > 1 in a simulation, used in CPU_MODE currently ...
float * mulSynFast
factor to be applied to either gAMPA or gGABAa
int numN
number of neurons in th local network
int gEndN
published by GroupConfigMD
short int connId
connectID of the element in the linked list
float sNMDA
scaling factor for NMDA amplitude
int currTimeSlice
timeSlice is used by the Poisson generators in order to not generate too many or too few spikes withi...
integrationMethod_t simIntegrationMethod
integration method (forward-Euler or Fourth-order Runge-Kutta)
float ALPHA_PLUS_EXC
published by GroupConfig
int * extFiringTableEndIdxD1
float dGABAb
multiplication factor for decay time of GABAb
float ALPHA_MINUS_INB
published by GroupConfig
int numN
published by GroupConfig
float decay5HT
decay rate for Serotonin, published by GroupConfig
float * wt
stores the weight change of a synaptic connection
struct GroupConfigRT_s GroupConfigRT
The runtime configuration of a group.
used for relaying callback to ConnectionGenerator
MemType
type of memory pointer
float baseNE
baseline concentration of Noradrenaline, published by GroupConfig
int numPreSynapses
the total number of pre-connections of a group, published by GroupConfigMD
int netId
published by GroupConfigMD
The configuration of a connection.
int NM_PKA
published by GroupConfig
int ** extFiringTableD1
external firing table, only used on GPU
float dNMDA
multiplication factor for decay time of NMDA
bool isSpikeGenerator
published by GroupConfig
NM4wConfig nm4wConfig
NM4 config at group level.
float releaseDP
release per spike for Dopaamine
runtime data is allocated on GPU memory
int numNExcPois
number of excitatory poisson neurons
bool active5HT
flag for Serotonin
unsigned short * Npre_plastic
stores the number of plastic input connections to a neuron
int gGrpId
published by GroupConfigMD
struct NeuralDynamicsConfig_s NeuralDynamicsConfig
float sGABAb
scaling factor for GABAb amplitude
bool hasExternalConnect
published by GroupConfigMD
struct SynInfo_s SynInfo
long-term plasiticity configurations
int numPostSynapses
the total number of post-connections of a group, published by GroupConfigMD
unsigned int spikeCountLastSecLeftD2
the nubmer of spike left in the last second, used in CPU_MODE currently
A struct to arrange neurons on a 3D grid (a primitive cubic Bravais lattice with cubic side length 1)...
int simNumStepsPerMs
number of steps per 1 millisecond
bool WithSTDP
published by GroupConfig
float decayDP
decay rate for Dopamine
float dGABAb
multiplication factor for decay time of GABAb
bool isSpikeGenFunc
published by GroupConfig
float BETA_LTP
published by GroupConfig
float baseDP
baseline concentration of Dopamine, published by GroupConfig
int lGrpId
published by GroupConfigMD
used for relaying callback to SpikeGenerator
int numN1msDelay
number of neurons with maximum out going axonal delay = 1 ms
float decayACh
decay rate for Acetylcholine, published by GroupConfig
float rNMDA
multiplication factor for rise time of NMDA
struct DelayInfo_s DelayInfo
int maxDelay
maximum axonal delay in the gloabl network
short int * connIdsPreIdx
connectId, per synapse, presynaptic cumulative indexing
unsigned int spikeCount
the total number of spikes in a simulation, used in CPU_MODE currently
struct ConnectionInfo_s ConnectionInfo
float mulSynSlow
factor to be applied to either gNMDA or gGABAb
int * I_set
an array of bits indicating which synapse got a spike
struct compConnectConfig_s compConnectConfig
The configuration of a compartmental connection.
bool WithNM4STP
if group has targeted STP
int numNPois
number of poisson neurons in the global network
The configuration of a compartmental connection.
float OMEGA
published by GroupConfig
bool withParamModel_9
False = 4 parameter model; 1 = 9 parameter model.
bool with_GABAb_rise
replaces sim_with_GABAb_rise
unsigned short * Npost
stores the number of output connections from a neuron.
unsigned int spikeCountExtRxD1Sec
curandGenerator_t gpuRandGen
float acne12p1
sample param 1 for ACNE15
int numNExcPois
number of excitatory poisson neurons in the global network
size_t I_setPitch
used for GPU only
int8_t MaxDelay
published by GroupConfigMD
bool withParamModel_9
False = 4 parameter model; 1 = 9 parameter model.
int * extFiringTableEndIdxD2
float avgTimeScaleInv
published by GroupConfig
bool WithSTDP
published by GroupConfig
int Noffset
the offset of spike generator (poisson) neurons [0, numNPois)
NeuralDynamicsConfig neuralDynamicsConfig
unsigned int Type
published by GroupConfig
the intermediate data of connect config
unsigned int spikeCountExtRxD2Sec
bool WithHomeostasis
published by GroupConfig
struct compConnectionInfo_s compConnectionInfo
IcalcType icalcType
calculation of input current is defined at group level and replaces the COBA/CUBA flags ...
float base5HT
baseline concentration of Serotonin, published by GroupConfig
IcalcType icalcType
published by GroupConfig
conType_t
connection types, used internally (externally it's a string)
float connProbability
connection probability
float releaseDP
release per spike for Dopaamine
struct ACNE12Config_s ACNE12Config
IcalcType
input current calculation
int * lastSpikeTime
stores the last spike time of a neuron
float * gGABAa
conductance of gGABAa
STDPType WithISTDPtype
published by GroupConfig
unsigned int spikeCountD2Sec
the total number of spikes with axonal delay > 1 in 1 second, used in CPU_MODE currently ...
float releaseACh
release per spike for Acetylcholine
struct GroupConfigMD_s GroupConfigMD
The runtime configuration of a connection.
unsigned short * Npre
stores the number of input connections to a neuron
float * mulSynSlow
factor to be applied to either gNMDA or gGABAb
integrationMethod_t
Integration methods.
int maxNumPreSynN
the maximum number of pre-syanptic connections among neurons
float wtChangeDecay
the wtChange decay
float dGABAa
multiplication factor for decay time of GABAa
int Noffset
the offset of spike generator (poisson) neurons [0, numNPois), published by GroupConfigMD ...
RoutingTableEntry_s(int srcNetId_, int destNetId_)
float TAU_MINUS_INV_INB
published by GroupConfig
unsigned int spikeCountExtRxD1
the number of external spikes with axonal delay == 1 in a simulation, used in CPU_MODE currently ...
float dAMPA
multiplication factor for decay time of AMPA conductance (gAMPA[i] *= dAMPA)
int3 * groupIdInfo
.x , .y: the start and end index of neurons in a group, .z: gourd id, used for group Id calculations ...
The configuration of a group.
int gsId
group id and synapse id
bool sim_with_GABAb_rise
a flag to inform whether to compute GABAb rise time
bool activeDP
flag for Dopaamine
bool sim_with_conductances
The runtime configuration of a group.
unsigned int * timeTableD2
firing table, only used in CPU_MODE currently
int numNReg
number of regular (spking) neurons
NM4STPConfig nm4StpConfig
NM4 weighted STP param.
bool activeDP
flag for Dopaamine
bool with_NMDA_rise
replaces sim_with_NMDA_rise
float baseDP
baseline concentration of Dopamine
float decayNE
decay rate for Noradrenaline
float avgTimeScale_decay
published by GroupConfig
int numNInhReg
number of regular inhibitory neurons in the global network
int numN
number of neurons in the global network
int lEndN
published by GroupConfigMD
float * gGABAb
conductance of gGABAb
struct ThreadStruct_s ThreadStruct
CPU multithreading subroutine (that takes single argument) struct argument.
DelayInfo * postDelayInfo
delay information
size_t STP_Pitch
numN rounded upwards to the nearest 256 boundary, used for GPU only
float baseACh
baseline concentration of Acetylcholine, published by GroupConfig
int numNInhPois
number of inhibitory poisson neurons in the global network
int ** extFiringTableD2
external firing table, only used on GPU
int numGroups
number of local groups in this local network
integrationMethod_t simIntegrationMethod
integration method (forward-Euler or Fourth-order Runge-Kutta)
int LtoGOffset
published by GroupConfigMD
float STP_A
published by GroupConfig
bool WithISTDP
published by GroupConfig
float STP_U
published by GroupConfig
int numNExcReg
number of regular excitatory neurons in the global network
float BETA_LTD
published by GroupConfig
bool with_GABAb_rise
replaces sim_with_GABAb_rise
float STP_tau_x_inv
published by GroupConfig
float TAU_PLUS_INV_EXC
published by GroupConfig
SynInfo * postSynapticIds
10 bit syn id, 22 bit neuron id, ordered based on delay
int lStartN
published by GroupConfigMD
int numNExternal
number of external neurons in the view of the local network
unsigned int * cumulativePost
int numConnections
number of local connections in this local network
bool activeACh
flag for Acetylcholine
unsigned int maxSpikesD2
the estimated maximum number of spikes with delay >= 2 in a network
NeuromodulatorConfig neuromodulatorConfig
int numComp
number of compartmental neurons
used to initialize by default constructor
float baseNE
baseline concentration of Noradrenaline
struct NeuromodulatorConfig_s NeuromodulatorConfig
conductance configurations
struct GroupConfig_s GroupConfig
The configuration of a group.
int maxNumPostSynN
the maximum number of post-synaptic connections among neurons
int numPostSynNet
the total number of post-connections in a network
int numNInhPois
number of inhibitory poisson neurons
runtime spike routing table entry
struct ConnectConfig_s ConnectConfig
The configuration of a connection.
unsigned int * spikeGenBits
CPU multithreading subroutine (that takes single argument) struct argument.
float base5HT
baseline concentration of Serotonin
int simNumStepsPerMs
number of steps per 1 millisecond
bool with_NMDA_rise
replaces sim_with_NMDA_rise
int numGroupsAssigned
number of groups assigned to this local network
int gStartN
published by GroupConfigMD
int numComp
number of compartmental neurons
float releaseNE
release per spike for Noradrenaline
ConductanceConfig conductanceConfig
conductance config at group level
float TAU_MINUS_INV_EXC
published by GroupConfig
HomeostasisConfig homeoConfig
runtime network configuration
int numNReg
number of regular (spking) neurons in the global network
int lif_tau_m
parameters for a LIF spiking group
float avgTimeScale
< homeostatic plasticity variables
float releaseACh
release per spike for Acetylcholine
bool WithSTP
published by GroupConfig
bool active5HT
flag for Serotonin
unsigned int spikeCountSec
the total number of spikes in 1 second, used in CPU_MODE currently
SpikeGeneratorCore * spikeGenFunc
float dGABAa
multiplication factor for decay time of GABAa
float * gNMDA
conductance of gNMDA
float sGABAb
scaling factor for GABAb amplitude
bool FixedInputWts
published by GroupConfigMD
ConnectionGeneratorCore * conn
bool activeNE
flag for Noradrenaline
float STP_tau_u_inv
published by GroupConfig
unsigned int nPoissonSpikes
the total number of spikes of poisson neurons, used in CPU_MODE currently
STDPCurve WithESTDPcurve
published by GroupConfig
bool WithESTDP
published by GroupConfig
bool sim_with_NMDA_rise
a flag to inform whether to compute NMDA rise time
unsigned int maxSpikesD1
the estimated maximum number of spikes with delay == 1 in a network
float decay5HT
decay rate for Serotonin
float * wtChange
stores the weight change of a synaptic connection
float releaseNE
release per spike for Noradrenaline
STDPType WithESTDPtype
published by GroupConfig
unsigned int I_setLength
used for GPU only
float release5HT
release per spike for Serotonin
float ALPHA_PLUS_INB
published by GroupConfig
float rNMDA
multiplication factor for rise time of NMDA
float * nextVoltage
membrane potential buffer (next/future time step) for each regular neuron
struct RuntimeData_s RuntimeData
int numNInhReg
number of regular inhibitory neurons
float release5HT
release per spike for Serotonin
float W_PKA
published by GroupConfig
int2 * neuronAllocation
.x: [31:0] index of the first neuron, .y: [31:16] number of neurons, [15:0] group id ...
float dNMDA
multiplication factor for decay time of NMDA
A struct to specify the receptive field (RF) radius in 3 dimensions.
float timeStep
inverse of simNumStepsPerMs