GeNN  4.9.0
GPU enhanced Neuronal Networks (GeNN)
SynapseGroupInternal Class Reference

#include <synapseGroupInternal.h>

Inheritance diagram for SynapseGroupInternal:
SynapseGroup

Public Member Functions

 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)
 
- Public Member Functions inherited from SynapseGroup
 SynapseGroup (const SynapseGroup &)=delete
 
 SynapseGroup ()=delete
 
void setWUVarLocation (const std::string &varName, VarLocation loc)
 Set location of weight update model state variable. More...
 
void setWUPreVarLocation (const std::string &varName, VarLocation loc)
 Set location of weight update model presynaptic state variable. More...
 
void setWUPostVarLocation (const std::string &varName, VarLocation loc)
 Set location of weight update model postsynaptic state variable. More...
 
void setWUExtraGlobalParamLocation (const std::string &paramName, VarLocation loc)
 Set location of weight update model extra global parameter. More...
 
void setPSVarLocation (const std::string &varName, VarLocation loc)
 Set location of postsynaptic model state variable. More...
 
void setPSExtraGlobalParamLocation (const std::string &paramName, VarLocation loc)
 Set location of postsynaptic model extra global parameter. More...
 
void setPSTargetVar (const std::string &varName)
 Set name of neuron input variable postsynaptic model will target. More...
 
void setPreTargetVar (const std::string &varName)
 Set name of neuron input variable $(addToPre, . ) commands will target. More...
 
void setSparseConnectivityExtraGlobalParamLocation (const std::string &paramName, VarLocation loc)
 Set location of sparse connectivity initialiser extra global parameter. More...
 
void setInSynVarLocation (VarLocation loc)
 Set location of variables used to combine input from this synapse group. More...
 
void setSparseConnectivityLocation (VarLocation loc)
 Set variable mode used for sparse connectivity. More...
 
void setDendriticDelayLocation (VarLocation loc)
 Set variable mode used for this synapse group's dendritic delay buffers. More...
 
void setMaxConnections (unsigned int maxConnections)
 Sets the maximum number of target neurons any source neurons can connect to. More...
 
void setMaxSourceConnections (unsigned int maxPostConnections)
 Sets the maximum number of source neurons any target neuron can connect to. More...
 
void setMaxDendriticDelayTimesteps (unsigned int maxDendriticDelay)
 Sets the maximum dendritic delay for synapses in this synapse group. More...
 
void setSpanType (SpanType spanType)
 Set how CUDA implementation is parallelised. More...
 
void setNumThreadsPerSpike (unsigned int numThreadsPerSpike)
 Set how many threads CUDA implementation uses to process each spike when span type is PRESYNAPTIC. More...
 
void setBackPropDelaySteps (unsigned int timesteps)
 Sets the number of delay steps used to delay postsynaptic spikes travelling back along dendrites to synapses. More...
 
void setNarrowSparseIndEnabled (bool enabled)
 Enables or disables using narrow i.e. less than 32-bit types for sparse matrix indices. More...
 
const std::string & getName () const
 
SpanType getSpanType () const
 
unsigned int getNumThreadsPerSpike () const
 
unsigned int getDelaySteps () const
 
unsigned int getBackPropDelaySteps () const
 
unsigned int getMaxConnections () const
 
unsigned int getMaxSourceConnections () const
 
unsigned int getMaxDendriticDelayTimesteps () const
 
SynapseMatrixType getMatrixType () const
 
const std::vector< unsigned int > & getKernelSize () const
 
size_t getKernelSizeFlattened () const
 
VarLocation getInSynLocation () const
 Get variable mode used for variables used to combine input from this synapse group. More...
 
VarLocation getSparseConnectivityLocation () const
 Get variable mode used for sparse connectivity. More...
 
VarLocation getDendriticDelayLocation () const
 Get variable mode used for this synapse group's dendritic delay buffers. More...
 
bool isTrueSpikeRequired () const
 Does synapse group need to handle 'true' spikes. More...
 
bool isSpikeEventRequired () const
 Does synapse group need to handle spike-like events. More...
 
bool isWeightSharingSlave () const
 Is this synapse group a weight-sharing slave. More...
 
bool isPSModelFused () const
 Has this synapse group's postsynaptic model been fused with those from other synapse groups? More...
 
bool isWUPreModelFused () const
 
bool isWUPostModelFused () const
 
std::string getSparseIndType () const
 Get the type to use for sparse connectivity indices for synapse group. More...
 
const WeightUpdateModels::BasegetWUModel () const
 
const std::vector< double > & getWUParams () const
 
const std::vector< Models::VarInit > & getWUVarInitialisers () const
 
const std::vector< Models::VarInit > & getWUPreVarInitialisers () const
 
const std::vector< Models::VarInit > & getWUPostVarInitialisers () const
 
const std::vector< double > getWUConstInitVals () const
 
const PostsynapticModels::BasegetPSModel () const
 
const std::vector< double > & getPSParams () const
 
const std::vector< Models::VarInit > & getPSVarInitialisers () const
 
const std::vector< double > getPSConstInitVals () const
 
const InitSparseConnectivitySnippet::InitgetConnectivityInitialiser () const
 
const InitToeplitzConnectivitySnippet::InitgetToeplitzConnectivityInitialiser () const
 
bool isZeroCopyEnabled () const
 
VarLocation getWUVarLocation (const std::string &var) const
 Get location of weight update model per-synapse state variable by name. More...
 
VarLocation getWUVarLocation (size_t index) const
 Get location of weight update model per-synapse state variable by index. More...
 
VarLocation getWUPreVarLocation (const std::string &var) const
 Get location of weight update model presynaptic state variable by name. More...
 
VarLocation getWUPreVarLocation (size_t index) const
 Get location of weight update model presynaptic state variable by index. More...
 
VarLocation getWUPostVarLocation (const std::string &var) const
 Get location of weight update model postsynaptic state variable by name. More...
 
VarLocation getWUPostVarLocation (size_t index) const
 Get location of weight update model postsynaptic state variable by index. More...
 
VarLocation getWUExtraGlobalParamLocation (const std::string &paramName) const
 Get location of weight update model extra global parameter by name. More...
 
VarLocation getWUExtraGlobalParamLocation (size_t index) const
 Get location of weight update model extra global parameter by index. More...
 
VarLocation getPSVarLocation (const std::string &var) const
 Get location of postsynaptic model state variable. More...
 
VarLocation getPSVarLocation (size_t index) const
 Get location of postsynaptic model state variable. More...
 
VarLocation getPSExtraGlobalParamLocation (const std::string &paramName) const
 Get location of postsynaptic model extra global parameter by name. More...
 
VarLocation getPSExtraGlobalParamLocation (size_t index) const
 Get location of postsynaptic model extra global parameter by index. More...
 
const std::string & getPSTargetVar () const
 Get name of neuron input variable postsynaptic model will target. More...
 
const std::string & getPreTargetVar () const
 Get name of neuron input variable which a presynaptic output specified with will target. More...
 
VarLocation getSparseConnectivityExtraGlobalParamLocation (const std::string &paramName) const
 Get location of sparse connectivity initialiser extra global parameter by name. More...
 
VarLocation getSparseConnectivityExtraGlobalParamLocation (size_t index) const
 Get location of sparse connectivity initialiser extra global parameter by index. More...
 
bool isDendriticDelayRequired () const
 Does this synapse group require dendritic delay? More...
 
bool isPresynapticOutputRequired () const
 Does this synapse group define presynaptic output? More...
 
bool isProceduralConnectivityRNGRequired () const
 Does this synapse group require an RNG to generate procedural connectivity? More...
 
bool isPSInitRNGRequired () const
 Does this synapse group require an RNG for it's postsynaptic init code? More...
 
bool isWUInitRNGRequired () const
 Does this synapse group require an RNG for it's weight update init code? More...
 
bool isWUPreInitRNGRequired () const
 Does this synapse group require an RNG for it's weight update presynaptic variable init code? More...
 
bool isWUPostInitRNGRequired () const
 Does this synapse group require an RNG for it's weight update postsynaptic variable init code? More...
 
bool isHostInitRNGRequired () const
 Does this synapse group require a RNG for any sort of initialization. More...
 
bool isWUVarInitRequired () const
 Is var init code required for any variables in this synapse group's weight update model? More...
 
bool isSparseConnectivityInitRequired () const
 Is sparse connectivity initialisation code required for this synapse group? More...
 

Additional Inherited Members

- Public Types inherited from SynapseGroup
enum  SpanType { SpanType::POSTSYNAPTIC, SpanType::PRESYNAPTIC }
 
- Protected Member Functions inherited from SynapseGroup
 SynapseGroup (const std::string &name, 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 SynapseGroupInternal *weightSharingMaster, const InitSparseConnectivitySnippet::Init &connectivityInitialiser, const InitToeplitzConnectivitySnippet::Init &toeplitzInitialiser, VarLocation defaultVarLocation, VarLocation defaultExtraGlobalParamLocation, VarLocation defaultSparseConnectivityLocation, bool defaultNarrowSparseIndEnabled)
 
NeuronGroupInternalgetSrcNeuronGroup ()
 
NeuronGroupInternalgetTrgNeuronGroup ()
 
void setEventThresholdReTestRequired (bool req)
 
void setWUVarReferencedByCustomUpdate (bool ref)
 Set if any of this synapse group's weight update model variables referenced by a custom update. More...
 
void setFusedPSVarSuffix (const std::string &suffix)
 
void setFusedWUPreVarSuffix (const std::string &suffix)
 
void setFusedWUPostVarSuffix (const std::string &suffix)
 
void setFusedPreOutputSuffix (const std::string &suffix)
 
void initDerivedParams (double dt)
 
const NeuronGroupInternalgetSrcNeuronGroup () const
 
const NeuronGroupInternalgetTrgNeuronGroup () const
 
const std::vector< double > & getWUDerivedParams () const
 
const std::vector< double > & getPSDerivedParams () const
 
const SynapseGroupInternalgetWeightSharingMaster () const
 Does the event threshold needs to be retested in the synapse kernel? More...
 
bool isEventThresholdReTestRequired () const
 
const std::string & getFusedPSVarSuffix () const
 
const std::string & getFusedWUPreVarSuffix () const
 
const std::string & getFusedWUPostVarSuffix () const
 
const std::string & getFusedPreOutputSuffix () const
 
bool areWUVarReferencedByCustomUpdate () const
 Are any of this synapse group's weight update model variables referenced by a custom update. More...
 
bool canPSBeFused () const
 Can postsynaptic update component of this synapse group be safely fused with others whose hashes match so only one needs simulating at all? More...
 
bool canWUMPreUpdateBeFused () const
 Can presynaptic update component of this synapse group's weight update model be safely fused with other whose hashes match so only one needs simulating at all? More...
 
bool canPreOutputBeFused () const
 Can presynaptic output component of this synapse group's weight update model be safely fused with other whose hashes match so only one needs simulating at all? More...
 
bool canWUMPostUpdateBeFused () const
 Can postsynaptic update component of this synapse group's weight update model be safely fused with other whose hashes match so only one needs simulating at all? More...
 
boost::uuids::detail::sha1::digest_type getWUHashDigest () const
 Generate hash of weight update component of this synapse group. More...
 
boost::uuids::detail::sha1::digest_type getWUPreHashDigest () const
 Generate hash of presynaptic update component of this synapse group. More...
 
boost::uuids::detail::sha1::digest_type getWUPostHashDigest () const
 Generate hash of postsynaptic update component of this synapse group. More...
 
boost::uuids::detail::sha1::digest_type getPSHashDigest () const
 Generate hash of postsynaptic update component of this synapse group. More...
 
boost::uuids::detail::sha1::digest_type getWUPreFuseHashDigest () const
 
boost::uuids::detail::sha1::digest_type getWUPostFuseHashDigest () const
 
boost::uuids::detail::sha1::digest_type getPSFuseHashDigest () const
 
boost::uuids::detail::sha1::digest_type getPreOutputHashDigest () const
 Generate hash of presynaptic output update component of this synapse group. More...
 
boost::uuids::detail::sha1::digest_type getDendriticDelayUpdateHashDigest () const
 
boost::uuids::detail::sha1::digest_type getWUInitHashDigest () const
 Generate hash of initialisation component of this synapse group. More...
 
boost::uuids::detail::sha1::digest_type getWUPreInitHashDigest () const
 Generate hash of presynaptic variable initialisation component of this synapse group. More...
 
boost::uuids::detail::sha1::digest_type getWUPostInitHashDigest () const
 Generate hash of postsynaptic variable initialisation component of this synapse group. More...
 
boost::uuids::detail::sha1::digest_type getPSInitHashDigest () const
 Generate hash of postsynaptic model variable initialisation component of this synapse group. More...
 
boost::uuids::detail::sha1::digest_type getPreOutputInitHashDigest () const
 Generate hash of presynaptic output initialization component of this synapse group. More...
 
boost::uuids::detail::sha1::digest_type getConnectivityInitHashDigest () const
 Generate hash of connectivity initialisation of this synapse group. More...
 
boost::uuids::detail::sha1::digest_type getConnectivityHostInitHashDigest () const
 Generate hash of host connectivity initialisation of this synapse group. More...
 
boost::uuids::detail::sha1::digest_type getVarLocationHashDigest () const
 

Constructor & Destructor Documentation

◆ SynapseGroupInternal()

SynapseGroupInternal::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 
)
inline

The documentation for this class was generated from the following file: