mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 13:20:47 -06:00
Merge topic 'cuda-ipo-arch'
45584508fa CUDA/NVIDIA: fix LTO with explicit architectures
Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !8508
This commit is contained in:
@@ -3504,7 +3504,7 @@ void cmGeneratorTarget::AddCUDAArchitectureFlags(cmBuildStep compileOrLink,
|
||||
if (architecture.virtual_) {
|
||||
flags += "compute_" + architecture.name;
|
||||
|
||||
if (architecture.real) {
|
||||
if (ipoEnabled || architecture.real) {
|
||||
flags += ",";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,16 +9,23 @@ project(DeviceLTO CUDA)
|
||||
add_library(CUDA_dlto STATIC file1.cu file2.cu file3.cu)
|
||||
add_executable(CudaOnlyDeviceLTO main.cu)
|
||||
|
||||
set(archs_to_test "${CMAKE_CUDA_ARCHITECTURES_ALL}")
|
||||
if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
|
||||
# Also test with at least one virtual architecture.
|
||||
list(POP_BACK CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR latest_arch)
|
||||
list(APPEND archs_to_test ${latest_arch}-virtual)
|
||||
endif()
|
||||
|
||||
set_target_properties(CUDA_dlto
|
||||
PROPERTIES
|
||||
CUDA_ARCHITECTURES "${CMAKE_CUDA_ARCHITECTURES_ALL}"
|
||||
CUDA_ARCHITECTURES "${archs_to_test}"
|
||||
CUDA_SEPARABLE_COMPILATION ON
|
||||
POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
set_target_properties(CudaOnlyDeviceLTO
|
||||
PROPERTIES
|
||||
CUDA_SEPARABLE_COMPILATION ON
|
||||
CUDA_ARCHITECTURES "${CMAKE_CUDA_ARCHITECTURES_ALL}"
|
||||
CUDA_ARCHITECTURES "${archs_to_test}"
|
||||
)
|
||||
|
||||
target_link_libraries(CudaOnlyDeviceLTO PRIVATE CUDA_dlto)
|
||||
|
||||
Reference in New Issue
Block a user