CUDA/Clang: Reorder the logic for setting supported archs

This commit is contained in:
Andrey Alekseenko
2025-06-02 18:34:26 +02:00
parent 695af87c6f
commit a6aaabbdff

View File

@@ -71,15 +71,12 @@ function(cmake_cuda_architectures_all lang lang_var_)
endif()
endif()
if(${lang_var_}TOOLKIT_VERSION VERSION_GREATER_EQUAL 12.9)
if(CMAKE_${lang}_COMPILER_ID STREQUAL "NVIDIA")
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 100 101 103 120 121)
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 100 120)
elseif(CMAKE_${lang}_COMPILER_ID STREQUAL "Clang" AND CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL 20.1)
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 100 101 120)
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 100 120)
endif()
elseif(${lang_var_}TOOLKIT_VERSION VERSION_GREATER_EQUAL 12.8)
if(${lang_var_}TOOLKIT_VERSION VERSION_GREATER_EQUAL 12.0)
list(REMOVE_ITEM CMAKE_CUDA_ARCHITECTURES_ALL 35 37)
list(REMOVE_ITEM CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 35)
endif()
if(${lang_var_}TOOLKIT_VERSION VERSION_GREATER_EQUAL 12.8)
if(CMAKE_${lang}_COMPILER_ID STREQUAL "NVIDIA"
OR (CMAKE_${lang}_COMPILER_ID STREQUAL "Clang" AND CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL 20.1)
)
@@ -88,9 +85,10 @@ function(cmake_cuda_architectures_all lang lang_var_)
endif()
endif()
if(${lang_var_}TOOLKIT_VERSION VERSION_GREATER_EQUAL 12.0)
list(REMOVE_ITEM CMAKE_CUDA_ARCHITECTURES_ALL 35 37)
list(REMOVE_ITEM CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 35)
if(${lang_var_}TOOLKIT_VERSION VERSION_GREATER_EQUAL 12.9)
if(CMAKE_${lang}_COMPILER_ID STREQUAL "NVIDIA")
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 103 121)
endif()
endif()
# only generate jit code for the newest arch for all/all-major