GeNN
4.9.0
GPU enhanced Neuronal Networks (GeNN)
|
#include <presynapticUpdateStrategySIMT.h>
Public Member Functions | |
virtual size_t | getNumThreads (const SynapseGroupInternal &sg) const =0 |
Get the number of threads that presynaptic updates should be parallelised across. More... | |
virtual size_t | getSynapticMatrixRowStride (const SynapseGroupInternal &sg) const =0 |
Gets the stride used to access synaptic matrix rows, taking into account sparse data structure, padding etc. More... | |
virtual bool | isCompatible (const SynapseGroupInternal &sg, const PreferencesBase &preferences) const =0 |
Is this presynaptic update strategy compatible with a given synapse group? More... | |
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. More... | |
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. More... | |
virtual void | genPostamble (CodeStream &os, const ModelSpecMerged &modelMerged, const PresynapticUpdateGroupMerged &sg, const Substitutions &popSubs, const BackendSIMT &backend) const =0 |
|
pure virtual |
Implemented in CodeGenerator::PresynapticUpdateStrategySIMT::PostSpanToeplitz, CodeGenerator::PresynapticUpdateStrategySIMT::PreSpanProcedural, CodeGenerator::PresynapticUpdateStrategySIMT::PostSpanBitmask, CodeGenerator::PresynapticUpdateStrategySIMT::PostSpan, and CodeGenerator::PresynapticUpdateStrategySIMT::PreSpan.
|
pure virtual |
Implemented in CodeGenerator::PresynapticUpdateStrategySIMT::PostSpanToeplitz, CodeGenerator::PresynapticUpdateStrategySIMT::PreSpanProcedural, CodeGenerator::PresynapticUpdateStrategySIMT::PostSpanBitmask, CodeGenerator::PresynapticUpdateStrategySIMT::PostSpan, and CodeGenerator::PresynapticUpdateStrategySIMT::PreSpan.
|
pure virtual |
Generate presynaptic update code.
Implemented in CodeGenerator::PresynapticUpdateStrategySIMT::PostSpanToeplitz, CodeGenerator::PresynapticUpdateStrategySIMT::PreSpanProcedural, CodeGenerator::PresynapticUpdateStrategySIMT::PostSpanBitmask, CodeGenerator::PresynapticUpdateStrategySIMT::PostSpan, and CodeGenerator::PresynapticUpdateStrategySIMT::PreSpan.
|
pure virtual |
Get the number of threads that presynaptic updates should be parallelised across.
Implemented in CodeGenerator::PresynapticUpdateStrategySIMT::PostSpanToeplitz, CodeGenerator::PresynapticUpdateStrategySIMT::PreSpanProcedural, CodeGenerator::PresynapticUpdateStrategySIMT::PostSpanBitmask, CodeGenerator::PresynapticUpdateStrategySIMT::PostSpan, and CodeGenerator::PresynapticUpdateStrategySIMT::PreSpan.
|
pure virtual |
How many neurons does each thread accumulate the outputs of into shared memory.
Implemented in CodeGenerator::PresynapticUpdateStrategySIMT::PostSpanToeplitz, CodeGenerator::PresynapticUpdateStrategySIMT::PreSpanProcedural, CodeGenerator::PresynapticUpdateStrategySIMT::PostSpanBitmask, CodeGenerator::PresynapticUpdateStrategySIMT::PostSpan, and CodeGenerator::PresynapticUpdateStrategySIMT::PreSpan.
|
pure virtual |
Gets the stride used to access synaptic matrix rows, taking into account sparse data structure, padding etc.
Implemented in CodeGenerator::PresynapticUpdateStrategySIMT::PostSpanToeplitz, CodeGenerator::PresynapticUpdateStrategySIMT::PreSpanProcedural, CodeGenerator::PresynapticUpdateStrategySIMT::PostSpanBitmask, CodeGenerator::PresynapticUpdateStrategySIMT::PostSpan, and CodeGenerator::PresynapticUpdateStrategySIMT::PreSpan.
|
pure virtual |
Is this presynaptic update strategy compatible with a given synapse group?
Implemented in CodeGenerator::PresynapticUpdateStrategySIMT::PostSpanToeplitz, CodeGenerator::PresynapticUpdateStrategySIMT::PreSpanProcedural, CodeGenerator::PresynapticUpdateStrategySIMT::PostSpanBitmask, CodeGenerator::PresynapticUpdateStrategySIMT::PostSpan, and CodeGenerator::PresynapticUpdateStrategySIMT::PreSpan.