Open topic with navigation
The core NVTX API is defined in file
nvToolsExt.h, whereas CUDA-specific extensions to the NVTX interface are defined in
nvToolsExtCudaRt.h. On Linux the NVTX shared library is called
libnvToolsExt.so and on Mac OSX the shared library is called
libnvToolsExt.dylib. On Windows the library (.lib) and runtime components (.dll) are named
All NVTX API functions start with an nvtx name prefix and may end with one out of the three suffixes: A, W, or Ex. NVTX functions with these suffixes exist in multiple variants, performing the same core functionality with different parameter encodings. Depending on the version of the NVTX library, available encodings may include ASCII (A), Unicode (W), or event structure (Ex).
The CUDA implementation of NVTX only implements the ASCII (A) and event structure (Ex) variants of the API, the Unicode (W) versions are not supported and have no effect when called.
Some of the NVTX functions are defined to have return values. For example, the
nvtxRangeStart() function returns a unique range identifier and
nvtxRangePush() function outputs the current stack level. It is recommended not to use the returned values as part of conditional code in the instrumented application. The returned values can differ between various implementations of the NVTX library and, consequently, having added dependencies on the return values might work with one tool, but may fail with another.
NVIDIA® GameWorks™ Documentation Rev. 1.0.200608 ©2014-2020. NVIDIA Corporation. All Rights Reserved.