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

#include <synapseGroup.h>

Inheritance diagram for SynapseGroup:
SynapseGroupInternal

Public Types

enum  SpanType { SpanType::POSTSYNAPTIC, SpanType::PRESYNAPTIC }
 

Public Member Functions

 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...
 

Protected Member Functions

 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
 

Member Enumeration Documentation

◆ SpanType

Enumerator
POSTSYNAPTIC 
PRESYNAPTIC 

Constructor & Destructor Documentation

◆ SynapseGroup() [1/3]

SynapseGroup::SynapseGroup ( const SynapseGroup )
delete

◆ SynapseGroup() [2/3]

SynapseGroup::SynapseGroup ( )
delete

◆ SynapseGroup() [3/3]

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 
)
protected

Member Function Documentation

◆ areWUVarReferencedByCustomUpdate()

bool SynapseGroup::areWUVarReferencedByCustomUpdate ( ) const
inlineprotected

Are any of this synapse group's weight update model variables referenced by a custom update.

◆ canPreOutputBeFused()

bool SynapseGroup::canPreOutputBeFused ( ) const
protected

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?

◆ canPSBeFused()

bool SynapseGroup::canPSBeFused ( ) const
protected

Can postsynaptic update component of this synapse group be safely fused with others whose hashes match so only one needs simulating at all?

◆ canWUMPostUpdateBeFused()

bool SynapseGroup::canWUMPostUpdateBeFused ( ) const
protected

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?

◆ canWUMPreUpdateBeFused()

bool SynapseGroup::canWUMPreUpdateBeFused ( ) const
protected

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?

◆ getBackPropDelaySteps()

unsigned int SynapseGroup::getBackPropDelaySteps ( ) const
inline

◆ getConnectivityHostInitHashDigest()

boost::uuids::detail::sha1::digest_type SynapseGroup::getConnectivityHostInitHashDigest ( ) const
protected

Generate hash of host connectivity initialisation of this synapse group.

NOTE: this can only be called after model is finalized

◆ getConnectivityInitHashDigest()

boost::uuids::detail::sha1::digest_type SynapseGroup::getConnectivityInitHashDigest ( ) const
protected

Generate hash of connectivity initialisation of this synapse group.

NOTE: this can only be called after model is finalized

◆ getConnectivityInitialiser()

const InitSparseConnectivitySnippet::Init& SynapseGroup::getConnectivityInitialiser ( ) const
inline

◆ getDelaySteps()

unsigned int SynapseGroup::getDelaySteps ( ) const
inline

◆ getDendriticDelayLocation()

VarLocation SynapseGroup::getDendriticDelayLocation ( ) const
inline

Get variable mode used for this synapse group's dendritic delay buffers.

◆ getDendriticDelayUpdateHashDigest()

boost::uuids::detail::sha1::digest_type SynapseGroup::getDendriticDelayUpdateHashDigest ( ) const
protected

◆ getFusedPreOutputSuffix()

const std::string& SynapseGroup::getFusedPreOutputSuffix ( ) const
inlineprotected

◆ getFusedPSVarSuffix()

const std::string& SynapseGroup::getFusedPSVarSuffix ( ) const
inlineprotected

◆ getFusedWUPostVarSuffix()

const std::string& SynapseGroup::getFusedWUPostVarSuffix ( ) const
inlineprotected

◆ getFusedWUPreVarSuffix()

const std::string& SynapseGroup::getFusedWUPreVarSuffix ( ) const
inlineprotected

◆ getInSynLocation()

VarLocation SynapseGroup::getInSynLocation ( ) const
inline

Get variable mode used for variables used to combine input from this synapse group.

◆ getKernelSize()

const std::vector<unsigned int>& SynapseGroup::getKernelSize ( ) const
inline

◆ getKernelSizeFlattened()

size_t SynapseGroup::getKernelSizeFlattened ( ) const

◆ getMatrixType()

SynapseMatrixType SynapseGroup::getMatrixType ( ) const
inline

◆ getMaxConnections()

unsigned int SynapseGroup::getMaxConnections ( ) const

◆ getMaxDendriticDelayTimesteps()

unsigned int SynapseGroup::getMaxDendriticDelayTimesteps ( ) const
inline

◆ getMaxSourceConnections()

unsigned int SynapseGroup::getMaxSourceConnections ( ) const

◆ getName()

const std::string& SynapseGroup::getName ( ) const
inline

◆ getNumThreadsPerSpike()

unsigned int SynapseGroup::getNumThreadsPerSpike ( ) const
inline

◆ getPreOutputHashDigest()

boost::uuids::detail::sha1::digest_type SynapseGroup::getPreOutputHashDigest ( ) const
protected

Generate hash of presynaptic output update component of this synapse group.

NOTE: this can only be called after model is finalized

◆ getPreOutputInitHashDigest()

boost::uuids::detail::sha1::digest_type SynapseGroup::getPreOutputInitHashDigest ( ) const
protected

Generate hash of presynaptic output initialization component of this synapse group.

NOTE: this can only be called after model is finalized

◆ getPreTargetVar()

const std::string& SynapseGroup::getPreTargetVar ( ) const
inline

Get name of neuron input variable which a presynaptic output specified with will target.

This will either be 'Isyn' or the name of one of the presynaptic neuron's additional input variables.

◆ getPSConstInitVals()

const std::vector< double > SynapseGroup::getPSConstInitVals ( ) const

◆ getPSDerivedParams()

const std::vector<double>& SynapseGroup::getPSDerivedParams ( ) const
inlineprotected

◆ getPSExtraGlobalParamLocation() [1/2]

VarLocation SynapseGroup::getPSExtraGlobalParamLocation ( const std::string &  paramName) const

Get location of postsynaptic model extra global parameter by name.

This is only used by extra global parameters which are pointers

◆ getPSExtraGlobalParamLocation() [2/2]

VarLocation SynapseGroup::getPSExtraGlobalParamLocation ( size_t  index) const
inline

Get location of postsynaptic model extra global parameter by index.

This is only used by extra global parameters which are pointers

◆ getPSFuseHashDigest()

boost::uuids::detail::sha1::digest_type SynapseGroup::getPSFuseHashDigest ( ) const
protected

Generate hash of postsynaptic update component of this synapse group with additional components to ensure PSMs with matching hashes can not only be simulated using the same code, but fused so only one needs simulating at all

NOTE: this can only be called after model is finalized

◆ getPSHashDigest()

boost::uuids::detail::sha1::digest_type SynapseGroup::getPSHashDigest ( ) const
protected

Generate hash of postsynaptic update component of this synapse group.

NOTE: this can only be called after model is finalized

◆ getPSInitHashDigest()

boost::uuids::detail::sha1::digest_type SynapseGroup::getPSInitHashDigest ( ) const
protected

Generate hash of postsynaptic model variable initialisation component of this synapse group.

NOTE: this can only be called after model is finalized

◆ getPSModel()

const PostsynapticModels::Base* SynapseGroup::getPSModel ( ) const
inline

◆ getPSParams()

const std::vector<double>& SynapseGroup::getPSParams ( ) const
inline

◆ getPSTargetVar()

const std::string& SynapseGroup::getPSTargetVar ( ) const
inline

Get name of neuron input variable postsynaptic model will target.

This will either be 'Isyn' or the name of one of the postsynaptic neuron's additional input variables.

◆ getPSVarInitialisers()

const std::vector<Models::VarInit>& SynapseGroup::getPSVarInitialisers ( ) const
inline

◆ getPSVarLocation() [1/2]

VarLocation SynapseGroup::getPSVarLocation ( const std::string &  var) const

Get location of postsynaptic model state variable.

◆ getPSVarLocation() [2/2]

VarLocation SynapseGroup::getPSVarLocation ( size_t  index) const
inline

Get location of postsynaptic model state variable.

◆ getSpanType()

SpanType SynapseGroup::getSpanType ( ) const
inline

◆ getSparseConnectivityExtraGlobalParamLocation() [1/2]

VarLocation SynapseGroup::getSparseConnectivityExtraGlobalParamLocation ( const std::string &  paramName) const

Get location of sparse connectivity initialiser extra global parameter by name.

This is only used by extra global parameters which are pointers

◆ getSparseConnectivityExtraGlobalParamLocation() [2/2]

VarLocation SynapseGroup::getSparseConnectivityExtraGlobalParamLocation ( size_t  index) const

Get location of sparse connectivity initialiser extra global parameter by index.

This is only used by extra global parameters which are pointers

◆ getSparseConnectivityLocation()

VarLocation SynapseGroup::getSparseConnectivityLocation ( ) const

Get variable mode used for sparse connectivity.

◆ getSparseIndType()

std::string SynapseGroup::getSparseIndType ( ) const

Get the type to use for sparse connectivity indices for synapse group.

NOTE: this can only be called after model is finalized but needs to be public for PyGeNN

◆ getSrcNeuronGroup() [1/2]

NeuronGroupInternal* SynapseGroup::getSrcNeuronGroup ( )
inlineprotected

◆ getSrcNeuronGroup() [2/2]

const NeuronGroupInternal* SynapseGroup::getSrcNeuronGroup ( ) const
inlineprotected

◆ getToeplitzConnectivityInitialiser()

const InitToeplitzConnectivitySnippet::Init& SynapseGroup::getToeplitzConnectivityInitialiser ( ) const
inline

◆ getTrgNeuronGroup() [1/2]

NeuronGroupInternal* SynapseGroup::getTrgNeuronGroup ( )
inlineprotected

◆ getTrgNeuronGroup() [2/2]

const NeuronGroupInternal* SynapseGroup::getTrgNeuronGroup ( ) const
inlineprotected

◆ getVarLocationHashDigest()

boost::uuids::detail::sha1::digest_type SynapseGroup::getVarLocationHashDigest ( ) const
protected

◆ getWeightSharingMaster()

const SynapseGroupInternal* SynapseGroup::getWeightSharingMaster ( ) const
inlineprotected

Does the event threshold needs to be retested in the synapse kernel?

◆ getWUConstInitVals()

const std::vector< double > SynapseGroup::getWUConstInitVals ( ) const

◆ getWUDerivedParams()

const std::vector<double>& SynapseGroup::getWUDerivedParams ( ) const
inlineprotected

◆ getWUExtraGlobalParamLocation() [1/2]

VarLocation SynapseGroup::getWUExtraGlobalParamLocation ( const std::string &  paramName) const

Get location of weight update model extra global parameter by name.

This is only used by extra global parameters which are pointers

◆ getWUExtraGlobalParamLocation() [2/2]

VarLocation SynapseGroup::getWUExtraGlobalParamLocation ( size_t  index) const
inline

Get location of weight update model extra global parameter by index.

This is only used by extra global parameters which are pointers

◆ getWUHashDigest()

boost::uuids::detail::sha1::digest_type SynapseGroup::getWUHashDigest ( ) const
protected

Generate hash of weight update component of this synapse group.

NOTE: this can only be called after model is finalized

◆ getWUInitHashDigest()

boost::uuids::detail::sha1::digest_type SynapseGroup::getWUInitHashDigest ( ) const
protected

Generate hash of initialisation component of this synapse group.

NOTE: this can only be called after model is finalized

◆ getWUModel()

const WeightUpdateModels::Base* SynapseGroup::getWUModel ( ) const
inline

◆ getWUParams()

const std::vector<double>& SynapseGroup::getWUParams ( ) const
inline

◆ getWUPostFuseHashDigest()

boost::uuids::detail::sha1::digest_type SynapseGroup::getWUPostFuseHashDigest ( ) const
protected

Generate hash of postsynaptic weight update component of this synapse group with additional components to ensure those with matching hashes can not only be simulated using the same code, but fused so only one needs simulating at all

NOTE: this can only be called after model is finalized

◆ getWUPostHashDigest()

boost::uuids::detail::sha1::digest_type SynapseGroup::getWUPostHashDigest ( ) const
protected

Generate hash of postsynaptic update component of this synapse group.

NOTE: this can only be called after model is finalized

◆ getWUPostInitHashDigest()

boost::uuids::detail::sha1::digest_type SynapseGroup::getWUPostInitHashDigest ( ) const
protected

Generate hash of postsynaptic variable initialisation component of this synapse group.

NOTE: this can only be called after model is finalized

◆ getWUPostVarInitialisers()

const std::vector<Models::VarInit>& SynapseGroup::getWUPostVarInitialisers ( ) const
inline

◆ getWUPostVarLocation() [1/2]

VarLocation SynapseGroup::getWUPostVarLocation ( const std::string &  var) const

Get location of weight update model postsynaptic state variable by name.

◆ getWUPostVarLocation() [2/2]

VarLocation SynapseGroup::getWUPostVarLocation ( size_t  index) const
inline

Get location of weight update model postsynaptic state variable by index.

◆ getWUPreFuseHashDigest()

boost::uuids::detail::sha1::digest_type SynapseGroup::getWUPreFuseHashDigest ( ) const
protected

Generate hash of presynaptic weight update component of this synapse group with additional components to ensure those with matching hashes can not only be simulated using the same code, but fused so only one needs simulating at all

NOTE: this can only be called after model is finalized

◆ getWUPreHashDigest()

boost::uuids::detail::sha1::digest_type SynapseGroup::getWUPreHashDigest ( ) const
protected

Generate hash of presynaptic update component of this synapse group.

NOTE: this can only be called after model is finalized

◆ getWUPreInitHashDigest()

boost::uuids::detail::sha1::digest_type SynapseGroup::getWUPreInitHashDigest ( ) const
protected

Generate hash of presynaptic variable initialisation component of this synapse group.

NOTE: this can only be called after model is finalized

◆ getWUPreVarInitialisers()

const std::vector<Models::VarInit>& SynapseGroup::getWUPreVarInitialisers ( ) const
inline

◆ getWUPreVarLocation() [1/2]

VarLocation SynapseGroup::getWUPreVarLocation ( const std::string &  var) const

Get location of weight update model presynaptic state variable by name.

◆ getWUPreVarLocation() [2/2]

VarLocation SynapseGroup::getWUPreVarLocation ( size_t  index) const
inline

Get location of weight update model presynaptic state variable by index.

◆ getWUVarInitialisers()

const std::vector<Models::VarInit>& SynapseGroup::getWUVarInitialisers ( ) const
inline

◆ getWUVarLocation() [1/2]

VarLocation SynapseGroup::getWUVarLocation ( const std::string &  var) const

Get location of weight update model per-synapse state variable by name.

◆ getWUVarLocation() [2/2]

VarLocation SynapseGroup::getWUVarLocation ( size_t  index) const

Get location of weight update model per-synapse state variable by index.

◆ initDerivedParams()

void SynapseGroup::initDerivedParams ( double  dt)
protected

◆ isDendriticDelayRequired()

bool SynapseGroup::isDendriticDelayRequired ( ) const

Does this synapse group require dendritic delay?

◆ isEventThresholdReTestRequired()

bool SynapseGroup::isEventThresholdReTestRequired ( ) const
inlineprotected

This is required when the pre-synaptic neuron population's outgoing synapse groups require different event threshold

◆ isHostInitRNGRequired()

bool SynapseGroup::isHostInitRNGRequired ( ) const

Does this synapse group require a RNG for any sort of initialization.

◆ isPresynapticOutputRequired()

bool SynapseGroup::isPresynapticOutputRequired ( ) const

Does this synapse group define presynaptic output?

◆ isProceduralConnectivityRNGRequired()

bool SynapseGroup::isProceduralConnectivityRNGRequired ( ) const

Does this synapse group require an RNG to generate procedural connectivity?

◆ isPSInitRNGRequired()

bool SynapseGroup::isPSInitRNGRequired ( ) const

Does this synapse group require an RNG for it's postsynaptic init code?

◆ isPSModelFused()

bool SynapseGroup::isPSModelFused ( ) const
inline

Has this synapse group's postsynaptic model been fused with those from other synapse groups?

NOTE: this can only be called after model is finalized but needs to be public for PyGeNN

◆ isSparseConnectivityInitRequired()

bool SynapseGroup::isSparseConnectivityInitRequired ( ) const

Is sparse connectivity initialisation code required for this synapse group?

◆ isSpikeEventRequired()

bool SynapseGroup::isSpikeEventRequired ( ) const

Does synapse group need to handle spike-like events.

◆ isTrueSpikeRequired()

bool SynapseGroup::isTrueSpikeRequired ( ) const

Does synapse group need to handle 'true' spikes.

◆ isWeightSharingSlave()

bool SynapseGroup::isWeightSharingSlave ( ) const
inline

Is this synapse group a weight-sharing slave.

◆ isWUInitRNGRequired()

bool SynapseGroup::isWUInitRNGRequired ( ) const

Does this synapse group require an RNG for it's weight update init code?

◆ isWUPostInitRNGRequired()

bool SynapseGroup::isWUPostInitRNGRequired ( ) const

Does this synapse group require an RNG for it's weight update postsynaptic variable init code?

◆ isWUPostModelFused()

bool SynapseGroup::isWUPostModelFused ( ) const
inline

Has the postsynaptic component of this synapse group's weight update model been fused with those from other synapse groups?

NOTE: this can only be called after model is finalized but needs to be public for PyGeNN

◆ isWUPreInitRNGRequired()

bool SynapseGroup::isWUPreInitRNGRequired ( ) const

Does this synapse group require an RNG for it's weight update presynaptic variable init code?

◆ isWUPreModelFused()

bool SynapseGroup::isWUPreModelFused ( ) const
inline

Has the presynaptic component of this synapse group's weight update model been fused with those from other synapse groups?

NOTE: this can only be called after model is finalized but needs to be public for PyGeNN

◆ isWUVarInitRequired()

bool SynapseGroup::isWUVarInitRequired ( ) const

Is var init code required for any variables in this synapse group's weight update model?

◆ isZeroCopyEnabled()

bool SynapseGroup::isZeroCopyEnabled ( ) const

◆ setBackPropDelaySteps()

void SynapseGroup::setBackPropDelaySteps ( unsigned int  timesteps)

Sets the number of delay steps used to delay postsynaptic spikes travelling back along dendrites to synapses.

◆ setDendriticDelayLocation()

void SynapseGroup::setDendriticDelayLocation ( VarLocation  loc)
inline

Set variable mode used for this synapse group's dendritic delay buffers.

◆ setEventThresholdReTestRequired()

void SynapseGroup::setEventThresholdReTestRequired ( bool  req)
inlineprotected

◆ setFusedPreOutputSuffix()

void SynapseGroup::setFusedPreOutputSuffix ( const std::string &  suffix)
inlineprotected

◆ setFusedPSVarSuffix()

void SynapseGroup::setFusedPSVarSuffix ( const std::string &  suffix)
inlineprotected

◆ setFusedWUPostVarSuffix()

void SynapseGroup::setFusedWUPostVarSuffix ( const std::string &  suffix)
inlineprotected

◆ setFusedWUPreVarSuffix()

void SynapseGroup::setFusedWUPreVarSuffix ( const std::string &  suffix)
inlineprotected

◆ setInSynVarLocation()

void SynapseGroup::setInSynVarLocation ( VarLocation  loc)
inline

Set location of variables used to combine input from this synapse group.

This is ignored for simulations on hardware with a single memory space

◆ setMaxConnections()

void SynapseGroup::setMaxConnections ( unsigned int  maxConnections)

Sets the maximum number of target neurons any source neurons can connect to.

Use with synaptic matrix types with SynapseMatrixConnectivity::SPARSE to optimise CUDA implementation

◆ setMaxDendriticDelayTimesteps()

void SynapseGroup::setMaxDendriticDelayTimesteps ( unsigned int  maxDendriticDelay)

Sets the maximum dendritic delay for synapses in this synapse group.

◆ setMaxSourceConnections()

void SynapseGroup::setMaxSourceConnections ( unsigned int  maxPostConnections)

Sets the maximum number of source neurons any target neuron can connect to.

Use with synaptic matrix types with SynapseMatrixConnectivity::SPARSE and postsynaptic learning to optimise CUDA implementation

◆ setNarrowSparseIndEnabled()

void SynapseGroup::setNarrowSparseIndEnabled ( bool  enabled)

Enables or disables using narrow i.e. less than 32-bit types for sparse matrix indices.

◆ setNumThreadsPerSpike()

void SynapseGroup::setNumThreadsPerSpike ( unsigned int  numThreadsPerSpike)

Set how many threads CUDA implementation uses to process each spike when span type is PRESYNAPTIC.

◆ setPreTargetVar()

void SynapseGroup::setPreTargetVar ( const std::string &  varName)

Set name of neuron input variable $(addToPre, . ) commands will target.

This should either be 'Isyn' or the name of one of the presynaptic neuron's additional input variables.

◆ setPSExtraGlobalParamLocation()

void SynapseGroup::setPSExtraGlobalParamLocation ( const std::string &  paramName,
VarLocation  loc 
)

Set location of postsynaptic model extra global parameter.

This is ignored for simulations on hardware with a single memory space and only applies to extra global parameters which are pointers.

◆ setPSTargetVar()

void SynapseGroup::setPSTargetVar ( const std::string &  varName)

Set name of neuron input variable postsynaptic model will target.

This should either be 'Isyn' or the name of one of the postsynaptic neuron's additional input variables.

◆ setPSVarLocation()

void SynapseGroup::setPSVarLocation ( const std::string &  varName,
VarLocation  loc 
)

Set location of postsynaptic model state variable.

This is ignored for simulations on hardware with a single memory space

◆ setSpanType()

void SynapseGroup::setSpanType ( SpanType  spanType)

Set how CUDA implementation is parallelised.

with a thread per target neuron (default) or a thread per source spike

◆ setSparseConnectivityExtraGlobalParamLocation()

void SynapseGroup::setSparseConnectivityExtraGlobalParamLocation ( const std::string &  paramName,
VarLocation  loc 
)

Set location of sparse connectivity initialiser extra global parameter.

This is ignored for simulations on hardware with a single memory space and only applies to extra global parameters which are pointers.

◆ setSparseConnectivityLocation()

void SynapseGroup::setSparseConnectivityLocation ( VarLocation  loc)

Set variable mode used for sparse connectivity.

This is ignored for simulations on hardware with a single memory space

◆ setWUExtraGlobalParamLocation()

void SynapseGroup::setWUExtraGlobalParamLocation ( const std::string &  paramName,
VarLocation  loc 
)

Set location of weight update model extra global parameter.

This is ignored for simulations on hardware with a single memory space and only applies to extra global parameters which are pointers.

◆ setWUPostVarLocation()

void SynapseGroup::setWUPostVarLocation ( const std::string &  varName,
VarLocation  loc 
)

Set location of weight update model postsynaptic state variable.

This is ignored for simulations on hardware with a single memory space

◆ setWUPreVarLocation()

void SynapseGroup::setWUPreVarLocation ( const std::string &  varName,
VarLocation  loc 
)

Set location of weight update model presynaptic state variable.

This is ignored for simulations on hardware with a single memory space

◆ setWUVarLocation()

void SynapseGroup::setWUVarLocation ( const std::string &  varName,
VarLocation  loc 
)

Set location of weight update model state variable.

This is ignored for simulations on hardware with a single memory space

◆ setWUVarReferencedByCustomUpdate()

void SynapseGroup::setWUVarReferencedByCustomUpdate ( bool  ref)
inlineprotected

Set if any of this synapse group's weight update model variables referenced by a custom update.


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