NVIDIA Tools Extension¶
NVIDIA Tools Extension (NVTX) is a C-based API for annotating events and ranges in applications. These markers and ranges can be used to increase the usability of the NVIDIA profiling tools.
- For CUDA
>= 10.0
, NVTX version 3 is distributed as a header only library. - For CUDA
< 10.0
, NVTX is distributed as a shared library.
The location of the headers and shared libraries may vary between Operating Systems, and CUDA installation (i.e. CUDA toolkit, PGI compilers or HPC SDK).
The NVIDIA Developer blog contains several posts on using NVTX:
- Generate Custom Application Profile Timelines with NVTX (Jiri Kraus)
- Track MPI Calls In The NVIDIA Visual Profiler (Jeff Larkin)
- Customize CUDA Fortran Profiling with NVTX (Massimiliano Fatica)
Custom CMake find_package
modules can be written to enable use within Cmake e.g. ptheywood/cuda-cmake-NVTX on GitHub