diff options
author | Brad King <brad.king@kitware.com> | 2023-09-15 14:39:16 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-09-21 19:34:27 (GMT) |
commit | d08b7f3cdab24a21b3da3c43b6d0d9f256f76f77 (patch) | |
tree | 4eb136c3490c9c15bf6758a5071a09d4bc46eca3 /Modules | |
parent | 7b2aec0fefe09b96583f8efc3f3df37a6caf15ce (diff) | |
download | CMake-d08b7f3cdab24a21b3da3c43b6d0d9f256f76f77.zip CMake-d08b7f3cdab24a21b3da3c43b6d0d9f256f76f77.tar.gz CMake-d08b7f3cdab24a21b3da3c43b6d0d9f256f76f77.tar.bz2 |
CUDA: Clarify compiler-specific logic in architectures table
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/CUDA/architectures.cmake | 51 |
1 files changed, 32 insertions, 19 deletions
diff --git a/Modules/CUDA/architectures.cmake b/Modules/CUDA/architectures.cmake index 7d6a6e0..87cbaaf 100644 --- a/Modules/CUDA/architectures.cmake +++ b/Modules/CUDA/architectures.cmake @@ -11,7 +11,9 @@ if(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 8.0) endif() if(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 9.0) - if(NOT CMAKE_CUDA_COMPILER_ID STREQUAL "Clang" OR CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 6.0) + if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA" + OR (CMAKE_CUDA_COMPILER_ID STREQUAL "Clang" AND CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 6.0) + ) list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 70 72) list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 70) endif() @@ -20,13 +22,18 @@ if(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 9.0) list(REMOVE_ITEM CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 20) endif() -if(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 10.0 - AND (NOT CMAKE_CUDA_COMPILER_ID STREQUAL "Clang" OR CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 8.0)) - list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 75) +if(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 10.0) + if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA" + OR (CMAKE_CUDA_COMPILER_ID STREQUAL "Clang" AND CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 8.0) + ) + list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 75) + endif() endif() if(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 11.0) - if(NOT CMAKE_CUDA_COMPILER_ID STREQUAL "Clang" OR CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 11.0) + if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA" + OR (CMAKE_CUDA_COMPILER_ID STREQUAL "Clang" AND CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 11.0) + ) list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 80) list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 80) endif() @@ -35,26 +42,32 @@ if(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 11.0) list(REMOVE_ITEM CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 30) endif() -if(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 11.1 - AND (NOT CMAKE_CUDA_COMPILER_ID STREQUAL "Clang" OR CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 13.0)) - list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 86) +if(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 11.1) + if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA" + OR (CMAKE_CUDA_COMPILER_ID STREQUAL "Clang" AND CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 13.0) + ) + list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 86) + endif() endif() -if(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 11.4 - AND (NOT CMAKE_CUDA_COMPILER_ID STREQUAL "Clang")) - list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 87) +if(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 11.4) + if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA") + list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 87) + endif() endif() -if(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 11.8 - AND (NOT CMAKE_CUDA_COMPILER_ID STREQUAL "Clang")) - list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 89 90) - list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 90) +if(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 11.8) + if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA") + list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 89 90) + list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 90) + endif() endif() -if(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 12.0 - AND (NOT CMAKE_CUDA_COMPILER_ID STREQUAL "Clang")) - list(REMOVE_ITEM CMAKE_CUDA_ARCHITECTURES_ALL 35 37) - list(REMOVE_ITEM CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 35) +if(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 12.0) + if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA") + list(REMOVE_ITEM CMAKE_CUDA_ARCHITECTURES_ALL 35 37) + list(REMOVE_ITEM CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 35) + endif() endif() # only generate jit code for the newest arch for all/all-major |