Skip to content

Updates to work with CUDA >=12.9#40

Open
prateekchawla168 wants to merge 9 commits intoFZJ-JSC:mainfrom
prateekchawla168:03-multi-gpu
Open

Updates to work with CUDA >=12.9#40
prateekchawla168 wants to merge 9 commits intoFZJ-JSC:mainfrom
prateekchawla168:03-multi-gpu

Conversation

@prateekchawla168
Copy link
Copy Markdown

@prateekchawla168 prateekchawla168 commented Mar 24, 2026

Updated files:

  • Makefile.in
  • jacobi.cu
    Across all folders -> .master, solutions (/advanced), tasks

Changes:

  • Add $(CUDA_HOME)/include to NVCC flags (For the nvtx3/nvToolsExt.h header)
  • Remove nvToolsExt from NVCC_LDFLAGS (no longer supported in CUDA 13.x) and NVCC_FLAGS
  • Update the include in jacobi.cu to reflect the new library structure
  • Update to use C++17 (required for Thrust)

Signed-off-by: Prateek Chawla <p.chawla@fz-juelich.de>
Signed-off-by: Prateek Chawla <p.chawla@fz-juelich.de>
@AndiH
Copy link
Copy Markdown
Member

AndiH commented Mar 25, 2026

Looks good to me! @mhrywniak could you have a second look?

@AndiH AndiH requested a review from mhrywniak March 25, 2026 16:41
Signed-off-by: Prateek Chawla <p.chawla@fz-juelich.de>
Signed-off-by: Prateek Chawla <p.chawla@fz-juelich.de>
@mhrywniak
Copy link
Copy Markdown
Collaborator

Generally replacing the include line is the correct fix, i.e. #include <nvToolsExt.h> to #include <nvtx3/nvToolsExt.h>.

I think the other .cu files should be updated as well then:

tutorial-multi-gpu git:(main) git grep nvToolsExt.h | grep master
03-H_Multi_GPU_Parallelization/.master/jacobi.cu:#include <nvToolsExt.h>
06-H_Overlap_Communication_and_Computation_MPI/.master/jacobi.cpp:#include <nvToolsExt.h>
08-H_NCCL_NVSHMEM/.master/NCCL/jacobi.cpp:#include <nvToolsExt.h>
08-H_NCCL_NVSHMEM/.master/NVSHMEM/jacobi.cu:#include <nvToolsExt.h>
10-H_CUDA_Graphs_and_Device-initiated_Communication_with_NVSHMEM/.master/Device-initiated_Communication_with_NVSHMEM/jacobi.cu:#include <nvToolsExt.h>
10-H_CUDA_Graphs_and_Device-initiated_Communication_with_NVSHMEM/.master/Using_CUDA_Graphs/jacobi.cpp:#include <nvToolsExt.h>

I'm only listing the ones in the .master directory as the others are autogenerated.

A small correction: The deprecation happened in CUDA 12.9 already, , see also https://docs.nvidia.com/cuda/archive/12.9.1/cuda-toolkit-release-notes/index.html#id3

I think this just hasn't surfaced before as we never ran the tutorial with CUDA > 12.6 (afaict from git log .etc/common-env/modules.sh).

So I'd request the following additional changes:

  • Update other .cu files and ensure the regenerated examples from the .master folder compile/run correctly (see snippet above)
  • Update PR/commit tile to use CUDA 12.9, as that's what should break already
  • Check that the additional include directory to NVCC is necessary - I think it should be automatically in the cpath and no additional -I flag necessary

@AndiH
Copy link
Copy Markdown
Member

AndiH commented Mar 30, 2026

I think, @prateekchawla168 is making individual merge request per directory :).

@mhrywniak
Copy link
Copy Markdown
Collaborator

mhrywniak commented Mar 30, 2026

I think it's better to have it consolidated, would ask to combine those into one since it's the same structural change and feedback would need to be duplicated in all the reviews.

updates to work with cuda 12.9+
changes to accomodate for cuda 12.9+
@prateekchawla168 prateekchawla168 changed the title Updates to work with CUDA 13.x Updates to work with CUDA >=12.9 Apr 8, 2026
Signed-off-by: Prateek Chawla <p.chawla@fz-juelich.de>
Signed-off-by: Prateek Chawla <p.chawla@fz-juelich.de>
Signed-off-by: Prateek Chawla <p.chawla@fz-juelich.de>
@prateekchawla168
Copy link
Copy Markdown
Author

Quick summary of changes:

  • updated all .cu files to use nvtx3/nvToolsExt.h headers
  • remove link to nvtoolsext (it is header-only now)
  • changed NVSHMEM linker flags to use dynamic linking (the static lib is not available)
  • changed c++ standard to 17 (so Thrust doesn't complain)

The repo now works with CUDA 13.

@AndiH
Copy link
Copy Markdown
Member

AndiH commented Apr 9, 2026

Thanks!

Copy link
Copy Markdown

@adel-dabah adel-dabah left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All changes make sense. -I$(CUDA_HOME)/include isn’t needed in most Makefiles, but it doesn’t hurt either. Everything looks good to me!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants