summaryrefslogtreecommitdiff
path: root/Modules/CUDA
diff options
context:
space:
mode:
authorRobert Maynard <rmaynard@nvidia.com>2022-04-27 14:49:50 -0400
committerRobert Maynard <rmaynard@nvidia.com>2022-05-03 11:52:23 -0400
commite8591f1516edffe9fc2ef138e5933a1c9914e9e5 (patch)
tree48291e9460af4a2bd6179b18685161ac23757385 /Modules/CUDA
parente0dbca93aae6b01f8b239d346a0bc99d2ca2473e (diff)
downloadcmake-e8591f1516edffe9fc2ef138e5933a1c9914e9e5.tar.gz
CUDA: native/all/all-major generates minimal set of ptx code
Fixes #23459
Diffstat (limited to 'Modules/CUDA')
-rw-r--r--Modules/CUDA/architectures.cmake11
1 files changed, 11 insertions, 0 deletions
diff --git a/Modules/CUDA/architectures.cmake b/Modules/CUDA/architectures.cmake
index fa3a5a178d..79c1252711 100644
--- a/Modules/CUDA/architectures.cmake
+++ b/Modules/CUDA/architectures.cmake
@@ -44,3 +44,14 @@ 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)
endif()
+
+# only generate jit code for the newest arch for all/all-major
+list(POP_BACK CMAKE_CUDA_ARCHITECTURES_ALL _latest_arch)
+list(TRANSFORM CMAKE_CUDA_ARCHITECTURES_ALL APPEND "-real")
+list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL ${_latest_arch})
+
+list(POP_BACK CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR _latest_arch)
+list(TRANSFORM CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR APPEND "-real")
+list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR ${_latest_arch})
+
+unset(_latest_arch)