GeNN  4.9.0
GPU enhanced Neuronal Networks (GeNN)
CodeGenerator::PresynapticUpdateStrategySIMT::PreSpanProcedural Class Reference

Presynaptic parallelism with procedural connectivity. More...

#include <presynapticUpdateStrategySIMT.h>

Inheritance diagram for CodeGenerator::PresynapticUpdateStrategySIMT::PreSpanProcedural:
CodeGenerator::PresynapticUpdateStrategySIMT::Base

Public Member Functions

virtual size_t getNumThreads (const SynapseGroupInternal &sg) const override
 Get the number of threads that presynaptic updates should be parallelised across. More...
 
virtual size_t getSynapticMatrixRowStride (const SynapseGroupInternal &sg) const override
 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 override
 Is this presynaptic update strategy compatible with a given synapse group? More...
 
virtual size_t getSharedMemoryPerThread (const PresynapticUpdateGroupMerged &sg, const BackendSIMT &backend) const override
 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 override
 
virtual void genUpdate (CodeStream &os, const ModelSpecMerged &modelMerged, const PresynapticUpdateGroupMerged &sg, const Substitutions &popSubs, const BackendSIMT &backend, bool trueSpike) const override
 Generate presynaptic update code. More...
 
virtual void genPostamble (CodeStream &os, const ModelSpecMerged &modelMerged, const PresynapticUpdateGroupMerged &sg, const Substitutions &popSubs, const BackendSIMT &backend) const override
 

Detailed Description

Presynaptic parallelism with procedural connectivity.

Member Function Documentation

◆ genPostamble()

void CodeGenerator::PresynapticUpdateStrategySIMT::PreSpanProcedural::genPostamble ( CodeStream os,
const ModelSpecMerged modelMerged,
const PresynapticUpdateGroupMerged sg,
const Substitutions popSubs,
const BackendSIMT backend 
) const
overridevirtual

◆ genPreamble()

void CodeGenerator::PresynapticUpdateStrategySIMT::PreSpanProcedural::genPreamble ( CodeStream os,
const ModelSpecMerged modelMerged,
const PresynapticUpdateGroupMerged sg,
const Substitutions popSubs,
const BackendSIMT backend 
) const
overridevirtual

◆ genUpdate()

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

Generate presynaptic update code.

Implements CodeGenerator::PresynapticUpdateStrategySIMT::Base.

◆ getNumThreads()

size_t CodeGenerator::PresynapticUpdateStrategySIMT::PreSpanProcedural::getNumThreads ( const SynapseGroupInternal sg) const
overridevirtual

Get the number of threads that presynaptic updates should be parallelised across.

Implements CodeGenerator::PresynapticUpdateStrategySIMT::Base.

◆ getSharedMemoryPerThread()

size_t CodeGenerator::PresynapticUpdateStrategySIMT::PreSpanProcedural::getSharedMemoryPerThread ( const PresynapticUpdateGroupMerged sg,
const BackendSIMT backend 
) const
overridevirtual

How many neurons does each thread accumulate the outputs of into shared memory.

Implements CodeGenerator::PresynapticUpdateStrategySIMT::Base.

◆ getSynapticMatrixRowStride()

size_t CodeGenerator::PresynapticUpdateStrategySIMT::PreSpanProcedural::getSynapticMatrixRowStride ( const SynapseGroupInternal sg) const
overridevirtual

Gets the stride used to access synaptic matrix rows, taking into account sparse data structure, padding etc.

Implements CodeGenerator::PresynapticUpdateStrategySIMT::Base.

◆ isCompatible()

bool CodeGenerator::PresynapticUpdateStrategySIMT::PreSpanProcedural::isCompatible ( const SynapseGroupInternal sg,
const PreferencesBase preferences 
) const
overridevirtual

Is this presynaptic update strategy compatible with a given synapse group?

Implements CodeGenerator::PresynapticUpdateStrategySIMT::Base.


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