GeNN  4.9.0
GPU enhanced Neuronal Networks (GeNN)
SharedLibraryModel< scalar > Class Template Reference

#include <sharedLibraryModel.h>

Public Member Functions

 SharedLibraryModel ()
 
 SharedLibraryModel (const std::string &pathToModel, const std::string &modelName, bool includeModelNameInDLL=false)
 
virtual ~SharedLibraryModel ()
 
bool open (const std::string &pathToModel, const std::string &modelName, bool includeModelNameInDLL=false)
 
void close ()
 
void allocateExtraGlobalParam (const std::string &popName, const std::string &egpName, unsigned int count)
 
void allocateExtraGlobalParam (const std::string &popName, const std::string &varName, const std::string &egpName, unsigned int count)
 
void freeExtraGlobalParam (const std::string &popName, const std::string &egpName)
 
void freeExtraGlobalParam (const std::string &popName, const std::string &varName, const std::string &egpName)
 
void pullStateFromDevice (const std::string &popName)
 
void pullSpikesFromDevice (const std::string &popName)
 
void pullSpikeEventsFromDevice (const std::string &popName)
 
void pullCurrentSpikesFromDevice (const std::string &popName)
 
void pullCurrentSpikesEventsFromDevice (const std::string &popName)
 
void pullConnectivityFromDevice (const std::string &popName)
 
void pullVarFromDevice (const std::string &popName, const std::string &varName)
 
void pullExtraGlobalParam (const std::string &popName, const std::string &egpName, unsigned int count)
 
void pullExtraGlobalParam (const std::string &popName, const std::string &varName, const std::string &egpName, unsigned int count)
 
void pushStateToDevice (const std::string &popName, bool uninitialisedOnly=false)
 
void pushSpikesToDevice (const std::string &popName, bool uninitialisedOnly=false)
 
void pushSpikeEventsToDevice (const std::string &popName, bool uninitialisedOnly=false)
 
void pushCurrentSpikesToDevice (const std::string &popName, bool uninitialisedOnly=false)
 
void pushCurrentSpikeEventsToDevice (const std::string &popName, bool uninitialisedOnly=false)
 
void pushConnectivityToDevice (const std::string &popName, bool uninitialisedOnly=false)
 
void pushVarToDevice (const std::string &popName, const std::string &varName, bool uninitialisedOnly=false)
 
void pushExtraGlobalParam (const std::string &popName, const std::string &egpName, unsigned int count)
 
void pushExtraGlobalParam (const std::string &popName, const std::string &varName, const std::string &egpName, unsigned int count)
 
template<typename Writer , typename... WriterArgs>
SpikeRecorder< Writer > getSpikeRecorder (const std::string &popName, WriterArgs &&... writerArgs)
 
template<typename T >
T * getArray (const std::string &varName)
 
template<typename T >
T * getScalar (const std::string &varName)
 
void allocateMem ()
 
void allocateRecordingBuffers (unsigned int timesteps)
 
void freeMem ()
 
size_t getFreeDeviceMemBytes ()
 
void ncclGenerateUniqueID ()
 
unsigned char * ncclGetUniqueID ()
 
unsigned int ncclGetUniqueIDBytes () const
 
void ncclInitCommunicator (int rank, int numRanks)
 
void initialize ()
 
void initializeSparse ()
 
void stepTime ()
 
void customUpdate (const std::string &name)
 
void pullRecordingBuffersFromDevice ()
 
scalar getTime () const
 
unsigned long long getTimestep () const
 
void setTime (scalar t)
 
void setTimestep (unsigned long long iT)
 
double getNeuronUpdateTime () const
 
double getInitTime () const
 
double getPresynapticUpdateTime () const
 
double getPostsynapticUpdateTime () const
 
double getSynapseDynamicsTime () const
 
double getInitSparseTime () const
 
double getCustomUpdateTime (const std::string &name) const
 
double getCustomUpdateTransposeTime (const std::string &name) const
 
void * getSymbol (const std::string &symbolName, bool allowMissing=false, void *defaultSymbol=nullptr) const
 

Constructor & Destructor Documentation

◆ SharedLibraryModel() [1/2]

template<typename scalar = float>
SharedLibraryModel< scalar >::SharedLibraryModel ( )
inline

◆ SharedLibraryModel() [2/2]

template<typename scalar = float>
SharedLibraryModel< scalar >::SharedLibraryModel ( const std::string &  pathToModel,
const std::string &  modelName,
bool  includeModelNameInDLL = false 
)
inline

◆ ~SharedLibraryModel()

template<typename scalar = float>
virtual SharedLibraryModel< scalar >::~SharedLibraryModel ( )
inlinevirtual

Member Function Documentation

◆ allocateExtraGlobalParam() [1/2]

template<typename scalar = float>
void SharedLibraryModel< scalar >::allocateExtraGlobalParam ( const std::string &  popName,
const std::string &  egpName,
unsigned int  count 
)
inline

◆ allocateExtraGlobalParam() [2/2]

template<typename scalar = float>
void SharedLibraryModel< scalar >::allocateExtraGlobalParam ( const std::string &  popName,
const std::string &  varName,
const std::string &  egpName,
unsigned int  count 
)
inline

◆ allocateMem()

template<typename scalar = float>
void SharedLibraryModel< scalar >::allocateMem ( )
inline

◆ allocateRecordingBuffers()

template<typename scalar = float>
void SharedLibraryModel< scalar >::allocateRecordingBuffers ( unsigned int  timesteps)
inline

◆ close()

template<typename scalar = float>
void SharedLibraryModel< scalar >::close ( )
inline

◆ customUpdate()

template<typename scalar = float>
void SharedLibraryModel< scalar >::customUpdate ( const std::string &  name)
inline

◆ freeExtraGlobalParam() [1/2]

template<typename scalar = float>
void SharedLibraryModel< scalar >::freeExtraGlobalParam ( const std::string &  popName,
const std::string &  egpName 
)
inline

◆ freeExtraGlobalParam() [2/2]

template<typename scalar = float>
void SharedLibraryModel< scalar >::freeExtraGlobalParam ( const std::string &  popName,
const std::string &  varName,
const std::string &  egpName 
)
inline

◆ freeMem()

template<typename scalar = float>
void SharedLibraryModel< scalar >::freeMem ( )
inline

◆ getArray()

template<typename scalar = float>
template<typename T >
T* SharedLibraryModel< scalar >::getArray ( const std::string &  varName)
inline

◆ getCustomUpdateTime()

template<typename scalar = float>
double SharedLibraryModel< scalar >::getCustomUpdateTime ( const std::string &  name) const
inline

◆ getCustomUpdateTransposeTime()

template<typename scalar = float>
double SharedLibraryModel< scalar >::getCustomUpdateTransposeTime ( const std::string &  name) const
inline

◆ getFreeDeviceMemBytes()

template<typename scalar = float>
size_t SharedLibraryModel< scalar >::getFreeDeviceMemBytes ( )
inline

◆ getInitSparseTime()

template<typename scalar = float>
double SharedLibraryModel< scalar >::getInitSparseTime ( ) const
inline

◆ getInitTime()

template<typename scalar = float>
double SharedLibraryModel< scalar >::getInitTime ( ) const
inline

◆ getNeuronUpdateTime()

template<typename scalar = float>
double SharedLibraryModel< scalar >::getNeuronUpdateTime ( ) const
inline

◆ getPostsynapticUpdateTime()

template<typename scalar = float>
double SharedLibraryModel< scalar >::getPostsynapticUpdateTime ( ) const
inline

◆ getPresynapticUpdateTime()

template<typename scalar = float>
double SharedLibraryModel< scalar >::getPresynapticUpdateTime ( ) const
inline

◆ getScalar()

template<typename scalar = float>
template<typename T >
T* SharedLibraryModel< scalar >::getScalar ( const std::string &  varName)
inline

◆ getSpikeRecorder()

template<typename scalar = float>
template<typename Writer , typename... WriterArgs>
SpikeRecorder<Writer> SharedLibraryModel< scalar >::getSpikeRecorder ( const std::string &  popName,
WriterArgs &&...  writerArgs 
)
inline

◆ getSymbol()

template<typename scalar = float>
void* SharedLibraryModel< scalar >::getSymbol ( const std::string &  symbolName,
bool  allowMissing = false,
void *  defaultSymbol = nullptr 
) const
inline

◆ getSynapseDynamicsTime()

template<typename scalar = float>
double SharedLibraryModel< scalar >::getSynapseDynamicsTime ( ) const
inline

◆ getTime()

template<typename scalar = float>
scalar SharedLibraryModel< scalar >::getTime ( ) const
inline

◆ getTimestep()

template<typename scalar = float>
unsigned long long SharedLibraryModel< scalar >::getTimestep ( ) const
inline

◆ initialize()

template<typename scalar = float>
void SharedLibraryModel< scalar >::initialize ( )
inline

◆ initializeSparse()

template<typename scalar = float>
void SharedLibraryModel< scalar >::initializeSparse ( )
inline

◆ ncclGenerateUniqueID()

template<typename scalar = float>
void SharedLibraryModel< scalar >::ncclGenerateUniqueID ( )
inline

◆ ncclGetUniqueID()

template<typename scalar = float>
unsigned char* SharedLibraryModel< scalar >::ncclGetUniqueID ( )
inline

◆ ncclGetUniqueIDBytes()

template<typename scalar = float>
unsigned int SharedLibraryModel< scalar >::ncclGetUniqueIDBytes ( ) const
inline

◆ ncclInitCommunicator()

template<typename scalar = float>
void SharedLibraryModel< scalar >::ncclInitCommunicator ( int  rank,
int  numRanks 
)
inline

◆ open()

template<typename scalar = float>
bool SharedLibraryModel< scalar >::open ( const std::string &  pathToModel,
const std::string &  modelName,
bool  includeModelNameInDLL = false 
)
inline

◆ pullConnectivityFromDevice()

template<typename scalar = float>
void SharedLibraryModel< scalar >::pullConnectivityFromDevice ( const std::string &  popName)
inline

◆ pullCurrentSpikesEventsFromDevice()

template<typename scalar = float>
void SharedLibraryModel< scalar >::pullCurrentSpikesEventsFromDevice ( const std::string &  popName)
inline

◆ pullCurrentSpikesFromDevice()

template<typename scalar = float>
void SharedLibraryModel< scalar >::pullCurrentSpikesFromDevice ( const std::string &  popName)
inline

◆ pullExtraGlobalParam() [1/2]

template<typename scalar = float>
void SharedLibraryModel< scalar >::pullExtraGlobalParam ( const std::string &  popName,
const std::string &  egpName,
unsigned int  count 
)
inline

◆ pullExtraGlobalParam() [2/2]

template<typename scalar = float>
void SharedLibraryModel< scalar >::pullExtraGlobalParam ( const std::string &  popName,
const std::string &  varName,
const std::string &  egpName,
unsigned int  count 
)
inline

◆ pullRecordingBuffersFromDevice()

template<typename scalar = float>
void SharedLibraryModel< scalar >::pullRecordingBuffersFromDevice ( )
inline

◆ pullSpikeEventsFromDevice()

template<typename scalar = float>
void SharedLibraryModel< scalar >::pullSpikeEventsFromDevice ( const std::string &  popName)
inline

◆ pullSpikesFromDevice()

template<typename scalar = float>
void SharedLibraryModel< scalar >::pullSpikesFromDevice ( const std::string &  popName)
inline

◆ pullStateFromDevice()

template<typename scalar = float>
void SharedLibraryModel< scalar >::pullStateFromDevice ( const std::string &  popName)
inline

◆ pullVarFromDevice()

template<typename scalar = float>
void SharedLibraryModel< scalar >::pullVarFromDevice ( const std::string &  popName,
const std::string &  varName 
)
inline

◆ pushConnectivityToDevice()

template<typename scalar = float>
void SharedLibraryModel< scalar >::pushConnectivityToDevice ( const std::string &  popName,
bool  uninitialisedOnly = false 
)
inline

◆ pushCurrentSpikeEventsToDevice()

template<typename scalar = float>
void SharedLibraryModel< scalar >::pushCurrentSpikeEventsToDevice ( const std::string &  popName,
bool  uninitialisedOnly = false 
)
inline

◆ pushCurrentSpikesToDevice()

template<typename scalar = float>
void SharedLibraryModel< scalar >::pushCurrentSpikesToDevice ( const std::string &  popName,
bool  uninitialisedOnly = false 
)
inline

◆ pushExtraGlobalParam() [1/2]

template<typename scalar = float>
void SharedLibraryModel< scalar >::pushExtraGlobalParam ( const std::string &  popName,
const std::string &  egpName,
unsigned int  count 
)
inline

◆ pushExtraGlobalParam() [2/2]

template<typename scalar = float>
void SharedLibraryModel< scalar >::pushExtraGlobalParam ( const std::string &  popName,
const std::string &  varName,
const std::string &  egpName,
unsigned int  count 
)
inline

◆ pushSpikeEventsToDevice()

template<typename scalar = float>
void SharedLibraryModel< scalar >::pushSpikeEventsToDevice ( const std::string &  popName,
bool  uninitialisedOnly = false 
)
inline

◆ pushSpikesToDevice()

template<typename scalar = float>
void SharedLibraryModel< scalar >::pushSpikesToDevice ( const std::string &  popName,
bool  uninitialisedOnly = false 
)
inline

◆ pushStateToDevice()

template<typename scalar = float>
void SharedLibraryModel< scalar >::pushStateToDevice ( const std::string &  popName,
bool  uninitialisedOnly = false 
)
inline

◆ pushVarToDevice()

template<typename scalar = float>
void SharedLibraryModel< scalar >::pushVarToDevice ( const std::string &  popName,
const std::string &  varName,
bool  uninitialisedOnly = false 
)
inline

◆ setTime()

template<typename scalar = float>
void SharedLibraryModel< scalar >::setTime ( scalar  t)
inline

◆ setTimestep()

template<typename scalar = float>
void SharedLibraryModel< scalar >::setTimestep ( unsigned long long  iT)
inline

◆ stepTime()

template<typename scalar = float>
void SharedLibraryModel< scalar >::stepTime ( )
inline

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