23 const WeightUpdateModels::Base *wu,
const std::vector<double> &wuParams,
const std::vector<NewModels::VarInit> &wuVarInitialisers,
const std::vector<NewModels::VarInit> &wuPreVarInitialisers,
const std::vector<NewModels::VarInit> &wuPostVarInitialisers,
24 const PostsynapticModels::Base *ps,
const std::vector<double> &psParams,
const std::vector<NewModels::VarInit> &psVarInitialisers,
51 m_PSModelTargetName = targetName;
115 void calcKernelSizes(
unsigned int blockSize,
unsigned int &paddedKernelIDStart);
122 const std::string &
getName()
const{
return m_Name; }
156 const std::vector<double> &
getWUParams()
const{
return m_WUParams; }
165 const std::vector<double> &
getPSParams()
const{
return m_PSParams; }
259 std::map<std::string, std::string> &kernelParameters)
const;
261 std::map<std::string, std::string> &kernelParameters)
const;
263 std::map<std::string, std::string> &kernelParameters)
const;
269 std::pair<unsigned int, unsigned int> m_PaddedKernelIDRange;
278 unsigned int m_DelaySteps;
281 unsigned int m_BackPropDelaySteps;
284 unsigned int m_MaxConnections;
287 unsigned int m_MaxSourceConnections;
290 unsigned int m_MaxDendriticDelayTimesteps;
302 bool m_TrueSpikeRequired;
305 bool m_SpikeEventRequired;
308 bool m_EventThresholdReTestRequired;
314 VarMode m_DendriticDelayVarMode;
320 std::vector<double> m_WUParams;
323 std::vector<double> m_WUDerivedParams;
326 std::vector<NewModels::VarInit> m_WUVarInitialisers;
329 std::vector<NewModels::VarInit> m_WUPreVarInitialisers;
332 std::vector<NewModels::VarInit> m_WUPostVarInitialisers;
338 std::vector<double> m_PSParams;
341 std::vector<double> m_PSDerivedParams;
344 std::vector<NewModels::VarInit> m_PSVarInitialisers;
347 std::vector<VarMode> m_WUVarMode;
350 std::vector<VarMode> m_WUPreVarMode;
353 std::vector<VarMode> m_WUPostVarMode;
356 std::vector<VarMode> m_PSVarMode;
362 VarMode m_SparseConnectivityVarMode;
366 std::string m_PSModelTargetName;
Definition: neuronGroup.h:19
void setInSynVarMode(VarMode mode)
Set variable mode used for variables used to combine input from this synapse group.
Definition: synapseGroup.h:86
bool isDendriticDelayRequired() const
Does this synapse group require dendritic delay?
Definition: synapseGroup.cc:424
VarMode getWUPreVarMode(size_t index) const
Get variable mode used by weight update model presynaptic state variable.
Definition: synapseGroup.h:189
const PostsynapticModels::Base * getPSModel() const
Definition: synapseGroup.h:163
const std::vector< NewModels::VarInit > & getPSVarInitialisers() const
Definition: synapseGroup.h:167
void setBackPropDelaySteps(unsigned int timesteps)
Sets the number of delay steps used to delay postsynaptic spikes travelling back along dendrites to s...
Definition: synapseGroup.cc:169
bool isWUDevicePostVarInitRequired() const
Is device var init code required for any postsynaptic variables in this synapse group's weight update...
Definition: synapseGroup.cc:488
const std::vector< NewModels::VarInit > & getWUPreVarInitialisers() const
Definition: synapseGroup.h:159
bool isDeviceSparseInitRequired() const
Is any form of sparse device initialisation required?
Definition: synapseGroup.cc:513
int getClusterDeviceID() const
Definition: synapseGroup.h:148
void setWUVarZeroCopyEnabled(const std::string &varName, bool enabled)
Function to enable the use zero-copied memory for a particular postsynaptic model state variable (dep...
Definition: synapseGroup.h:56
const NeuronGroup * getSrcNeuronGroup() const
Definition: synapseGroup.h:144
const std::vector< NewModels::VarInit > & getWUVarInitialisers() const
Definition: synapseGroup.h:158
bool isDeviceSparseConnectivityInitRequired() const
Is device sparse connectivity initialisation code required for this synapse group?
Definition: synapseGroup.cc:494
void setPSVarMode(const std::string &varName, VarMode mode)
Set variable mode of postsynaptic model state variable.
Definition: synapseGroup.cc:120
bool isTrueSpikeRequired() const
Definition: synapseGroup.h:150
Definition: initSparseConnectivitySnippet.h:60
bool isWUDeviceVarInitRequired() const
Is device var init code required for any variables in this synapse group's weight update model...
Definition: synapseGroup.cc:469
void addExtraGlobalPostLearnParams(std::map< string, string > &kernelParameters) const
Definition: synapseGroup.cc:359
void addExtraGlobalSynapseDynamicsParams(std::map< string, string > &kernelParameters) const
Definition: synapseGroup.cc:374
const NeuronGroup * getTrgNeuronGroup() const
Definition: synapseGroup.h:145
void setMaxConnections(unsigned int maxConnections)
Sets the maximum number of target neurons any source neurons can connect to.
Definition: synapseGroup.cc:125
bool canRunOnCPU() const
Can this synapse group run on the CPU?
Definition: synapseGroup.cc:530
bool isSpikeEventRequired() const
Definition: synapseGroup.h:151
VarMode
Definition: variableMode.h:25
void calcKernelSizes(unsigned int blockSize, unsigned int &paddedKernelIDStart)
Definition: synapseGroup.cc:209
VarMode getInSynVarMode() const
Get variable mode used for variables used to combine input from this synapse group.
Definition: synapseGroup.h:133
unsigned int getPaddedDynKernelSize(unsigned int blockSize) const
Definition: synapseGroup.cc:232
void setSparseConnectivityVarMode(VarMode mode)
Set variable mode used for sparse connectivity.
Definition: synapseGroup.h:90
void initDerivedParams(double dt)
Definition: synapseGroup.cc:176
NeuronGroup * getSrcNeuronGroup()
Definition: synapseGroup.h:42
unsigned int getDelaySteps() const
Definition: synapseGroup.h:125
name
Definition: setup.py:112
unsigned int getPaddedPostLearnKernelSize(unsigned int blockSize) const
Definition: synapseGroup.cc:244
NeuronGroup * getTrgNeuronGroup()
Definition: synapseGroup.h:43
bool isPSVarZeroCopyEnabled(const std::string &var) const
Definition: synapseGroup.h:177
unsigned int getMaxConnections() const
Definition: synapseGroup.h:127
Base class for all postsynaptic models.
Definition: newPostsynapticModels.h:21
const std::vector< double > getPSConstInitVals() const
Definition: synapseGroup.cc:259
SpanType
Definition: synapseGroup.h:33
const std::vector< double > & getWUDerivedParams() const
Definition: synapseGroup.h:157
bool isEventThresholdReTestRequired() const
Definition: synapseGroup.h:152
std::string getPresynapticAxonalDelaySlot(const std::string &devPrefix) const
Definition: synapseGroup.cc:388
bool isWUDevicePreVarInitRequired() const
Is device var init code required for any presynaptic variables in this synapse group's weight update ...
Definition: synapseGroup.cc:482
VarMode getDendriticDelayVarMode() const
Get variable mode used for this synapse group's dendritic delay buffers.
Definition: synapseGroup.h:139
unsigned int getMaxSourceConnections() const
Definition: synapseGroup.h:128
Base class for all weight update models.
Definition: newWeightUpdateModels.h:42
VarMode getWUPostVarMode(const std::string &var) const
Get variable mode used by weight update model postsynaptic state variable.
Definition: synapseGroup.cc:293
void setWUVarMode(const std::string &varName, VarMode mode)
Set variable mode of weight update model state variable.
Definition: synapseGroup.cc:105
const std::string & getPSModelTargetName() const
Definition: synapseGroup.h:172
VarMode getWUVarMode(const std::string &var) const
Get variable mode used by weight update model per-synapse state variable.
Definition: synapseGroup.cc:283
unsigned int getBackPropDelaySteps() const
Definition: synapseGroup.h:126
void setWUPreVarMode(const std::string &varName, VarMode mode)
Set variable mode of weight update model presynaptic state variable.
Definition: synapseGroup.cc:110
Definition: synapseGroup.h:19
bool isZeroCopyEnabled() const
Definition: synapseGroup.cc:264
const std::vector< NewModels::VarInit > & getWUPostVarInitialisers() const
Definition: synapseGroup.h:160
void addExtraGlobalSynapseParams(std::map< string, string > &kernelParameters) const
Definition: synapseGroup.cc:342
const InitSparseConnectivitySnippet::Init & getConnectivityInitialiser() const
Definition: synapseGroup.h:170
void setEventThresholdReTestRequired(bool req)
Definition: synapseGroup.h:47
bool isPSModelMerged() const
Definition: synapseGroup.h:173
const std::vector< double > & getPSParams() const
Definition: synapseGroup.h:165
VarMode getWUVarMode(size_t index) const
Get variable mode used by weight update model per-synapse state variable.
Definition: synapseGroup.h:183
std::string getDendriticDelayOffset(const std::string &devPrefix, const std::string &offset="") const
Definition: synapseGroup.cc:412
int getClusterHostID() const
Definition: synapseGroup.h:147
VarMode getWUPreVarMode(const std::string &var) const
Get variable mode used by weight update model presynaptic state variable.
Definition: synapseGroup.cc:288
unsigned int getMaxDendriticDelayTimesteps() const
Definition: synapseGroup.h:129
VarMode getWUPostVarMode(size_t index) const
Get variable mode used by weight update model postsynaptic state variable.
Definition: synapseGroup.h:195
void setSpikeEventRequired(bool req)
Definition: synapseGroup.h:46
const std::string & getName() const
Definition: synapseGroup.h:122
void setSpanType(SpanType spanType)
Set how CUDA implementation is parallelised.
Definition: synapseGroup.cc:159
const std::vector< double > getWUConstInitVals() const
Definition: synapseGroup.cc:254
const std::vector< double > & getWUParams() const
Definition: synapseGroup.h:156
void setMaxDendriticDelayTimesteps(unsigned int maxDendriticDelay)
Sets the maximum dendritic delay for synapses in this synapse group.
Definition: synapseGroup.cc:153
void setMaxSourceConnections(unsigned int maxPostConnections)
Sets the maximum number of source neurons any target neuron can connect to.
Definition: synapseGroup.cc:139
SynapseMatrixType
Definition: synapseMatrixType.h:25
SynapseMatrixType getMatrixType() const
Definition: synapseGroup.h:130
std::pair< unsigned int, unsigned int > getPaddedKernelIDRange() const
Definition: synapseGroup.h:120
void setPSVarZeroCopyEnabled(const std::string &varName, bool enabled)
Definition: synapseGroup.h:63
void setPSModelMergeTarget(const std::string &targetName)
Function to enable the use of zero-copied memory for a particular weight update model state variable ...
Definition: synapseGroup.h:49
std::string getPostsynapticBackPropDelaySlot(const std::string &devPrefix) const
Definition: synapseGroup.cc:400
SpanType getSpanType() const
Definition: synapseGroup.h:124
VarMode getPSVarMode(size_t index) const
Get variable mode used by postsynaptic model state variable.
Definition: synapseGroup.h:201
void addExtraGlobalConnectivityInitialiserParams(std::map< string, string > &kernelParameters) const
Definition: synapseGroup.cc:303
void setTrueSpikeRequired(bool req)
Definition: synapseGroup.h:45
void setDendriticDelayVarMode(VarMode mode)
Set variable mode used for this synapse group's dendritic delay buffers.
Definition: synapseGroup.h:94
const WeightUpdateModels::Base * getWUModel() const
Definition: synapseGroup.h:154
bool isPSDeviceVarInitRequired() const
Is device var init code required for any variables in this synapse group's postsynaptic model...
Definition: synapseGroup.cc:456
std::vector< std::pair< std::string, std::string > > StringPairVec
Definition: snippet.h:117
void addExtraGlobalNeuronParams(std::map< string, string > &kernelParameters) const
Definition: synapseGroup.cc:317
void setWUPostVarMode(const std::string &varName, VarMode mode)
Set variable mode of weight update model postsynaptic state variable.
Definition: synapseGroup.cc:115
bool isWUInitRNGRequired(VarInit varInitMode) const
Does this synapse group require an RNG for it's weight update init code?
Definition: synapseGroup.cc:445
bool isPSInitRNGRequired(VarInit varInitMode) const
Does this synapse group require an RNG for it's postsynaptic init code?
Definition: synapseGroup.cc:439
VarMode getSparseConnectivityVarMode() const
Get variable mode used for sparse connectivity.
Definition: synapseGroup.h:136
bool isWUVarZeroCopyEnabled(const std::string &var) const
Definition: synapseGroup.h:176
const std::vector< double > & getPSDerivedParams() const
Definition: synapseGroup.h:166
VarMode getPSVarMode(const std::string &var) const
Get variable mode used by postsynaptic model state variable.
Definition: synapseGroup.cc:298
VarInit
Definition: variableMode.h:18
bool isDeviceInitRequired() const
Is any form of device initialisation required?
Definition: synapseGroup.cc:501