Skip to content

Grid incompatible with CUDA 13 #487

@mbr-phys

Description

@mbr-phys

Describe the issue:

I was compiling Grid (commit 7cd3f21) on JURECA (NVIDIA A100 compute nodes / NVIDIA Quadro RTX8000 login nodes) where the default CUDA version is now 13.0.

This leads to the compilation error:

[black2@jrlogin02 build]$ make -j 32
Making all in Grid
make[1]: Entering directory '/p/project1/paj2522/software/Grid-develop-2026-01-23/Grid/build/Grid'
cp version-cache Version.h
make  all-am
make[2]: Entering directory '/p/project1/paj2522/software/Grid-develop-2026-01-23/Grid/build/Grid'
  CXX      util/Init.o
  CXX      util/FlightRecorder.o
  CXX      qcd/gparity/GparityFlavour.o
  CXX      qcd/utils/SpaceTimeGrid.o
  CXX      qcd/spin/Gamma.o
  CXX      qcd/action/gauge/Gauge.o
  CXX      qcd/action/fermion/instantiation/StaggeredKernelsInstantiation.o
  CXX      qcd/action/fermion/instantiation/WilsonKernelsInstantiation.o
/p/project1/paj2522/software/Grid-develop-2026-01-23/Grid/Grid/lattice/Lattice_slicesum_core.h(61): error: namespace "cub" has no member "Sum"
    cudaError_t gpuErr = cub::DeviceSegmentedReduce::Reduce(temp_storage_array, temp_storage_bytes, rb_p,d_out, rd, d_offsets, d_offsets+1, ::cub::Sum(), zero_init, computeStream);

Checking the CCCL migration guide (https://nvidia.github.io/cccl/cccl/3.0_migration_guide.html) it appears that now cub::Sum has been removed from the API (already deprecated in CUDA 12.x but still present). The guide suggests using now cuda::std::plus; is this a simple replace or does it require more involved adaptations?

grid.configure.summary.txt

Code example:

Target platform:

[black2@jrlogin02 build]$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Jul_16_07:30:01_PM_PDT_2025
Cuda compilation tools, release 13.0, V13.0.48
Build cuda_13.0.r13.0/compiler.36260728_0

Configure options:

`../configure --prefix=/p/project1/paj2522/software/Grid-develop-2026-01-23/install2 --with-lime=/p/project1/paj2522/software/JURECA --enable-comms=mpi --enable-simd=GPU --enable-shm=nvlink --enable-gen-simd-width=64 --enable-accelerator=cuda --enable-accelerator-cshift --disable-unified --enable-gparity=no --enable-fermion-reps=no --enable-alloc-align=4k CXX=nvcc LDFLAGS=-cudart shared CXXFLAGS=-ccbin mpicxx -gencode arch=compute_80,code=sm_80 -std=c++17 -cudart shared LIBS=-lrt -lmpi -ldl`

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions