`CMAKE_CUDA_ARCHITECTURES_NATIVE` includes versions not present in `CMAKE_CUDA_ARCHITECTURES_ALL`
I have 2 GPUs:
- device 0: NVIDIA TITAN X (Pascal), compute capability 6.1
- device 1: Quadro K4200, compute capability 3.0
minimal example:
# CMakeLists.txt
cmake_minimum_required(VERSION 3.24 FATAL_ERROR) # actually using 3.26.3
if("${CMAKE_CUDA_ARCHITECTURES}" STREQUAL "")
set(CMAKE_CUDA_ARCHITECTURES native CACHE STRING "CUDA architectures" FORCE)
endif()
cmake_policy(SET CMP0104 NEW) # CMAKE_CUDA_ARCHITECTURES
find_package(CUDAToolkit REQUIRED)
enable_language(CUDA)
message(STATUS "CMAKE_CUDA_ARCHITECTURES (user specified): ${CMAKE_CUDA_ARCHITECTURES}")
message(STATUS "CMAKE_CUDA_COMPILER_TOOLKIT_VERSION: ${CMAKE_CUDA_COMPILER_TOOLKIT_VERSION}")
message(STATUS "CMAKE_CUDA_ARCHITECTURES_ALL: ${CMAKE_CUDA_ARCHITECTURES_ALL}")
message(STATUS "CMAKE_CUDA_ARCHITECTURES_NATIVE: ${CMAKE_CUDA_ARCHITECTURES_NATIVE}")
add_executable(test "${CMAKE_ROOT}/Modules/CMakeCUDACompilerABI.cu")
error:
$ cmake . && cmake --build . && ./test
-- CMAKE_CUDA_ARCHITECTURES (user specified): native
-- CMAKE_CUDA_COMPILER_TOOLKIT_VERSION: 11.2.152
-- CMAKE_CUDA_ARCHITECTURES_ALL: 35-real;37-real;50-real;52-real;53-real;60-real;61-real;62-real;70-real;72-real;75-real;80-real;86
-- CMAKE_CUDA_ARCHITECTURES_NATIVE: 61-real;30-real
...
nvcc fatal : Unsupported gpu architecture 'compute_30'
expected:
-- CMAKE_CUDA_ARCHITECTURES_NATIVE: 61-real
...
[100%] Built target test
61;30
related: !7074 (merged)
Edited by Casper da Costa-Luis