Option for generating device debug info. (#6168)

* Supply `-G;-src-in-ptx` when `USE_DEVICE_DEBUG` is set and debug mode is selected.
* Refactor CMake script to gather all CUDA configuration.
* Use CMAKE_CUDA_ARCHITECTURES.  Close #6029.
* Add compute 80.  Close #5999
This commit is contained in:
Jiaming Yuan
2020-09-27 03:26:56 +08:00
committed by GitHub
parent e6a238c020
commit 07355599c2
4 changed files with 104 additions and 108 deletions

View File

@@ -23,45 +23,10 @@ add_executable(testxgboost ${TEST_SOURCES}
target_link_libraries(testxgboost PRIVATE objxgboost)
if (USE_CUDA)
# OpenMP is mandatory for CUDA
find_package(OpenMP REQUIRED)
if (CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 11.0)
target_include_directories(testxgboost PRIVATE
${xgboost_SOURCE_DIR}/cub/)
endif (CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 11.0)
target_compile_options(testxgboost PRIVATE
$<$<COMPILE_LANGUAGE:CUDA>:--expt-extended-lambda>
$<$<COMPILE_LANGUAGE:CUDA>:--expt-relaxed-constexpr>
$<$<COMPILE_LANGUAGE:CUDA>:-lineinfo>
$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=${OpenMP_CXX_FLAGS}>
$<$<COMPILE_LANGUAGE:CUDA>:${GEN_CODE}>)
target_compile_definitions(testxgboost
PRIVATE -DXGBOOST_USE_CUDA=1)
xgboost_set_cuda_flags(testxgboost)
find_package(CUDA)
target_include_directories(testxgboost PRIVATE ${CUDA_INCLUDE_DIRS})
set_target_properties(testxgboost PROPERTIES
CUDA_SEPARABLE_COMPILATION OFF)
if (USE_NCCL)
find_package(Nccl REQUIRED)
target_include_directories(testxgboost PRIVATE ${NCCL_INCLUDE_DIR})
target_compile_definitions(testxgboost PRIVATE -DXGBOOST_USE_NCCL=1)
target_link_libraries(testxgboost PRIVATE ${NCCL_LIBRARY})
endif (USE_NCCL)
if (USE_NVTX)
enable_nvtx(testxgboost)
endif (USE_NVTX)
if (MSVC)
target_compile_options(testxgboost PRIVATE
$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=/utf-8>
)
endif (MSVC)
set_target_properties(testxgboost PROPERTIES
CUDA_STANDARD 14
CUDA_STANDARD_REQUIRED ON)
endif (USE_CUDA)
if (MSVC)