Explorar el Código

Merge topic 'vs-cuda-object-libs'

6ebff6ebf8 VS: Avoid unnecessary CUDA device linking for OBJECT libraries

Acked-by: Kitware Robot <[email protected]>
Merge-request: !8794
Brad King hace 2 años
padre
commit
93d813d87c

+ 4 - 1
Source/cmVisualStudio10TargetGenerator.cxx

@@ -3869,7 +3869,10 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaLinkOptions(
 void cmVisualStudio10TargetGenerator::WriteCudaLinkOptions(
   Elem& e1, std::string const& configName)
 {
-  if (this->GeneratorTarget->GetType() > cmStateEnums::MODULE_LIBRARY) {
+  // We need to write link options for OBJECT libraries so that
+  // we override the default device link behavior ( enabled ) when
+  // building object libraries with ptx/optix-ir/etc
+  if (this->GeneratorTarget->GetType() > cmStateEnums::OBJECT_LIBRARY) {
     return;
   }
 

+ 1 - 0
Tests/CudaOnly/Fatbin/CMakeLists.txt

@@ -10,6 +10,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/../CUBIN/kernelB.cu
 ${CMAKE_CURRENT_SOURCE_DIR}/../CUBIN/kernelC.cu)
 
 set_property(TARGET CudaFATBIN PROPERTY CUDA_FATBIN_COMPILATION ON)
+set_property(TARGET CudaFATBIN PROPERTY CUDA_SEPARABLE_COMPILATION ON)
 
 # Will use `cuModuleLoadFatBinary` to load the fatbinaries
 add_executable(CudaOnlyFatbin main.cu)

+ 1 - 0
Tests/CudaOnly/OptixIR/CMakeLists.txt

@@ -13,6 +13,7 @@ if(CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "11.7.0")
   set_property(TARGET CudaOptix PROPERTY CUDA_OPTIX_COMPILATION ON)
 endif()
 
+set_property(TARGET CudaOptix PROPERTY CUDA_SEPARABLE_COMPILATION ON)
 set_property(TARGET CudaOptix PROPERTY CUDA_ARCHITECTURES native)
 
 add_executable(CudaOnlyOptixIR main.cu)