Problems installing Gromacs 2025.2 with CUDA 12.9

GROMACS version: 2025.2
GROMACS modification: No
Hello,
i have a problem installing GROMACS 2025.2 under Arch Linux. When i want to setup the cmake command, i get this output:

cmake .. -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON -DGMX_GPU=CUDA -DCUDA_TOOLKIT_ROOT_DIR=/opt/cuda/bin
-- The C compiler identification is GNU 15.1.1
-- The CXX compiler identification is GNU 15.1.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Python3: /usr/bin/python3.13 (found suitable version "3.13.5", minimum required is "3.9") found components: Interpreter Development Development.Module Development.Embed
-- Selected GPU FFT library - cuFFT
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Performing Test CFLAGS_WARN_NO_MISSING_FIELD_INITIALIZERS
-- Performing Test CFLAGS_WARN_NO_MISSING_FIELD_INITIALIZERS - Success
-- Performing Test CFLAGS_EXCESS_PREC
-- Performing Test CFLAGS_EXCESS_PREC - Success
-- Performing Test CFLAGS_COPT
-- Performing Test CFLAGS_COPT - Success
-- Performing Test CFLAGS_NOINLINE
-- Performing Test CFLAGS_NOINLINE - Success
-- Performing Test CXXFLAGS_WARN_NO_MISSING_FIELD_INITIALIZERS
-- Performing Test CXXFLAGS_WARN_NO_MISSING_FIELD_INITIALIZERS - Success
-- Performing Test CXXFLAGS_EXCESS_PREC
-- Performing Test CXXFLAGS_EXCESS_PREC - Success
-- Performing Test CXXFLAGS_COPT
-- Performing Test CXXFLAGS_COPT - Success
-- Performing Test CXXFLAGS_NOINLINE
-- Performing Test CXXFLAGS_NOINLINE - Success
-- Looking for include file unistd.h
-- Looking for include file unistd.h - found
-- Looking for include file pwd.h
-- Looking for include file pwd.h - found
-- Looking for include file dirent.h
-- Looking for include file dirent.h - found
-- Looking for include file time.h
-- Looking for include file time.h - found
-- Looking for include file sys/time.h
-- Looking for include file sys/time.h - found
-- Looking for include file io.h
-- Looking for include file io.h - not found
-- Looking for include file sched.h
-- Looking for include file sched.h - found
-- Looking for include file xmmintrin.h
-- Looking for include file xmmintrin.h - found
-- Looking for gettimeofday
-- Looking for gettimeofday - found
-- Looking for sysconf
-- Looking for sysconf - found
-- Looking for nice
-- Looking for nice - found
-- Looking for fsync
-- Looking for fsync - found
-- Looking for _fileno
-- Looking for _fileno - not found
-- Looking for fileno
-- Looking for fileno - found
-- Looking for _commit
-- Looking for _commit - not found
-- Looking for sigaction
-- Looking for sigaction - found
-- Performing Test HAVE_BUILTIN_CLZ
-- Performing Test HAVE_BUILTIN_CLZ - Success
-- Performing Test HAVE_BUILTIN_CLZLL
-- Performing Test HAVE_BUILTIN_CLZLL - Success
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - found
-- Looking for feenableexcept in m
-- Looking for feenableexcept in m - found
-- Looking for fedisableexcept in m
-- Looking for fedisableexcept in m - found
-- Checking for sched.h GNU affinity API
-- Performing Test sched_affinity_compile
-- Performing Test sched_affinity_compile - Success
-- Looking for include file mm_malloc.h
-- Looking for include file mm_malloc.h - found
-- Looking for include file malloc.h
-- Looking for include file malloc.h - found
-- Checking for _mm_malloc()
-- Checking for _mm_malloc() - supported
-- Looking for posix_memalign
-- Looking for posix_memalign - found
-- Looking for memalign
-- Looking for memalign - not found
-- Torch not found. Neural network potential support will be disabled.
-- Using default binary suffix: ""
-- Using default library suffix: ""
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test TEST_ATOMICS
-- Performing Test TEST_ATOMICS - Success
-- Atomic operations found
-- Performing Test PTHREAD_SETAFFINITY
-- Performing Test PTHREAD_SETAFFINITY - Success
-- Detecting best SIMD instructions for this CPU
-- Checking for GCC x86 inline asm
-- Checking for GCC x86 inline asm - supported
-- Detected build CPU features - aes amd apic avx avx2 clfsh cmov cx8 cx16 f16c fma htt lahf misalignsse mmx msr nonstop_tsc pclmuldq pdpe1gb popcnt pse rdrnd rdtscp sha sse2 sse3 sse4a sse4.1 sse4.2 ssse3
-- Detected build CPU brand - AMD Ryzen 5 5600X 6-Core Processor
-- Detected build CPU family - 25
-- Detected build CPU model - 33
-- Detected best SIMD instructions for this CPU - AVX2_256
-- Performing Test C_mavx2_mfma_FLAG_ACCEPTED
-- Performing Test C_mavx2_mfma_FLAG_ACCEPTED - Success
-- Performing Test C_mavx2_mfma_COMPILE_WORKS
-- Performing Test C_mavx2_mfma_COMPILE_WORKS - Success
-- Performing Test CXX_mavx2_mfma_FLAG_ACCEPTED
-- Performing Test CXX_mavx2_mfma_FLAG_ACCEPTED - Success
-- Performing Test CXX_mavx2_mfma_COMPILE_WORKS
-- Performing Test CXX_mavx2_mfma_COMPILE_WORKS - Success
-- Enabling 256-bit AVX2 SIMD instructions using CXX flags:  -mavx2 -mfma
-- Detecting flags to enable runtime detection of AVX-512 units on newer CPUs
-- Performing Test C_march_skylake_avx512_FLAG_ACCEPTED
-- Performing Test C_march_skylake_avx512_FLAG_ACCEPTED - Success
-- Performing Test C_march_skylake_avx512_COMPILE_WORKS
-- Performing Test C_march_skylake_avx512_COMPILE_WORKS - Success
-- Performing Test CXX_march_skylake_avx512_FLAG_ACCEPTED
-- Performing Test CXX_march_skylake_avx512_FLAG_ACCEPTED - Success
-- Performing Test CXX_march_skylake_avx512_COMPILE_WORKS
-- Performing Test CXX_march_skylake_avx512_COMPILE_WORKS - Success
-- Detecting flags to enable runtime detection of AVX-512 units on newer CPUs -  -march=skylake-avx512
-- Performing Test _Wno_unused_command_line_argument_FLAG_ACCEPTED
-- Performing Test _Wno_unused_command_line_argument_FLAG_ACCEPTED - Success
-- Performing Test _callconv___vectorcall
-- Performing Test _callconv___vectorcall - Failed
-- Performing Test _callconv___regcall
-- Performing Test _callconv___regcall - Failed
-- Performing Test _callconv_ 
-- Performing Test _callconv_  - Success
-- Found CUDAToolkit: /opt/cuda/targets/x86_64-linux/include (found suitable version "12.9.86", minimum required is "12.1")
-- Adding work-around for issue compiling CUDA code with glibc 2.23 string.h
-- Check for working NVCC/C++ compiler combination with nvcc ''
-- Check for working NVCC/C++ compiler combination - works
-- Checking if nvcc accepts flags --generate-code=arch=compute_50,code=sm_50
-- Checking if nvcc accepts flags --generate-code=arch=compute_50,code=sm_50 - No
-- Checking if nvcc accepts flags --generate-code=arch=compute_52,code=sm_52
-- Checking if nvcc accepts flags --generate-code=arch=compute_52,code=sm_52 - No
-- Checking if nvcc accepts flags --generate-code=arch=compute_60,code=sm_60
-- Checking if nvcc accepts flags --generate-code=arch=compute_60,code=sm_60 - No
-- Checking if nvcc accepts flags --generate-code=arch=compute_61,code=sm_61
-- Checking if nvcc accepts flags --generate-code=arch=compute_61,code=sm_61 - No
-- Checking if nvcc accepts flags --generate-code=arch=compute_70,code=sm_70
-- Checking if nvcc accepts flags --generate-code=arch=compute_70,code=sm_70 - No
-- Checking if nvcc accepts flags --generate-code=arch=compute_75,code=sm_75
-- Checking if nvcc accepts flags --generate-code=arch=compute_75,code=sm_75 - No
-- Checking if nvcc accepts flags --generate-code=arch=compute_80,code=sm_80
-- Checking if nvcc accepts flags --generate-code=arch=compute_80,code=sm_80 - No
-- Checking if nvcc accepts flags --generate-code=arch=compute_86,code=sm_86
-- Checking if nvcc accepts flags --generate-code=arch=compute_86,code=sm_86 - No
-- Checking if nvcc accepts flags --generate-code=arch=compute_89,code=sm_89
-- Checking if nvcc accepts flags --generate-code=arch=compute_89,code=sm_89 - No
-- Checking if nvcc accepts flags --generate-code=arch=compute_90,code=sm_90
-- Checking if nvcc accepts flags --generate-code=arch=compute_90,code=sm_90 - No
-- Checking if nvcc accepts flags --generate-code=arch=compute_100,code=sm_100
-- Checking if nvcc accepts flags --generate-code=arch=compute_100,code=sm_100 - No
-- Checking if nvcc accepts flags --generate-code=arch=compute_120,code=sm_120
-- Checking if nvcc accepts flags --generate-code=arch=compute_120,code=sm_120 - No
-- Checking if nvcc accepts flags -Wno-deprecated-gpu-targets
-- Checking if nvcc accepts flags -Wno-deprecated-gpu-targets - No
-- Checking if nvcc accepts flags --generate-code=arch=compute_53,code=compute_53
-- Checking if nvcc accepts flags --generate-code=arch=compute_53,code=compute_53 - No
-- Checking if nvcc accepts flags --generate-code=arch=compute_90,code=compute_90
-- Checking if nvcc accepts flags --generate-code=arch=compute_90,code=compute_90 - No
-- Checking if nvcc accepts flags -use_fast_math
-- Checking if nvcc accepts flags -use_fast_math - No
-- Checking if nvcc accepts flags -Xptxas=-warn-double-usage
-- Checking if nvcc accepts flags -Xptxas=-warn-double-usage - No
-- Checking if nvcc accepts flags -Xptxas=-Werror
-- Checking if nvcc accepts flags -Xptxas=-Werror - No
-- Checking if nvcc accepts flags -diag-suppress=177
-- Checking if nvcc accepts flags -diag-suppress=177 - No
CMake Error at /usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:909 (message):
  Compiling the CUDA compiler identification source file
  "CMakeCUDACompilerId.cu" failed.

  Compiler: /opt/cuda/bin/nvcc

  Build flags:

  Id flags: --keep;--keep-dir;tmp;-ccbin=/usr/bin/c++ -v



  The output was:

  2

  nvcc warning : Support for offline compilation for architectures prior to
  '<compute/sm/lto>_75' will be removed in a future release (Use
  -Wno-deprecated-gpu-targets to suppress warning).

  #$ _NVVM_BRANCH_=nvvm

  #$ _SPACE_=

  #$ _CUDART_=cudart

  #$ _HERE_=/opt/cuda/bin

  #$ _THERE_=/opt/cuda/bin

  #$ _TARGET_SIZE_=

  #$ _TARGET_DIR_=

  #$ _TARGET_DIR_=targets/x86_64-linux

  #$ TOP=/opt/cuda/bin/..

  #$ CICC_PATH=/opt/cuda/bin/../nvvm/bin

  #$ NVVMIR_LIBRARY_DIR=/opt/cuda/bin/../nvvm/libdevice

  #$ LD_LIBRARY_PATH=/opt/cuda/bin/../lib:

  #$
  PATH=/opt/cuda/bin/../nvvm/bin:/opt/cuda/bin:/home/johannesm/.local/share/zinit/polaris/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/cuda/bin:/opt/cuda/nsight_compute:/opt/cuda/nsight_systems/bin:/home/johannesm/.local/share/flatpak/exports/bin:/var/lib/flatpak/exports/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

  #$ INCLUDES="-I/opt/cuda/bin/../targets/x86_64-linux/include"

  #$ LIBRARIES= "-L/opt/cuda/bin/../targets/x86_64-linux/lib/stubs"
  "-L/opt/cuda/bin/../targets/x86_64-linux/lib"

  #$ CUDAFE_FLAGS=

  #$ PTXAS_FLAGS=

  #$ rm tmp/a_dlink.reg.c

  #$ "/usr/bin"/c++ -D__CUDA_ARCH_LIST__=520 -D__NV_LEGACY_LAUNCH -E -x c++
  -D__CUDACC__ -D__NVCC__ "-I/opt/cuda/bin/../targets/x86_64-linux/include"
  -D__CUDACC_VER_MAJOR__=12 -D__CUDACC_VER_MINOR__=9
  -D__CUDACC_VER_BUILD__=86 -D__CUDA_API_VER_MAJOR__=12
  -D__CUDA_API_VER_MINOR__=9 -D__NVCC_DIAG_PRAGMA_SUPPORT__=1
  -D__CUDACC_DEVICE_ATOMIC_BUILTINS__=1 -include "cuda_runtime.h" -m64
  "CMakeCUDACompilerId.cu" -o "tmp/CMakeCUDACompilerId.cpp4.ii"

  #$ cudafe++ --c++17 --gnu_version=150101 --display_error_number
  --orig_src_file_name "CMakeCUDACompilerId.cu" --orig_src_path_name
  "/run/media/johannesm/StableDiffusion/Programme/gromacs-2025.2/build/CMakeFiles/4.0.3-dirty/CompilerIdCUDA/CMakeCUDACompilerId.cu"
  --allow_managed --m64 --parse_templates --gen_c_file_name
  "tmp/CMakeCUDACompilerId.cudafe1.cpp" --stub_file_name
  "CMakeCUDACompilerId.cudafe1.stub.c" --gen_module_id_file
  --module_id_file_name "tmp/CMakeCUDACompilerId.module_id"
  "tmp/CMakeCUDACompilerId.cpp4.ii"

  /usr/include/c++/15.1.1/type_traits(554): error: type name is not allowed

        : public __bool_constant<__is_pointer(_Tp)>
                                              ^



  /usr/include/c++/15.1.1/type_traits(554): error: identifier "__is_pointer"
  is undefined

        : public __bool_constant<__is_pointer(_Tp)>
                                 ^



  /usr/include/c++/15.1.1/type_traits(876): error: type name is not allowed

        : public __bool_constant<__is_volatile(_Tp)>
                                               ^



  /usr/include/c++/15.1.1/type_traits(876): error: identifier "__is_volatile"
  is undefined

        : public __bool_constant<__is_volatile(_Tp)>
                                 ^



  /usr/include/c++/15.1.1/type_traits(1491): error: type name is not allowed

        : public integral_constant<std::size_t, __array_rank(_Tp)> { };
                                                             ^



  /usr/include/c++/15.1.1/type_traits(1491): error: identifier "__array_rank"
  is undefined

        : public integral_constant<std::size_t, __array_rank(_Tp)> { };
                                                ^



  /usr/include/c++/15.1.1/type_traits(1843): error: incomplete type
  "std::__cv_selector<std::__make_unsigned_selector<wchar_t, false,
  true>::__unsigned_type, false, <error-constant>>" (aka
  "std::__cv_selector<unsigned int, false, <error-constant>>") is not allowed

          using __type = typename __match::__type;
                                  ^
            detected during:
              instantiation of class "std::__match_cv_qualifiers<_Qualified, _Unqualified, _IsConst, _IsVol> [with _Qualified=wchar_t, _Unqualified=unsigned int, _IsConst=false, _IsVol=<error-constant>]" at line 1952
              instantiation of class "std::__make_unsigned_selector<_Tp, false, true> [with _Tp=wchar_t]" at line 1963



  /usr/include/c++/15.1.1/type_traits(1843): error: incomplete type
  "std::__cv_selector<std::__make_unsigned_selector<char16_t, false,
  true>::__unsigned_type, false, <error-constant>>" (aka
  "std::__cv_selector<unsigned short, false, <error-constant>>") is not
  allowed

          using __type = typename __match::__type;
                                  ^
            detected during:
              instantiation of class "std::__match_cv_qualifiers<_Qualified, _Unqualified, _IsConst, _IsVol> [with _Qualified=char16_t, _Unqualified=unsigned short, _IsConst=false, _IsVol=<error-constant>]" at line 1952
              instantiation of class "std::__make_unsigned_selector<_Tp, false, true> [with _Tp=char16_t]" at line 1979



  /usr/include/c++/15.1.1/type_traits(1843): error: incomplete type
  "std::__cv_selector<std::__make_unsigned_selector<wchar_t, false,
  true>::__unsigned_type, false, <error-constant>>" (aka
  "std::__cv_selector<unsigned int, false, <error-constant>>") is not allowed

          using __type = typename __match::__type;
                                  ^
            detected during:
              instantiation of class "std::__match_cv_qualifiers<_Qualified, _Unqualified, _IsConst, _IsVol> [with _Qualified=char32_t, _Unqualified=unsigned int, _IsConst=false, _IsVol=<error-constant>]" at line 1952
              instantiation of class "std::__make_unsigned_selector<_Tp, false, true> [with _Tp=char32_t]" at line 1986



  /usr/include/c++/15.1.1/type_traits(1843): error: incomplete type
  "std::__cv_selector<std::__make_unsigned_selector<wchar_t, true,
  false>::__unsigned_type, false, <error-constant>>" is not allowed

          using __type = typename __match::__type;
                                  ^
            detected during:
              instantiation of class "std::__match_cv_qualifiers<_Qualified, _Unqualified, _IsConst, _IsVol> [with _Qualified=wchar_t, _Unqualified=<error-type>, _IsConst=false, _IsVol=<error-constant>]" at line 1914
              instantiation of class "std::__make_unsigned_selector<_Tp, true, false> [with _Tp=wchar_t]" at line 2081
              instantiation of class "std::__make_signed_selector<_Tp, false, true> [with _Tp=wchar_t]" at line 2095



  /usr/include/c++/15.1.1/type_traits(2084): error: incomplete type
  "std::__make_signed_selector<std::__make_signed_selector<wchar_t, false,
  true>::__unsigned_type, false, <error-constant>>" is not allowed

          using __type = typename __make_signed_selector<__unsigned_type>::__type;
                                  ^
            detected during instantiation of class "std::__make_signed_selector<_Tp, false, true> [with _Tp=wchar_t]" at line 2095



  /usr/include/c++/15.1.1/type_traits(1843): error: incomplete type
  "std::__cv_selector<std::__make_unsigned_selector<wchar_t, true,
  false>::__unsigned_type, false, <error-constant>>" is not allowed

          using __type = typename __match::__type;
                                  ^
            detected during:
              instantiation of class "std::__match_cv_qualifiers<_Qualified, _Unqualified, _IsConst, _IsVol> [with _Qualified=char16_t, _Unqualified=<error-type>, _IsConst=false, _IsVol=<error-constant>]" at line 1914
              instantiation of class "std::__make_unsigned_selector<_Tp, true, false> [with _Tp=char16_t]" at line 2081
              instantiation of class "std::__make_signed_selector<_Tp, false, true> [with _Tp=char16_t]" at line 2111



  /usr/include/c++/15.1.1/type_traits(2084): error: incomplete type
  "std::__make_signed_selector<std::__make_signed_selector<wchar_t, false,
  true>::__unsigned_type, false, <error-constant>>" is not allowed

          using __type = typename __make_signed_selector<__unsigned_type>::__type;
                                  ^
            detected during instantiation of class "std::__make_signed_selector<_Tp, false, true> [with _Tp=char16_t]" at line 2111



  /usr/include/c++/15.1.1/type_traits(1843): error: incomplete type
  "std::__cv_selector<std::__make_unsigned_selector<wchar_t, true,
  false>::__unsigned_type, false, <error-constant>>" is not allowed

          using __type = typename __match::__type;
                                  ^
            detected during:
              instantiation of class "std::__match_cv_qualifiers<_Qualified, _Unqualified, _IsConst, _IsVol> [with _Qualified=char32_t, _Unqualified=<error-type>, _IsConst=false, _IsVol=<error-constant>]" at line 1914
              instantiation of class "std::__make_unsigned_selector<_Tp, true, false> [with _Tp=char32_t]" at line 2081
              instantiation of class "std::__make_signed_selector<_Tp, false, true> [with _Tp=char32_t]" at line 2118



  /usr/include/c++/15.1.1/type_traits(2084): error: incomplete type
  "std::__make_signed_selector<std::__make_signed_selector<wchar_t, false,
  true>::__unsigned_type, false, <error-constant>>" is not allowed

          using __type = typename __make_signed_selector<__unsigned_type>::__type;
                                  ^
            detected during instantiation of class "std::__make_signed_selector<_Tp, false, true> [with _Tp=char32_t]" at line 2118



  /usr/include/c++/15.1.1/type_traits(3302): error: type name is not allowed

        : public __bool_constant<__is_invocable(_Fn, _ArgTypes...)>
                                                ^



  /usr/include/c++/15.1.1/type_traits(3302): error: type name is not allowed

        : public __bool_constant<__is_invocable(_Fn, _ArgTypes...)>
                                                     ^



  /usr/include/c++/15.1.1/type_traits(3332): error: type name is not allowed

        : public __bool_constant<__is_nothrow_invocable(_Fn, _ArgTypes...)>
                                                        ^



  /usr/include/c++/15.1.1/type_traits(3332): error: type name is not allowed

        : public __bool_constant<__is_nothrow_invocable(_Fn, _ArgTypes...)>
                                                             ^



  /usr/include/c++/15.1.1/type_traits(3408): error: type name is not allowed

      inline constexpr bool is_pointer_v = __is_pointer(_Tp);
                                                        ^



  /usr/include/c++/15.1.1/type_traits(3521): error: type name is not allowed

      inline constexpr bool is_volatile_v = __is_volatile(_Tp);
                                                          ^



  /usr/include/c++/15.1.1/type_traits(3663): error: type name is not allowed

      inline constexpr size_t rank_v = __array_rank(_Tp);
                                                    ^



  /usr/include/c++/15.1.1/bits/stl_algobase.h(1239): error: type name is not
  allowed

        || __is_pointer(_ValueType1)
                        ^



  /usr/include/c++/15.1.1/bits/stl_algobase.h(1412): error: type name is not
  allowed

      && __is_pointer(_II1) && __is_pointer(_II2)
                      ^



  /usr/include/c++/15.1.1/bits/stl_algobase.h(1412): error: type name is not
  allowed

      && __is_pointer(_II1) && __is_pointer(_II2)
                                            ^



  25 errors detected in the compilation of "CMakeCUDACompilerId.cu".

  # --error 0x2 --





Call Stack (most recent call first):
  /usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:8 (CMAKE_DETERMINE_COMPILER_ID_BUILD)
  /usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:53 (__determine_compiler_id_test)
  /usr/share/cmake/Modules/CMakeDetermineCUDACompiler.cmake:139 (CMAKE_DETERMINE_COMPILER_ID)
  cmake/gmxManageCuda.cmake:118 (enable_language)
  CMakeLists.txt:717 (include)


-- Configuring incomplete, errors occurred!

I have found that there is problems between my glibc version (2.41) and CUDA 12.x ("error: exception specification is incompatible" for cospi/sinpi/cospif/sinpif with glibc-2.41 - #3 by stefantalpalaru - CUDA NVCC Compiler - NVIDIA Developer Forums), but i think the fix is already applied to CUDA 12.9? I am a bit confused, since the forum posts contradict themselves. I tried removing the added noexcept(true) but this didn’t do anything.

Also i tried to specify the CUDA target for my RTX 4070 SUPER.

❯ cmake .. -DGMX_BUILD_OWN_FFTW=ON -DGMX_GPU=CUDA -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DGMX_CUDA_TARGET_SM="89" -DGMX_CUDA_TARGET_COMPUTE="89"
-- The C compiler identification is GNU 15.1.1
-- The CXX compiler identification is GNU 15.1.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Python3: /usr/bin/python3.13 (found suitable version "3.13.5", minimum required is "3.9") found components: Interpreter Development Development.Module Development.Embed
-- Selected GPU FFT library - cuFFT
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Performing Test CFLAGS_WARN_NO_MISSING_FIELD_INITIALIZERS
-- Performing Test CFLAGS_WARN_NO_MISSING_FIELD_INITIALIZERS - Success
-- Performing Test CFLAGS_EXCESS_PREC
-- Performing Test CFLAGS_EXCESS_PREC - Success
-- Performing Test CFLAGS_COPT
-- Performing Test CFLAGS_COPT - Success
-- Performing Test CFLAGS_NOINLINE
-- Performing Test CFLAGS_NOINLINE - Success
-- Performing Test CXXFLAGS_WARN_NO_MISSING_FIELD_INITIALIZERS
-- Performing Test CXXFLAGS_WARN_NO_MISSING_FIELD_INITIALIZERS - Success
-- Performing Test CXXFLAGS_EXCESS_PREC
-- Performing Test CXXFLAGS_EXCESS_PREC - Success
-- Performing Test CXXFLAGS_COPT
-- Performing Test CXXFLAGS_COPT - Success
-- Performing Test CXXFLAGS_NOINLINE
-- Performing Test CXXFLAGS_NOINLINE - Success
-- Looking for include file unistd.h
-- Looking for include file unistd.h - found
-- Looking for include file pwd.h
-- Looking for include file pwd.h - found
-- Looking for include file dirent.h
-- Looking for include file dirent.h - found
-- Looking for include file time.h
-- Looking for include file time.h - found
-- Looking for include file sys/time.h
-- Looking for include file sys/time.h - found
-- Looking for include file io.h
-- Looking for include file io.h - not found
-- Looking for include file sched.h
-- Looking for include file sched.h - found
-- Looking for include file xmmintrin.h
-- Looking for include file xmmintrin.h - found
-- Looking for gettimeofday
-- Looking for gettimeofday - found
-- Looking for sysconf
-- Looking for sysconf - found
-- Looking for nice
-- Looking for nice - found
-- Looking for fsync
-- Looking for fsync - found
-- Looking for _fileno
-- Looking for _fileno - not found
-- Looking for fileno
-- Looking for fileno - found
-- Looking for _commit
-- Looking for _commit - not found
-- Looking for sigaction
-- Looking for sigaction - found
-- Performing Test HAVE_BUILTIN_CLZ
-- Performing Test HAVE_BUILTIN_CLZ - Success
-- Performing Test HAVE_BUILTIN_CLZLL
-- Performing Test HAVE_BUILTIN_CLZLL - Success
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - found
-- Looking for feenableexcept in m
-- Looking for feenableexcept in m - found
-- Looking for fedisableexcept in m
-- Looking for fedisableexcept in m - found
-- Checking for sched.h GNU affinity API
-- Performing Test sched_affinity_compile
-- Performing Test sched_affinity_compile - Success
-- Looking for include file mm_malloc.h
-- Looking for include file mm_malloc.h - found
-- Looking for include file malloc.h
-- Looking for include file malloc.h - found
-- Checking for _mm_malloc()
-- Checking for _mm_malloc() - supported
-- Looking for posix_memalign
-- Looking for posix_memalign - found
-- Looking for memalign
-- Looking for memalign - not found
-- Torch not found. Neural network potential support will be disabled.
-- Using default binary suffix: ""
-- Using default library suffix: ""
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test TEST_ATOMICS
-- Performing Test TEST_ATOMICS - Success
-- Atomic operations found
-- Performing Test PTHREAD_SETAFFINITY
-- Performing Test PTHREAD_SETAFFINITY - Success
-- Detecting best SIMD instructions for this CPU
-- Checking for GCC x86 inline asm
-- Checking for GCC x86 inline asm - supported
-- Detected build CPU features - aes amd apic avx avx2 clfsh cmov cx8 cx16 f16c fma htt lahf misalignsse mmx msr nonstop_tsc pclmuldq pdpe1gb popcnt pse rdrnd rdtscp sha sse2 sse3 sse4a sse4.1 sse4.2 ssse3
-- Detected build CPU brand - AMD Ryzen 5 5600X 6-Core Processor
-- Detected build CPU family - 25
-- Detected build CPU model - 33
-- Detected best SIMD instructions for this CPU - AVX2_256
-- Performing Test C_mavx2_mfma_FLAG_ACCEPTED
-- Performing Test C_mavx2_mfma_FLAG_ACCEPTED - Success
-- Performing Test C_mavx2_mfma_COMPILE_WORKS
-- Performing Test C_mavx2_mfma_COMPILE_WORKS - Success
-- Performing Test CXX_mavx2_mfma_FLAG_ACCEPTED
-- Performing Test CXX_mavx2_mfma_FLAG_ACCEPTED - Success
-- Performing Test CXX_mavx2_mfma_COMPILE_WORKS
-- Performing Test CXX_mavx2_mfma_COMPILE_WORKS - Success
-- Enabling 256-bit AVX2 SIMD instructions using CXX flags:  -mavx2 -mfma
-- Detecting flags to enable runtime detection of AVX-512 units on newer CPUs
-- Performing Test C_march_skylake_avx512_FLAG_ACCEPTED
-- Performing Test C_march_skylake_avx512_FLAG_ACCEPTED - Success
-- Performing Test C_march_skylake_avx512_COMPILE_WORKS
-- Performing Test C_march_skylake_avx512_COMPILE_WORKS - Success
-- Performing Test CXX_march_skylake_avx512_FLAG_ACCEPTED
-- Performing Test CXX_march_skylake_avx512_FLAG_ACCEPTED - Success
-- Performing Test CXX_march_skylake_avx512_COMPILE_WORKS
-- Performing Test CXX_march_skylake_avx512_COMPILE_WORKS - Success
-- Detecting flags to enable runtime detection of AVX-512 units on newer CPUs -  -march=skylake-avx512
-- Performing Test _Wno_unused_command_line_argument_FLAG_ACCEPTED
-- Performing Test _Wno_unused_command_line_argument_FLAG_ACCEPTED - Success
-- Performing Test _callconv___vectorcall
-- Performing Test _callconv___vectorcall - Failed
-- Performing Test _callconv___regcall
-- Performing Test _callconv___regcall - Failed
-- Performing Test _callconv_ 
-- Performing Test _callconv_  - Success
-- Found CUDAToolkit: /opt/cuda/targets/x86_64-linux/include (found suitable version "12.9.86", minimum required is "12.1")
-- Adding work-around for issue compiling CUDA code with glibc 2.23 string.h
-- Check for working NVCC/C++ compiler combination with nvcc ''
-- Check for working NVCC/C++ compiler combination - works
-- Checking if nvcc accepts flags --generate-code=arch=compute_89,code=sm_89
-- Checking if nvcc accepts flags --generate-code=arch=compute_89,code=sm_89 - No
CMake Error at cmake/gmxManageNvccConfig.cmake:174 (message):
  Your choice of 89 in GMX_CUDA_TARGET_SM was not accepted by nvcc, please
  choose a target that it accepts
Call Stack (most recent call first):
  cmake/gmxManageCuda.cmake:112 (include)
  CMakeLists.txt:717 (include)

– Configuring incomplete, errors occurred!

I hope anyone can help me, thank you in advance!

Close enough, the problem seems to be with C++ standard library, not with glibc (which is a C standard library).

CUDA 12.9 supports only GCC 6.x-14.x, and you have GCC 15 (and the corresponding C++ standard library) installed. Can you downgrade gcc/g++/libstdc++?

Thank you very much for the insight! I had gcc/g++ 14.3.1 installed as a separate binary already and i could just specify it in the cmake command.

I am documenting my cmake command for my specific version if anyone else also has this issue.

cmake .. -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON -DGMX_GPU=CUDA -DCMAKE_C_COMPILER=gcc-14 -DCMAKE_CXX_COMPILER=g++-14

Now GROMACS is compiling fine and passed all tests.

Best,
Johannes

1 Like