Namespace flamegpu

Detailed Description

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:// 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

Macro FLAMEGPU_USE_NVTX is defined via CMake to set the member constexpr