12 class ModelSpecMerged;
20 namespace PresynapticUpdateStrategySIMT
Base class for Single Instruction Multiple Thread style backends.
Definition: backendSIMT.h:51
Postsynaptic parallelism.
Definition: presynapticUpdateStrategySIMT.h:88
virtual size_t getSynapticMatrixRowStride(const SynapseGroupInternal &sg) const =0
Gets the stride used to access synaptic matrix rows, taking into account sparse data structure...
virtual size_t getSharedMemoryPerThread(const PresynapticUpdateGroupMerged &sg, const BackendSIMT &backend) const =0
How many neurons does each thread accumulate the outputs of into shared memory.
Postsynaptic parallelism for Toeplitz connectivity.
Definition: presynapticUpdateStrategySIMT.h:195
Base class for backend preferences - can be accessed via a global in 'classic' C++ code generator...
Definition: backendBase.h:58
Definition: modelSpecMerged.h:31
Helper class for generating code - automatically inserts brackets, indents etc.
Definition: backendBase.h:30
virtual void genPostamble(CodeStream &os, const ModelSpecMerged &modelMerged, const PresynapticUpdateGroupMerged &sg, const Substitutions &popSubs, const BackendSIMT &backend) const =0
Definition: synapseGroupInternal.h:9
Definition: codeStream.h:21
Definition: substitutions.h:21
Presynaptic parallelism.
Definition: presynapticUpdateStrategySIMT.h:55
Presynaptic parallelism with procedural connectivity.
Definition: presynapticUpdateStrategySIMT.h:162
virtual bool isCompatible(const SynapseGroupInternal &sg, const PreferencesBase &preferences) const =0
Is this presynaptic update strategy compatible with a given synapse group?
Definition: presynapticUpdateStrategySIMT.h:22
virtual void genPreamble(CodeStream &os, const ModelSpecMerged &modelMerged, const PresynapticUpdateGroupMerged &sg, const Substitutions &popSubs, const BackendSIMT &backend) const =0
virtual void genUpdate(CodeStream &os, const ModelSpecMerged &modelMerged, const PresynapticUpdateGroupMerged &sg, const Substitutions &popSubs, const BackendSIMT &backend, bool trueSpike) const =0
Generate presynaptic update code.
Definition: synapseUpdateGroupMerged.h:15
Postsynaptic parallelism.
Definition: presynapticUpdateStrategySIMT.h:129
virtual size_t getNumThreads(const SynapseGroupInternal &sg) const =0
Get the number of threads that presynaptic updates should be parallelised across. ...