diff --git a/build.sh b/build.sh index 50d7037039ec..579b7177746f 100755 --- a/build.sh +++ b/build.sh @@ -357,6 +357,7 @@ if hasArg libcudf_streaming; then -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" \ -DCMAKE_CUDA_ARCHITECTURES="${CUDF_CMAKE_CUDA_ARCHITECTURES}" \ -DBUILD_TESTS=${BUILD_TESTS} \ + -DBUILD_BENCHMARKS=${BUILD_BENCHMARKS} \ -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ "${EXTRA_CMAKE_ARGS[@]}" diff --git a/ci/test_cpp.sh b/ci/test_cpp.sh index 17356addee71..85de2d888138 100755 --- a/ci/test_cpp.sh +++ b/ci/test_cpp.sh @@ -12,7 +12,8 @@ source ./ci/test_cpp_common.sh EXITCODE=0 trap "EXITCODE=1" ERR set +e -# Run libcudf and libcudf_kafka gtests from libcudf-tests package + +# Run gtests from the libcudf-tests and libcudf-streaming-tests packages export GTEST_OUTPUT=xml:${RAPIDS_TESTS_DIR}/ rapids-logger "Run libcudf gtests" diff --git a/conda/recipes/libcudf/recipe.yaml b/conda/recipes/libcudf/recipe.yaml index 6077750b497f..060917b7ad6c 100644 --- a/conda/recipes/libcudf/recipe.yaml +++ b/conda/recipes/libcudf/recipe.yaml @@ -349,7 +349,6 @@ outputs: script: - cmake --install cpp/build --component testing - cmake --install cpp/libcudf_kafka/build --component testing - - cmake --install cpp/libcudf_streaming/build --component testing string: cuda${{ cuda_major }}_${{ date_string }}_${{ head_rev }} dynamic_linking: overlinking_behavior: "error" @@ -362,7 +361,6 @@ outputs: host: - ${{ pin_subpackage("libcudf", exact=True) }} - ${{ pin_subpackage("libcudf_kafka", exact=True) }} - - ${{ pin_subpackage("libcudf-streaming", exact=True) }} - cuda-version =${{ cuda_version }} - libcurand-dev - cuda-cudart-dev @@ -371,7 +369,6 @@ outputs: - ${{ pin_compatible("cuda-version", upper_bound="x", lower_bound="x") }} - ${{ pin_subpackage("libcudf", exact=True) }} - ${{ pin_subpackage("libcudf_kafka", exact=True) }} - - ${{ pin_subpackage("libcudf-streaming", exact=True) }} - libcurand - cuda-sanitizer-api ignore_run_exports: @@ -396,3 +393,58 @@ outputs: homepage: ${{ load_from_file("python/libcudf/pyproject.toml").project.urls.Homepage }} license: ${{ load_from_file("python/libcudf/pyproject.toml").project.license }} summary: libcudf test & benchmark executables + + - package: + name: libcudf-streaming-tests + version: ${{ version }} + build: + script: + - cmake --install cpp/libcudf_streaming/build --component testing + - cmake --install cpp/libcudf_streaming/build --component benchmarking + string: cuda${{ cuda_major }}_${{ date_string }}_${{ head_rev }} + dynamic_linking: + overlinking_behavior: "error" + requirements: + build: + - cmake ${{ cmake_version }} + - ${{ stdlib("c") }} + host: + - ${{ pin_subpackage("libcudf", exact=True) }} + - ${{ pin_subpackage("libcudf-streaming", exact=True) }} + - librmm =${{ minor_version }} + - librapidsmpf =${{ minor_version }} + - openmpi >=5.0 + - cuda-version =${{ cuda_version }} + - cuda-cudart-dev + run: + - ${{ pin_subpackage("libcudf", exact=True) }} + - ${{ pin_subpackage("libcudf-streaming", exact=True) }} + - librmm =${{ minor_version }} + - librapidsmpf =${{ minor_version }} + - openmpi >=5.0 + - ${{ pin_compatible("cuda-version", upper_bound="x", lower_bound="x") }} + ignore_run_exports: + by_name: + - cuda-cudart + - cuda-nvrtc + - cuda-nvtx + - cuda-version + - libcudf + - libcufile + - libcurand + - libkvikio + - librmm + - libnvcomp + tests: + - script: + - test -f $PREFIX/bin/gtests/libcudf_streaming/cudf_streaming_single_tests + - test -f $PREFIX/bin/libcudf_streaming_bench_pack + - test -f $PREFIX/bin/libcudf_streaming_bench_partition + - test -f $PREFIX/bin/libcudf_streaming_bench_ndsh_bench_read + - test -f $PREFIX/bin/libcudf_streaming_bench_ndsh_q01 + - test -f $PREFIX/bin/libcudf_streaming_bench_shuffle + - test -f $PREFIX/bin/libcudf_streaming_bench_streaming_shuffle + about: + homepage: https://rapids.ai/ + license: Apache-2.0 + summary: libcudf-streaming test & benchmark executables diff --git a/cpp/cmake/thirdparty/get_cudf.cmake b/cpp/cmake/thirdparty/get_cudf.cmake index 02e9ce9e86d0..036f26a7877d 100644 --- a/cpp/cmake/thirdparty/get_cudf.cmake +++ b/cpp/cmake/thirdparty/get_cudf.cmake @@ -28,8 +28,12 @@ Result Variables # cmake-lint: disable=C0112 function(find_and_configure_cudf VERSION EXPORT_SET) rapids_cmake_parse_version(MAJOR_MINOR ${VERSION} major_minor) + set(cudf_components) + if(BUILD_TESTS) + list(APPEND cudf_components COMPONENTS testing) + endif() rapids_cpm_find( - cudf ${VERSION} + cudf ${VERSION} ${cudf_components} BUILD_EXPORT_SET ${EXPORT_SET} INSTALL_EXPORT_SET ${EXPORT_SET} CPM_ARGS diff --git a/cpp/libcudf_streaming/benchmarks/CMakeLists.txt b/cpp/libcudf_streaming/benchmarks/CMakeLists.txt index 446f65661d7e..755153a1ca6e 100644 --- a/cpp/libcudf_streaming/benchmarks/CMakeLists.txt +++ b/cpp/libcudf_streaming/benchmarks/CMakeLists.txt @@ -9,6 +9,8 @@ include(${rapids-cmake-dir}/cpm/gbench.cmake) rapids_cpm_gbench(BUILD_STATIC) +set(CUDF_STREAMING_BENCHMARK_INSTALL_DIR bin) + add_library(bench_utils INTERFACE) target_sources(bench_utils INTERFACE utils/random_data.cu) target_compile_options(bench_utils INTERFACE $<$:--expt-extended-lambda>) @@ -18,6 +20,7 @@ if(CUDF_STREAMING_HAVE_COMM) set_target_properties( bench_shuffle PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CUDF_STREAMING_BINARY_DIR}/benchmarks" + OUTPUT_NAME "libcudf_streaming_bench_shuffle" CXX_STANDARD 20 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON @@ -32,7 +35,7 @@ if(CUDF_STREAMING_HAVE_COMM) install( TARGETS bench_shuffle COMPONENT benchmarking - DESTINATION bin/benchmarks/libcudf_streaming + DESTINATION "${CUDF_STREAMING_BENCHMARK_INSTALL_DIR}" EXCLUDE_FROM_ALL ) else() @@ -43,6 +46,7 @@ add_executable(bench_partition "bench_partition.cpp") set_target_properties( bench_partition PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CUDF_STREAMING_BINARY_DIR}/benchmarks" + OUTPUT_NAME "libcudf_streaming_bench_partition" CXX_STANDARD 20 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON @@ -56,7 +60,7 @@ target_link_libraries( install( TARGETS bench_partition COMPONENT benchmarking - DESTINATION bin/benchmarks/libcudf_streaming + DESTINATION "${CUDF_STREAMING_BENCHMARK_INSTALL_DIR}" EXCLUDE_FROM_ALL ) @@ -64,6 +68,7 @@ add_executable(bench_pack "bench_pack.cpp") set_target_properties( bench_pack PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CUDF_STREAMING_BINARY_DIR}/benchmarks" + OUTPUT_NAME "libcudf_streaming_bench_pack" CXX_STANDARD 20 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON @@ -78,7 +83,7 @@ target_link_libraries( install( TARGETS bench_pack COMPONENT benchmarking - DESTINATION bin/benchmarks/libcudf_streaming + DESTINATION "${CUDF_STREAMING_BENCHMARK_INSTALL_DIR}" EXCLUDE_FROM_ALL ) diff --git a/cpp/libcudf_streaming/benchmarks/streaming/CMakeLists.txt b/cpp/libcudf_streaming/benchmarks/streaming/CMakeLists.txt index 5319bc9ad519..206643087d8e 100644 --- a/cpp/libcudf_streaming/benchmarks/streaming/CMakeLists.txt +++ b/cpp/libcudf_streaming/benchmarks/streaming/CMakeLists.txt @@ -10,6 +10,7 @@ if(CUDF_STREAMING_HAVE_COMM) set_target_properties( bench_streaming_shuffle PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CUDF_STREAMING_BINARY_DIR}/benchmarks" + OUTPUT_NAME "libcudf_streaming_bench_streaming_shuffle" CXX_STANDARD 20 CXX_STANDARD_REQUIRED ON CUDA_STANDARD 20 @@ -23,7 +24,7 @@ if(CUDF_STREAMING_HAVE_COMM) install( TARGETS bench_streaming_shuffle COMPONENT benchmarking - DESTINATION bin/benchmarks/libcudf_streaming + DESTINATION "${CUDF_STREAMING_BENCHMARK_INSTALL_DIR}" EXCLUDE_FROM_ALL ) else() diff --git a/cpp/libcudf_streaming/benchmarks/streaming/ndsh/CMakeLists.txt b/cpp/libcudf_streaming/benchmarks/streaming/ndsh/CMakeLists.txt index b4ca094026da..490645162d33 100644 --- a/cpp/libcudf_streaming/benchmarks/streaming/ndsh/CMakeLists.txt +++ b/cpp/libcudf_streaming/benchmarks/streaming/ndsh/CMakeLists.txt @@ -34,6 +34,7 @@ foreach(query IN ITEMS ${CUDF_STREAMING_NDSH_QUERIES}) set_target_properties( ${query} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CUDF_STREAMING_BINARY_DIR}/benchmarks/ndsh" + OUTPUT_NAME "libcudf_streaming_bench_ndsh_${query}" CXX_STANDARD 20 CXX_STANDARD_REQUIRED ON CUDA_STANDARD 20 @@ -54,6 +55,6 @@ install( install( TARGETS ${CUDF_STREAMING_NDSH_QUERIES} COMPONENT benchmarking - DESTINATION bin/benchmarks/libcudf_streaming + DESTINATION "${CUDF_STREAMING_BENCHMARK_INSTALL_DIR}" EXCLUDE_FROM_ALL ) diff --git a/cpp/libcudf_streaming/tests/CMakeLists.txt b/cpp/libcudf_streaming/tests/CMakeLists.txt index 5b6cf230d699..b8ff8a876f74 100644 --- a/cpp/libcudf_streaming/tests/CMakeLists.txt +++ b/cpp/libcudf_streaming/tests/CMakeLists.txt @@ -33,6 +33,10 @@ target_include_directories( cudf_streaming_test_sources PRIVATE "${CUDF_STREAMING_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}" ) +target_compile_options( + cudf_streaming_test_sources + PRIVATE $<$:${CUDF_CUDA_FLAGS};--expt-extended-lambda> +) target_link_libraries( cudf_streaming_test_sources PRIVATE cudf_streaming rapidsmpf::rapidsmpf cudf::cudftestutil cudf::cudftestutil_impl diff --git a/dependencies.yaml b/dependencies.yaml index 9f0044b26682..2f8f6e4aca31 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -973,6 +973,7 @@ dependencies: - libcudf-example==26.8.*,>=0.0.0a0 - libcudf_kafka==26.8.*,>=0.0.0a0 - libcudf-tests==26.8.*,>=0.0.0a0 + - libcudf-streaming-tests==26.8.*,>=0.0.0a0 test_java: common: - output_types: conda