GeNN
4.9.0
GPU enhanced Neuronal Networks (GeNN)
|
Preferences for CUDA backend. More...
#include <backend.h>
Public Member Functions | |
Preferences () | |
void | updateHash (boost::uuids::detail::sha1 &hash) const |
Public Member Functions inherited from CodeGenerator::PreferencesBase | |
void | updateHash (boost::uuids::detail::sha1 &hash) const |
Public Attributes | |
bool | showPtxInfo = false |
Should PTX assembler information be displayed for each CUDA kernel during compilation? More... | |
bool | generateLineInfo = false |
Should line info be included in resultant executable for debugging/profiling purposes? More... | |
bool | selectGPUByDeviceID = false |
bool | enableNCCLReductions = false |
Generate corresponding NCCL batch reductions. More... | |
bool | generateSimpleErrorHandling = false |
DeviceSelect | deviceSelectMethod = DeviceSelect::OPTIMAL |
How to select GPU device. More... | |
unsigned int | manualDeviceID = 0 |
If device select method is set to DeviceSelect::MANUAL, id of device to use. More... | |
BlockSizeSelect | blockSizeSelectMethod = BlockSizeSelect::OCCUPANCY |
How to select CUDA blocksize. More... | |
KernelBlockSize | manualBlockSizes |
If block size select method is set to BlockSizeSelect::MANUAL, block size to use for each kernel. More... | |
size_t | constantCacheOverhead = 72 * 5 |
How much constant cache is already used and therefore can't be used by GeNN? More... | |
std::string | userNvccFlags = "" |
NVCC compiler options for all GPU code. More... | |
Public Attributes inherited from CodeGenerator::PreferencesBase | |
bool | optimizeCode = false |
Generate speed-optimized code, potentially at the expense of floating-point accuracy. More... | |
bool | debugCode = false |
Generate code with debug symbols. More... | |
bool | enableBitmaskOptimisations = false |
bool | automaticCopy = false |
If backend/device supports it, copy data automatically when required rather than requiring push and pull. More... | |
bool | generateEmptyStatePushPull = true |
Should GeNN generate empty state push and pull functions. More... | |
bool | generateExtraGlobalParamPull = true |
Should GeNN generate pull functions for extra global parameters? These are very rarely used. More... | |
bool | includeModelNameInDLL = false |
std::string | userCxxFlagsGNU = "" |
C++ compiler options to be used for building all host side code (used for unix based platforms) More... | |
std::string | userNvccFlagsGNU = "" |
NVCC compiler options they may want to use for all GPU code (used for unix based platforms) More... | |
plog::Severity | logLevel = plog::info |
Logging level to use for code generation. More... | |
Preferences for CUDA backend.
|
inline |
|
inline |
Update hash with preferences
BlockSizeSelect CodeGenerator::CUDA::Preferences::blockSizeSelectMethod = BlockSizeSelect::OCCUPANCY |
How to select CUDA blocksize.
size_t CodeGenerator::CUDA::Preferences::constantCacheOverhead = 72 * 5 |
How much constant cache is already used and therefore can't be used by GeNN?
Each of the four modules which includes CUDA headers(neuronUpdate, synapseUpdate, custom update, init and runner) Takes 72 bytes of constant memory for a lookup table used by cuRAND. If your application requires additional constant cache, increase this
DeviceSelect CodeGenerator::CUDA::Preferences::deviceSelectMethod = DeviceSelect::OPTIMAL |
How to select GPU device.
bool CodeGenerator::CUDA::Preferences::enableNCCLReductions = false |
Generate corresponding NCCL batch reductions.
bool CodeGenerator::CUDA::Preferences::generateLineInfo = false |
Should line info be included in resultant executable for debugging/profiling purposes?
bool CodeGenerator::CUDA::Preferences::generateSimpleErrorHandling = false |
By default, GeNN generates CUDA error-handling code that generates exceptions with line numbers etc. This can make compilation of large models very slow and require a large amount of memory. Turning on this option generates much simpler error-handling code that simply raises an abort signal.
KernelBlockSize CodeGenerator::CUDA::Preferences::manualBlockSizes |
If block size select method is set to BlockSizeSelect::MANUAL, block size to use for each kernel.
unsigned int CodeGenerator::CUDA::Preferences::manualDeviceID = 0 |
If device select method is set to DeviceSelect::MANUAL, id of device to use.
bool CodeGenerator::CUDA::Preferences::selectGPUByDeviceID = false |
GeNN normally identifies devices by PCI bus ID to ensure that the model is run on the same device it was optimized for. However if, for example, you are running on a cluser with NVML this is not desired behaviour.
bool CodeGenerator::CUDA::Preferences::showPtxInfo = false |
Should PTX assembler information be displayed for each CUDA kernel during compilation?
std::string CodeGenerator::CUDA::Preferences::userNvccFlags = "" |
NVCC compiler options for all GPU code.