From 695af87c6fc2a33322fb58ca4252fc3c8571d33b Mon Sep 17 00:00:00 2001 From: Andrey Alekseenko Date: Sun, 1 Jun 2025 00:03:08 +0200 Subject: CUDA/Clang: Fix list of architectures supported by Clang < 20.1 Clang before 20.1 does not recognize sm_100 and newer. Revise: * commit b2251e0deb (CUDA/Clang: Update architectures supported by CUDA 12.8, 2025-02-04, v4.0.2~4^2~1^2) * commit a1b4c30f24 (CUDA: Add CUDA 12.9 new architectures and family syntax, 2025-04-21, v4.0.2~3^2^2) --- Modules/Internal/CMakeCUDAArchitecturesAll.cmake | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Modules/Internal/CMakeCUDAArchitecturesAll.cmake b/Modules/Internal/CMakeCUDAArchitecturesAll.cmake index 97f0c0c..5b396ee 100644 --- a/Modules/Internal/CMakeCUDAArchitecturesAll.cmake +++ b/Modules/Internal/CMakeCUDAArchitecturesAll.cmake @@ -72,15 +72,16 @@ function(cmake_cuda_architectures_all lang lang_var_) endif() if(${lang_var_}TOOLKIT_VERSION VERSION_GREATER_EQUAL 12.9) - if(CMAKE_${lang}_COMPILER_ID STREQUAL "NVIDIA" - OR (CMAKE_${lang}_COMPILER_ID STREQUAL "Clang" AND CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0) - ) + 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(CMAKE_${lang}_COMPILER_ID STREQUAL "NVIDIA" - OR (CMAKE_${lang}_COMPILER_ID STREQUAL "Clang" AND CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0) + OR (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) -- cgit v0.12 From a6aaabbdff7c83a6fd4c5c54b2bafa5a541c776a Mon Sep 17 00:00:00 2001 From: Andrey Alekseenko Date: Mon, 2 Jun 2025 18:34:26 +0200 Subject: CUDA/Clang: Reorder the logic for setting supported archs --- Modules/Internal/CMakeCUDAArchitecturesAll.cmake | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/Modules/Internal/CMakeCUDAArchitecturesAll.cmake b/Modules/Internal/CMakeCUDAArchitecturesAll.cmake index 5b396ee..2e6fc5a 100644 --- a/Modules/Internal/CMakeCUDAArchitecturesAll.cmake +++ b/Modules/Internal/CMakeCUDAArchitecturesAll.cmake @@ -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 -- cgit v0.12 From 33fb4e1a504b5654eb3e64e5701a4e65cbaa024a Mon Sep 17 00:00:00 2001 From: Andrey Alekseenko Date: Mon, 2 Jun 2025 18:35:13 +0200 Subject: CUDA/Clang: Add archs supported by Clang 21 --- Modules/Internal/CMakeCUDAArchitecturesAll.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Modules/Internal/CMakeCUDAArchitecturesAll.cmake b/Modules/Internal/CMakeCUDAArchitecturesAll.cmake index 2e6fc5a..00a709d 100644 --- a/Modules/Internal/CMakeCUDAArchitecturesAll.cmake +++ b/Modules/Internal/CMakeCUDAArchitecturesAll.cmake @@ -86,7 +86,9 @@ function(cmake_cuda_architectures_all lang lang_var_) endif() if(${lang_var_}TOOLKIT_VERSION VERSION_GREATER_EQUAL 12.9) - if(CMAKE_${lang}_COMPILER_ID STREQUAL "NVIDIA") + if(CMAKE_${lang}_COMPILER_ID STREQUAL "NVIDIA" + OR (CMAKE_${lang}_COMPILER_ID STREQUAL "Clang" AND CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL 21.1) + ) list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 103 121) endif() endif() -- cgit v0.12