mirror of
https://github.com/Kitware/CMake.git
synced 2026-08-03 06:10:28 +00:00
Merge topic 'cuda-arch-all'
dae3ad08faTests: Add cases for CMAKE_CUDA_ARCHITECTURES={all,all-major}5c1f5357b0VS: Fix CUDA compiler id with CMAKE_CUDA_ARCHITECTURES={all,all-major} Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7035
This commit is contained in:
@@ -280,7 +280,9 @@ if(NOT CMAKE_CUDA_COMPILER_ID_RUN)
|
||||
if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA" AND CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 11.5)
|
||||
string(APPEND nvcc_test_flags " -arch=${CMAKE_CUDA_ARCHITECTURES}")
|
||||
set(architectures_tested "${CMAKE_CUDA_ARCHITECTURES}")
|
||||
elseif(NOT CMAKE_GENERATOR MATCHES "Visual Studio")
|
||||
elseif(CMAKE_GENERATOR MATCHES "Visual Studio")
|
||||
set(architectures_tested "${CMAKE_CUDA_ARCHITECTURES}")
|
||||
else()
|
||||
if(CMAKE_CUDA_ARCHITECTURES STREQUAL "all")
|
||||
set(architectures_test ${CMAKE_CUDA_ARCHITECTURES_ALL})
|
||||
elseif(CMAKE_CUDA_ARCHITECTURES STREQUAL "all-major")
|
||||
|
||||
@@ -495,10 +495,12 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS}
|
||||
if(CMAKE_VS_PLATFORM_NAME STREQUAL x64)
|
||||
set(cuda_target "<TargetMachinePlatform>64</TargetMachinePlatform>")
|
||||
endif()
|
||||
foreach(arch ${CMAKE_CUDA_ARCHITECTURES})
|
||||
string(REGEX MATCH "[0-9]+" arch_name "${arch}")
|
||||
string(APPEND cuda_codegen "compute_${arch_name},sm_${arch_name};")
|
||||
endforeach()
|
||||
if(NOT CMAKE_CUDA_ARCHITECTURES MATCHES "^(all|all-major)$")
|
||||
foreach(arch ${CMAKE_CUDA_ARCHITECTURES})
|
||||
string(REGEX MATCH "[0-9]+" arch_name "${arch}")
|
||||
string(APPEND cuda_codegen "compute_${arch_name},sm_${arch_name};")
|
||||
endforeach()
|
||||
endif()
|
||||
set(id_ItemDefinitionGroup_entry "<CudaCompile>${cuda_target}<AdditionalOptions>%(AdditionalOptions)-v</AdditionalOptions><CodeGeneration>${cuda_codegen}</CodeGeneration></CudaCompile>")
|
||||
set(id_PostBuildEvent_Command [[echo CMAKE_CUDA_COMPILER=$(CudaToolkitBinDir)\nvcc.exe]])
|
||||
if(CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR)
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
include(RunCMake)
|
||||
|
||||
run_cmake(architectures-all)
|
||||
run_cmake(architectures-all-major)
|
||||
run_cmake(architectures-empty)
|
||||
run_cmake(architectures-invalid)
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
-- CMAKE_CUDA_ARCHITECTURES='all-major'
|
||||
-- CMAKE_CUDA_ARCHITECTURES_ALL='[0-9;]+'
|
||||
-- CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR='[0-9;]+'
|
||||
@@ -0,0 +1,5 @@
|
||||
set(CMAKE_CUDA_ARCHITECTURES "all-major")
|
||||
enable_language(CUDA)
|
||||
message(STATUS "CMAKE_CUDA_ARCHITECTURES='${CMAKE_CUDA_ARCHITECTURES}'")
|
||||
message(STATUS "CMAKE_CUDA_ARCHITECTURES_ALL='${CMAKE_CUDA_ARCHITECTURES_ALL}'")
|
||||
message(STATUS "CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR='${CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR}'")
|
||||
@@ -0,0 +1,3 @@
|
||||
-- CMAKE_CUDA_ARCHITECTURES='all'
|
||||
-- CMAKE_CUDA_ARCHITECTURES_ALL='[0-9;]+'
|
||||
-- CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR='[0-9;]+'
|
||||
@@ -0,0 +1,5 @@
|
||||
set(CMAKE_CUDA_ARCHITECTURES "all")
|
||||
enable_language(CUDA)
|
||||
message(STATUS "CMAKE_CUDA_ARCHITECTURES='${CMAKE_CUDA_ARCHITECTURES}'")
|
||||
message(STATUS "CMAKE_CUDA_ARCHITECTURES_ALL='${CMAKE_CUDA_ARCHITECTURES_ALL}'")
|
||||
message(STATUS "CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR='${CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR}'")
|
||||
Reference in New Issue
Block a user