summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-05-04 15:18:21 (GMT)
committerKitware Robot <kwrobot@kitware.com>2022-05-04 15:18:28 (GMT)
commit2045e1eee093e5125f6ade53ebe490a498bb99b4 (patch)
tree9d6b912f4c8eddf997d6940828a7af3c1a9404dc /Modules
parent16e0ccd70f106b2bac93a66cea2f15218fa5998d (diff)
parente8591f1516edffe9fc2ef138e5933a1c9914e9e5 (diff)
downloadCMake-2045e1eee093e5125f6ade53ebe490a498bb99b4.zip
CMake-2045e1eee093e5125f6ade53ebe490a498bb99b4.tar.gz
CMake-2045e1eee093e5125f6ade53ebe490a498bb99b4.tar.bz2
Merge topic 'less_ptx_for_all_all-major_native'
e8591f1516 CUDA: native/all/all-major generates minimal set of ptx code Acked-by: Kitware Robot <kwrobot@kitware.com> Reviewed-by: Raul Tambre <raul@tambre.ee> Merge-request: !7216
Diffstat (limited to 'Modules')
-rw-r--r--Modules/CMakeTestCUDACompiler.cmake1
-rw-r--r--Modules/CUDA/architectures.cmake11
2 files changed, 12 insertions, 0 deletions
diff --git a/Modules/CMakeTestCUDACompiler.cmake b/Modules/CMakeTestCUDACompiler.cmake
index ea07482..853d655 100644
--- a/Modules/CMakeTestCUDACompiler.cmake
+++ b/Modules/CMakeTestCUDACompiler.cmake
@@ -52,6 +52,7 @@ if(CMAKE_CUDA_ABI_COMPILED)
set(CMAKE_CUDA_ARCHITECTURES_NATIVE "${_CUDA_ARCHS_OUTPUT}")
endif()
list(REMOVE_DUPLICATES CMAKE_CUDA_ARCHITECTURES_NATIVE)
+ list(TRANSFORM CMAKE_CUDA_ARCHITECTURES_NATIVE APPEND "-real")
else()
if(NOT _CUDA_ARCHS_RESULT MATCHES "[0-9]+")
set(_CUDA_ARCHS_STATUS " (${_CUDA_ARCHS_RESULT})")
diff --git a/Modules/CUDA/architectures.cmake b/Modules/CUDA/architectures.cmake
index fa3a5a1..79c1252 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)