CUDA: native/all/all-major generates minimal set of ptx code

Fixes #23459
This commit is contained in:
Robert Maynard
2022-04-27 14:49:50 -04:00
parent e0dbca93aa
commit e8591f1516
7 changed files with 25 additions and 12 deletions
+1
View File
@@ -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})")
+11
View File
@@ -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)
@@ -10,6 +10,7 @@ function(verify_output flag)
string(REPLACE "-" "_" architectures "${flag}")
string(TOUPPER "${architectures}" architectures)
set(architectures "${CMAKE_CUDA_ARCHITECTURES_${architectures}}")
list(TRANSFORM architectures REPLACE "-real" "")
if(CMAKE_CUDA_COMPILER_ID STREQUAL "Clang")
set(match_regex "-target-cpu sm_([0-9]+)")
@@ -1,4 +1,4 @@
-- CMAKE_CUDA_ARCHITECTURES='all-major'
-- CMAKE_CUDA_ARCHITECTURES_ALL='[0-9;]+'
-- CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR='[0-9;]+'
-- CMAKE_CUDA_ARCHITECTURES_NATIVE='[0-9;]+'
-- CMAKE_CUDA_ARCHITECTURES_ALL='([0-9]+-real;)+[0-9]+'
-- CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR='([0-9]+-real;)+[0-9]+'
-- CMAKE_CUDA_ARCHITECTURES_NATIVE='([0-9]+-real;)*[0-9]+-real'
@@ -1,4 +1,4 @@
-- CMAKE_CUDA_ARCHITECTURES='all'
-- CMAKE_CUDA_ARCHITECTURES_ALL='[0-9;]+'
-- CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR='[0-9;]+'
-- CMAKE_CUDA_ARCHITECTURES_NATIVE='[0-9;]+'
-- CMAKE_CUDA_ARCHITECTURES_ALL='([0-9]+-real;)+[0-9]+'
-- CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR='([0-9]+-real;)+[0-9]+'
-- CMAKE_CUDA_ARCHITECTURES_NATIVE='([0-9]+-real;)*[0-9]+-real'
@@ -1,4 +1,4 @@
-- CMAKE_CUDA_ARCHITECTURES='native'
-- CMAKE_CUDA_ARCHITECTURES_ALL='[0-9;]+'
-- CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR='[0-9;]+'
-- CMAKE_CUDA_ARCHITECTURES_NATIVE='[0-9;]+'
-- CMAKE_CUDA_ARCHITECTURES_ALL='([0-9]+-real;)+[0-9]+'
-- CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR='([0-9]+-real;)+[0-9]+'
-- CMAKE_CUDA_ARCHITECTURES_NATIVE='([0-9]+-real;)*[0-9]+-real'
@@ -1,4 +1,4 @@
-- CMAKE_CUDA_ARCHITECTURES='[0-9]+-real;[0-9]+-virtual;'
-- CMAKE_CUDA_ARCHITECTURES_ALL='[0-9;]+'
-- CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR='[0-9;]+'
-- CMAKE_CUDA_ARCHITECTURES_NATIVE='[0-9;]+'
-- CMAKE_CUDA_ARCHITECTURES_ALL='([0-9]+-real;)+[0-9]+'
-- CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR='([0-9]+-real;)+[0-9]+'
-- CMAKE_CUDA_ARCHITECTURES_NATIVE='([0-9]+-real;)*[0-9]+-real'