On Linux, if you have /path/to/cuda-10.0/include in your include path, you can #include <nvToolsExt.h>, and life is good. However, a collaborator using Windows has just told me that (with CUDA 10), the nvtx-related include files are in a subdirectory of the general CUDA include directory, named nvtx3.
I don't use Windows, but I can't believe he got it wrong, so:
- How come there's a different include directory structure?
- Why has this happened with CUDA 10 as opposed to previous versions?
To quote the the How do I use NVTX in my code? section of the README in the NVTX repository:
Another section of interest is Get NVTX with the CUDA Toolkit:
It seems like the existence of the
nvtx3subdirectory is not Windows-specific. Maybe the Windows version of the CUDA toolkit your colleague was using did not include those older versions for backwards compatibility or he ignored them.