[CMake] Explicitly link with CCCL (standalone or CTK) (#10624)
This commit is contained in:
parent
7949a8d5f4
commit
411c8466bd
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 \
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user