Преглед на файлове

Merge topic 'cuda-ipo-arch'

45584508fa CUDA/NVIDIA: fix LTO with explicit architectures

Acked-by: Kitware Robot <[email protected]>
Reviewed-by: Raul Tambre <[email protected]>
Merge-request: !8508
Brad King преди 2 години
родител
ревизия
54a4aa5779
променени са 2 файла, в които са добавени 10 реда и са изтрити 3 реда
  1. 1 1
      Source/cmGeneratorTarget.cxx
  2. 9 2
      Tests/CudaOnly/DeviceLTO/CMakeLists.txt

+ 1 - 1
Source/cmGeneratorTarget.cxx

@@ -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 - 2
Tests/CudaOnly/DeviceLTO/CMakeLists.txt

@@ -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)