[CMake] Explicitly link with CCCL (standalone or CTK) (#10624)

This commit is contained in:
Philip Hyunsu Cho 2024-07-23 18:42:54 -07:00 committed by GitHub
parent 7949a8d5f4
commit 411c8466bd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 21 additions and 3 deletions

View File

@ -221,6 +221,24 @@ if(USE_CUDA)
add_subdirectory(${PROJECT_SOURCE_DIR}/gputreeshap) add_subdirectory(${PROJECT_SOURCE_DIR}/gputreeshap)
find_package(CUDAToolkit REQUIRED) find_package(CUDAToolkit REQUIRED)
find_package(CCCL CONFIG)
if(NOT CCCL_FOUND)
message(STATUS "Standalone CCCL not found. Attempting to use CCCL from CUDA Toolkit...")
find_package(CCCL CONFIG
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
if(NOT CCCL_FOUND)
message(STATUS "Could not locate CCCL from CUDA Toolkit. Using Thrust and CUB from CUDA Toolkit...")
find_package(libcudacxx CONFIG REQUIRED
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
find_package(CUB CONFIG REQUIRED
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
find_package(Thrust CONFIG REQUIRED
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
thrust_create_target(Thrust HOST CPP DEVICE CUDA)
add_library(CCCL::CCCL INTERFACE IMPORTED GLOBAL)
target_link_libraries(CCCL::CCCL INTERFACE libcudacxx::libcudacxx CUB::CUB Thrust)
endif()
endif()
endif() endif()
if(FORCE_COLORED_OUTPUT AND (CMAKE_GENERATOR STREQUAL "Ninja") AND if(FORCE_COLORED_OUTPUT AND (CMAKE_GENERATOR STREQUAL "Ninja") AND

View File

@ -104,11 +104,11 @@ function(xgboost_set_cuda_flags target)
target_compile_definitions(${target} PRIVATE -DXGBOOST_USE_NVTX=1) target_compile_definitions(${target} PRIVATE -DXGBOOST_USE_NVTX=1)
endif() endif()
target_link_libraries(${target} PRIVATE CCCL::CCCL)
target_compile_definitions(${target} PRIVATE -DXGBOOST_USE_CUDA=1) target_compile_definitions(${target} PRIVATE -DXGBOOST_USE_CUDA=1)
target_include_directories( target_include_directories(
${target} PRIVATE ${target} PRIVATE
${xgboost_SOURCE_DIR}/gputreeshap ${xgboost_SOURCE_DIR}/gputreeshap)
${CUDAToolkit_INCLUDE_DIRS})
if(MSVC) if(MSVC)
target_compile_options(${target} PRIVATE target_compile_options(${target} PRIVATE

View File

@ -22,7 +22,7 @@ command_wrapper="tests/ci_build/ci_build.sh gpu_build_rockylinux8 --build-arg "`
echo "--- Build libxgboost from the source" echo "--- Build libxgboost from the source"
$command_wrapper tests/ci_build/build_via_cmake.sh \ $command_wrapper tests/ci_build/build_via_cmake.sh \
-DCMAKE_PREFIX_PATH="/opt/grpc;/opt/rmm" \ -DCMAKE_PREFIX_PATH="/opt/grpc;/opt/rmm;/opt/rmm/lib64/rapids/cmake" \
-DUSE_CUDA=ON \ -DUSE_CUDA=ON \
-DUSE_OPENMP=ON \ -DUSE_OPENMP=ON \
-DHIDE_CXX_SYMBOLS=ON \ -DHIDE_CXX_SYMBOLS=ON \