Skip to content

Commit

Permalink
Expand tests to verify static and shared cudart
Browse files Browse the repository at this point in the history
  • Loading branch information
robertmaynard committed Sep 5, 2024
1 parent 8a3db58 commit a136228
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 5 deletions.
1 change: 0 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,6 @@ target_include_directories(rmm INTERFACE "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOUR
if(CUDA_STATIC_RUNTIME)
message(STATUS "RMM: Enabling static linking of cudart")
target_link_libraries(rmm INTERFACE CUDA::cudart_static)
target_compile_definitions(rmm INTERFACE RMM_STATIC_CUDART)
else()
target_link_libraries(rmm INTERFACE CUDA::cudart)
endif()
Expand Down
21 changes: 17 additions & 4 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ function(ConfigureTestInternal TEST_NAME)
add_executable(${TEST_NAME} ${ARGN})
target_include_directories(${TEST_NAME} PRIVATE "$<BUILD_INTERFACE:${RMM_SOURCE_DIR}>")
target_link_libraries(${TEST_NAME} GTest::gmock GTest::gtest GTest::gmock_main GTest::gtest_main
pthread rmm)
pthread)
set_target_properties(
${TEST_NAME}
PROPERTIES POSITION_INDEPENDENT_CODE ON
Expand Down Expand Up @@ -81,8 +81,8 @@ endfunction()
# stream
function(ConfigureTest TEST_NAME)

set(options)
set(one_value GPUS PERCENT)
set(options )
set(one_value CUDART GPUS PERCENT)
set(multi_value)
cmake_parse_arguments(_RMM_TEST "${options}" "${one_value}" "${multi_value}" ${ARGN})
if(NOT DEFINED _RMM_TEST_GPUS AND NOT DEFINED _RMM_TEST_PERCENT)
Expand All @@ -96,13 +96,25 @@ function(ConfigureTest TEST_NAME)
set(_RMM_TEST_PERCENT 100)
endif()

#
set(cudart_link_libs $<COMPILE_ONLY:rmm>)
if(_RMM_TEST_CUDART STREQUAL SHARED)
list(APPEND cudart_link_libs CUDA::cudart)
elseif(_RMM_TEST_CUDART STREQUAL STATIC)
list(APPEND cudart_link_libs CUDA::cudart_static)
else()
set(cudart_link_libs rmm))
endif()

# Test with legacy default stream.
ConfigureTestInternal(${TEST_NAME} ${_RMM_TEST_UNPARSED_ARGUMENTS})
target_link_libraries(${TEST_NAME} ${cudart_link_libs})

# Test with per-thread default stream.
string(REGEX REPLACE "_TEST$" "_PTDS_TEST" PTDS_TEST_NAME "${TEST_NAME}")
ConfigureTestInternal("${PTDS_TEST_NAME}" ${_RMM_TEST_UNPARSED_ARGUMENTS})
target_compile_definitions("${PTDS_TEST_NAME}" PUBLIC CUDA_API_PER_THREAD_DEFAULT_STREAM)
target_link_libraries(${PTDS_TEST_NAME} ${cudart_link_libs})

foreach(name ${TEST_NAME} ${PTDS_TEST_NAME} ${NS_TEST_NAME})
rapids_test_add(
Expand All @@ -128,7 +140,8 @@ ConfigureTest(ADAPTOR_TEST mr/device/adaptor_tests.cpp)
ConfigureTest(POOL_MR_TEST mr/device/pool_mr_tests.cpp GPUS 1 PERCENT 60)

# cuda_async mr tests
ConfigureTest(CUDA_ASYNC_MR_TEST mr/device/cuda_async_mr_tests.cpp GPUS 1 PERCENT 60)
ConfigureTest(CUDA_ASYNC_MR_STATIC_CUDART_TEST mr/device/cuda_async_mr_tests.cpp GPUS 1 PERCENT 60 CUDART STATIC)
ConfigureTest(CUDA_ASYNC_MR_SHARED_CUDART_TEST mr/device/cuda_async_mr_tests.cpp GPUS 1 PERCENT 60 CUDART SHARED)

# thrust allocator tests
ConfigureTest(THRUST_ALLOCATOR_TEST mr/device/thrust_allocator_tests.cu GPUS 1 PERCENT 60)
Expand Down

0 comments on commit a136228

Please sign in to comment.