summaryrefslogtreecommitdiff
path: root/Modules/CUDA
diff options
context:
space:
mode:
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)