Skip to content

Commit 680878a

Browse files
committed
Use RMM's pached CCCL
Make sure to search for RMM if it will be used. This should pick up the patched CCCL from RMM. If RMM is not being used and this is a CUDA build, search for CCCL explicitly.
1 parent 62e7923 commit 680878a

File tree

1 file changed

+22
-18
lines changed

1 file changed

+22
-18
lines changed

CMakeLists.txt

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -224,24 +224,6 @@ if(USE_CUDA)
224224
add_subdirectory(${PROJECT_SOURCE_DIR}/gputreeshap)
225225

226226
find_package(CUDAToolkit REQUIRED)
227-
find_package(CCCL CONFIG)
228-
if(NOT CCCL_FOUND)
229-
message(STATUS "Standalone CCCL not found. Attempting to use CCCL from CUDA Toolkit...")
230-
find_package(CCCL CONFIG
231-
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
232-
if(NOT CCCL_FOUND)
233-
message(STATUS "Could not locate CCCL from CUDA Toolkit. Using Thrust and CUB from CUDA Toolkit...")
234-
find_package(libcudacxx CONFIG REQUIRED
235-
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
236-
find_package(CUB CONFIG REQUIRED
237-
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
238-
find_package(Thrust CONFIG REQUIRED
239-
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
240-
thrust_create_target(Thrust HOST CPP DEVICE CUDA)
241-
add_library(CCCL::CCCL INTERFACE IMPORTED GLOBAL)
242-
target_link_libraries(CCCL::CCCL INTERFACE libcudacxx::libcudacxx CUB::CUB Thrust)
243-
endif()
244-
endif()
245227
endif()
246228

247229
if(FORCE_COLORED_OUTPUT AND (CMAKE_GENERATOR STREQUAL "Ninja") AND
@@ -327,6 +309,28 @@ if(PLUGIN_RMM)
327309
list(REMOVE_ITEM rmm_link_libs CUDA::cudart)
328310
list(APPEND rmm_link_libs CUDA::cudart_static)
329311
set_target_properties(rmm::rmm PROPERTIES INTERFACE_LINK_LIBRARIES "${rmm_link_libs}")
312+
313+
# Pick up patched CCCL from RMM
314+
elseif(USE_CUDA)
315+
# If using CUDA and not RMM, search for CCCL.
316+
find_package(CCCL CONFIG)
317+
if(NOT CCCL_FOUND)
318+
message(STATUS "Standalone CCCL not found. Attempting to use CCCL from CUDA Toolkit...")
319+
find_package(CCCL CONFIG
320+
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
321+
if(NOT CCCL_FOUND)
322+
message(STATUS "Could not locate CCCL from CUDA Toolkit. Using Thrust and CUB from CUDA Toolkit...")
323+
find_package(libcudacxx CONFIG REQUIRED
324+
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
325+
find_package(CUB CONFIG REQUIRED
326+
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
327+
find_package(Thrust CONFIG REQUIRED
328+
HINTS ${CUDAToolkit_LIBRARY_DIR}/cmake)
329+
thrust_create_target(Thrust HOST CPP DEVICE CUDA)
330+
add_library(CCCL::CCCL INTERFACE IMPORTED GLOBAL)
331+
target_link_libraries(CCCL::CCCL INTERFACE libcudacxx::libcudacxx CUB::CUB Thrust)
332+
endif()
333+
endif()
330334
endif()
331335

332336
if(PLUGIN_SYCL)

0 commit comments

Comments
 (0)