mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-04 05:10:10 -05:00
CUDA: native/all/all-major generates minimal set of ptx code
Fixes #23459
This commit is contained in:
@@ -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})")
|
||||
|
||||
@@ -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'
|
||||
|
||||
Reference in New Issue
Block a user