GeNN  4.9.0
GPU enhanced Neuronal Networks (GeNN)
synapseGroupInternal.h
Go to the documentation of this file.
1 #pragma once
2 
3 // GeNN includes
4 #include "synapseGroup.h"
5 
6 //------------------------------------------------------------------------
7 // SynapseGroupInternal
8 //------------------------------------------------------------------------
10 {
11 public:
12  SynapseGroupInternal(const std::string &name, const SynapseGroupInternal *weightSharingMaster, SynapseMatrixType matrixType, unsigned int delaySteps,
13  const WeightUpdateModels::Base *wu, const std::vector<double> &wuParams, const std::vector<Models::VarInit> &wuVarInitialisers, const std::vector<Models::VarInit> &wuPreVarInitialisers, const std::vector<Models::VarInit> &wuPostVarInitialisers,
14  const PostsynapticModels::Base *ps, const std::vector<double> &psParams, const std::vector<Models::VarInit> &psVarInitialisers,
15  NeuronGroupInternal *srcNeuronGroup, NeuronGroupInternal *trgNeuronGroup,
16  const InitSparseConnectivitySnippet::Init &connectivityInitialiser,
17  const InitToeplitzConnectivitySnippet::Init &toeplitzConnectivityInitialiser,
18  VarLocation defaultVarLocation, VarLocation defaultExtraGlobalParamLocation,
19  VarLocation defaultSparseConnectivityLocation, bool defaultNarrowSparseIndEnabled)
20  : SynapseGroup(name, matrixType, delaySteps, wu, wuParams, wuVarInitialisers, wuPreVarInitialisers, wuPostVarInitialisers,
21  ps, psParams, psVarInitialisers, srcNeuronGroup, trgNeuronGroup, weightSharingMaster,
22  connectivityInitialiser, toeplitzConnectivityInitialiser, defaultVarLocation, defaultExtraGlobalParamLocation,
23  defaultSparseConnectivityLocation, defaultNarrowSparseIndEnabled)
24  {
25  // Add references to target and source neuron groups
26  trgNeuronGroup->addInSyn(this);
27  srcNeuronGroup->addOutSyn(this);
28  }
29 
70 };
Definition: neuronGroupInternal.h:9
void setFusedWUPreVarSuffix(const std::string &suffix)
Definition: synapseGroup.h:296
boost::uuids::detail::sha1::digest_type getDendriticDelayUpdateHashDigest() const
Definition: synapseGroup.cc:1013
boost::uuids::detail::sha1::digest_type getWUPreFuseHashDigest() const
Definition: synapseGroup.cc:927
NeuronGroupInternal * getSrcNeuronGroup()
Definition: synapseGroup.h:287
boost::uuids::detail::sha1::digest_type getWUPostInitHashDigest() const
Generate hash of postsynaptic variable initialisation component of this synapse group.
Definition: synapseGroup.cc:1049
VarLocation
< Flags defining which memory space variables should be allocated in
Definition: variableMode.h:10
boost::uuids::detail::sha1::digest_type getPreOutputHashDigest() const
Generate hash of presynaptic output update component of this synapse group.
Definition: synapseGroup.cc:920
boost::uuids::detail::sha1::digest_type getConnectivityHostInitHashDigest() const
Generate hash of host connectivity initialisation of this synapse group.
Definition: synapseGroup.cc:1089
boost::uuids::detail::sha1::digest_type getWUInitHashDigest() const
Generate hash of initialisation component of this synapse group.
Definition: synapseGroup.cc:1020
boost::uuids::detail::sha1::digest_type getPSFuseHashDigest() const
Definition: synapseGroup.cc:899
Definition: initSparseConnectivitySnippet.h:81
boost::uuids::detail::sha1::digest_type getPSHashDigest() const
Generate hash of postsynaptic update component of this synapse group.
Definition: synapseGroup.cc:889
boost::uuids::detail::sha1::digest_type getWUPostFuseHashDigest() const
Definition: synapseGroup.cc:970
bool canPSBeFused() const
Can postsynaptic update component of this synapse group be safely fused with others whose hashes matc...
Definition: synapseGroup.cc:742
void initDerivedParams(double dt)
Definition: synapseGroup.cc:698
boost::uuids::detail::sha1::digest_type getWUPreInitHashDigest() const
Generate hash of presynaptic variable initialisation component of this synapse group.
Definition: synapseGroup.cc:1037
Definition: initToeplitzConnectivitySnippet.h:66
Base class for all postsynaptic models.
Definition: postsynapticModels.h:23
const std::vector< double > & getWUDerivedParams() const
Definition: synapseGroup.h:308
bool isEventThresholdReTestRequired() const
Definition: synapseGroup.h:315
NeuronGroupInternal * getTrgNeuronGroup()
Definition: synapseGroup.h:288
Definition: synapseGroupInternal.h:9
const SynapseGroupInternal * getWeightSharingMaster() const
Does the event threshold needs to be retested in the synapse kernel?
Definition: synapseGroup.h:311
boost::uuids::detail::sha1::digest_type getWUPostHashDigest() const
Generate hash of postsynaptic update component of this synapse group.
Definition: synapseGroup.cc:881
Base class for all weight update models.
Definition: weightUpdateModels.h:46
bool canPreOutputBeFused() const
Can presynaptic output component of this synapse group&#39;s weight update model be safely fused with oth...
Definition: synapseGroup.cc:832
Definition: synapseGroup.h:24
boost::uuids::detail::sha1::digest_type getPSInitHashDigest() const
Generate hash of postsynaptic model variable initialisation component of this synapse group...
Definition: synapseGroup.cc:1061
const std::string & getFusedWUPostVarSuffix() const
Definition: synapseGroup.h:319
boost::uuids::detail::sha1::digest_type getWUHashDigest() const
Generate hash of weight update component of this synapse group.
Definition: synapseGroup.cc:838
const std::string & getFusedPSVarSuffix() const
Definition: synapseGroup.h:317
void setEventThresholdReTestRequired(bool req)
Definition: synapseGroup.h:290
bool areWUVarReferencedByCustomUpdate() const
Are any of this synapse group&#39;s weight update model variables referenced by a custom update...
Definition: synapseGroup.h:323
boost::uuids::detail::sha1::digest_type getWUPreHashDigest() const
Generate hash of presynaptic update component of this synapse group.
Definition: synapseGroup.cc:873
void setFusedWUPostVarSuffix(const std::string &suffix)
Definition: synapseGroup.h:297
bool canWUMPreUpdateBeFused() const
Can presynaptic update component of this synapse group&#39;s weight update model be safely fused with oth...
Definition: synapseGroup.cc:774
boost::uuids::detail::sha1::digest_type getPreOutputInitHashDigest() const
Generate hash of presynaptic output initialization component of this synapse group.
Definition: synapseGroup.cc:1074
boost::uuids::detail::sha1::digest_type getVarLocationHashDigest() const
Definition: synapseGroup.cc:1094
std::string getSparseIndType() const
Get the type to use for sparse connectivity indices for synapse group.
Definition: synapseGroup.cc:279
boost::uuids::detail::sha1::digest_type getConnectivityInitHashDigest() const
Generate hash of connectivity initialisation of this synapse group.
Definition: synapseGroup.cc:1080
void addOutSyn(SynapseGroupInternal *synapseGroup)
Definition: neuronGroup.h:218
bool canWUMPostUpdateBeFused() const
Can postsynaptic update component of this synapse group&#39;s weight update model be safely fused with ot...
Definition: synapseGroup.cc:803
void setFusedPreOutputSuffix(const std::string &suffix)
Definition: synapseGroup.h:298
SynapseGroupInternal(const std::string &name, const SynapseGroupInternal *weightSharingMaster, SynapseMatrixType matrixType, unsigned int delaySteps, const WeightUpdateModels::Base *wu, const std::vector< double > &wuParams, const std::vector< Models::VarInit > &wuVarInitialisers, const std::vector< Models::VarInit > &wuPreVarInitialisers, const std::vector< Models::VarInit > &wuPostVarInitialisers, const PostsynapticModels::Base *ps, const std::vector< double > &psParams, const std::vector< Models::VarInit > &psVarInitialisers, NeuronGroupInternal *srcNeuronGroup, NeuronGroupInternal *trgNeuronGroup, const InitSparseConnectivitySnippet::Init &connectivityInitialiser, const InitToeplitzConnectivitySnippet::Init &toeplitzConnectivityInitialiser, VarLocation defaultVarLocation, VarLocation defaultExtraGlobalParamLocation, VarLocation defaultSparseConnectivityLocation, bool defaultNarrowSparseIndEnabled)
Definition: synapseGroupInternal.h:12
SynapseMatrixType
Supported combinations of SynapticMatrixConnectivity and SynapticMatrixWeight.
Definition: synapseMatrixType.h:27
void setFusedPSVarSuffix(const std::string &suffix)
Definition: synapseGroup.h:295
const std::string & getFusedPreOutputSuffix() const
Definition: synapseGroup.h:320
void addInSyn(SynapseGroupInternal *synapseGroup)
Definition: neuronGroup.h:217
const std::string & getFusedWUPreVarSuffix() const
Definition: synapseGroup.h:318
void setWUVarReferencedByCustomUpdate(bool ref)
Set if any of this synapse group&#39;s weight update model variables referenced by a custom update...
Definition: synapseGroup.h:293
const std::vector< double > & getPSDerivedParams() const
Definition: synapseGroup.h:309