GeNN  4.9.0
GPU enhanced Neuronal Networks (GeNN)
CodeGenerator::PresynapticUpdateStrategySIMT::Base Class Referenceabstract

#include <presynapticUpdateStrategySIMT.h>

Inheritance diagram for CodeGenerator::PresynapticUpdateStrategySIMT::Base:
CodeGenerator::PresynapticUpdateStrategySIMT::PostSpan CodeGenerator::PresynapticUpdateStrategySIMT::PostSpanBitmask CodeGenerator::PresynapticUpdateStrategySIMT::PostSpanToeplitz CodeGenerator::PresynapticUpdateStrategySIMT::PreSpan CodeGenerator::PresynapticUpdateStrategySIMT::PreSpanProcedural

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
 

Member Function Documentation

◆ genPostamble()

◆ genPreamble()

◆ genUpdate()

virtual void CodeGenerator::PresynapticUpdateStrategySIMT::Base::genUpdate ( CodeStream os,
const ModelSpecMerged modelMerged,
const PresynapticUpdateGroupMerged sg,
const Substitutions popSubs,
const BackendSIMT backend,
bool  trueSpike 
) const
pure virtual

◆ getNumThreads()

virtual size_t CodeGenerator::PresynapticUpdateStrategySIMT::Base::getNumThreads ( const SynapseGroupInternal sg) const
pure virtual

◆ getSharedMemoryPerThread()

virtual size_t CodeGenerator::PresynapticUpdateStrategySIMT::Base::getSharedMemoryPerThread ( const PresynapticUpdateGroupMerged sg,
const BackendSIMT backend 
) const
pure virtual

◆ getSynapticMatrixRowStride()

virtual size_t CodeGenerator::PresynapticUpdateStrategySIMT::Base::getSynapticMatrixRowStride ( const SynapseGroupInternal sg) const
pure virtual

◆ isCompatible()

virtual bool CodeGenerator::PresynapticUpdateStrategySIMT::Base::isCompatible ( const SynapseGroupInternal sg,
const PreferencesBase preferences 
) const
pure virtual

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