Collection of cuda related utility methods for internal use. Mostly to allow for graceful handling of device resets when cuda is called by dtors
This header exists to allow a convenient way to switch between curand implementations
The main cuRVE header file for the CUDA Runtime Struct Variable Environment (cuRVE) Based off the following article http:// www.gamasutra.com/view/news/127915/InDepth_Quasi_CompileTime_String_Hashing.php This file contains definitions common to HostCurve and DeviceCurve
CUDA does not implement atomicAdd(double*, double) for pre-pascal GPUs, which do not have the underlying hardware instruction. A CAS based software implementation is required instead, which will be much slower. This implementation is based on the reference implementation prodived by the CUDA toolkit documentation.
THIS CLASS SHOULD NOT BE INCLUDED DIRECTLY Include File AgentVector.h instead Use AgentVector::CAgent instead of Class AgentVector_CAgent Use AgentVector::Agent instead of Class AgentVector_Agent
Prodvides a utility method to cleanup after flamegpu. Currently for the only implementation (CUDA) this resets all devices.
Utility namespace for handling of NVTX profiling markers/ranges, uses if constexpr to avoid runtime cost when disabled
FLAMEGPU_USE_NVTX is defined via CMake to set the member constexpr
Template Function flamegpu::agent_function_condition_wrapper