Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
e4fb619
Package benchmarks in conda
pentschev Jun 12, 2026
9fc527b
Install packages directly under `bin/`
pentschev Jun 12, 2026
ff16a16
Rename NDSH benchmarks to libcudf_streaming_bench_ndsq_*
pentschev Jun 12, 2026
2f9e6f6
New libcudf-streaming-tests conda package
pentschev Jun 12, 2026
ba4dc27
Fix CMake style
pentschev Jun 12, 2026
49dd8b1
Merge branch 'main' into libcudf-streaming-conda-package-benchmarks
pentschev Jun 12, 2026
80aad37
Merge remote-tracking branch 'upstream/main' into libcudf-streaming-c…
pentschev Jun 12, 2026
028f733
Merge remote-tracking branch 'origin/libcudf-streaming-conda-package-…
pentschev Jun 12, 2026
a0938ca
Install libcudf-streaming-tests in CI
pentschev Jun 12, 2026
cd32b45
Move libucdf-streaming-tests to end of recipe file
pentschev Jun 12, 2026
8408ed9
Merge branch 'main' into libcudf-streaming-conda-package-benchmarks
pentschev Jun 14, 2026
7985231
Merge branch 'main' into libcudf-streaming-conda-package-benchmarks
pentschev Jun 15, 2026
5440690
Merge remote-tracking branch 'upstream/main' into libcudf-streaming-c…
pentschev Jun 15, 2026
d85191e
Merge remote-tracking branch 'origin/libcudf-streaming-conda-package-…
pentschev Jun 15, 2026
faa150f
Tidy up recipe
pentschev Jun 16, 2026
a40c82c
Remove executable prefix variable, expand in-place
pentschev Jun 16, 2026
c897ce4
Reintroduce cuda-nvtx/libcurand
pentschev Jun 16, 2026
edca51e
Merge remote-tracking branch 'upstream/main' into libcudf-streaming-c…
pentschev Jun 16, 2026
b0b989d
Reintroduce more dependencies
pentschev Jun 16, 2026
abc5fd5
Merge remote-tracking branch 'upstream/main' into libcudf-streaming-c…
pentschev Jun 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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[@]}"

Expand Down
3 changes: 2 additions & 1 deletion ci/test_cpp.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
58 changes: 55 additions & 3 deletions conda/recipes/libcudf/recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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
Expand All @@ -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:
Expand All @@ -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
Comment thread
vyasr marked this conversation as resolved.
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
6 changes: 5 additions & 1 deletion cpp/cmake/thirdparty/get_cudf.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
11 changes: 8 additions & 3 deletions cpp/libcudf_streaming/benchmarks/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
include(${rapids-cmake-dir}/cpm/gbench.cmake)
rapids_cpm_gbench(BUILD_STATIC)

set(CUDF_STREAMING_BENCHMARK_INSTALL_DIR bin)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason we're putting these straight into bin/? We put all libcudf benchmarks into a subdirectory since they don't need to be made available by default to execute.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To me this feels like an improvement over the status quo. We can easily start typing libcudf... and <TAB> autocompletes for us, the same isn't true under subdirectories. Plus, this is all in a separate package that is not usually installed unless you want to, so to me this feels natural and better.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK if having these executables on the path is useful to you that's fine with me.


add_library(bench_utils INTERFACE)
target_sources(bench_utils INTERFACE utils/random_data.cu)
target_compile_options(bench_utils INTERFACE $<$<COMPILE_LANGUAGE:CUDA>:--expt-extended-lambda>)
Expand All @@ -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
Expand All @@ -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()
Expand All @@ -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
Expand All @@ -56,14 +60,15 @@ target_link_libraries(
install(
TARGETS bench_partition
COMPONENT benchmarking
DESTINATION bin/benchmarks/libcudf_streaming
DESTINATION "${CUDF_STREAMING_BENCHMARK_INSTALL_DIR}"
EXCLUDE_FROM_ALL
)

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
Expand All @@ -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
)

Expand Down
3 changes: 2 additions & 1 deletion cpp/libcudf_streaming/benchmarks/streaming/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
)
4 changes: 4 additions & 0 deletions cpp/libcudf_streaming/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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 $<$<COMPILE_LANGUAGE:CUDA>:${CUDF_CUDA_FLAGS};--expt-extended-lambda>
)
target_link_libraries(
cudf_streaming_test_sources
PRIVATE cudf_streaming rapidsmpf::rapidsmpf cudf::cudftestutil cudf::cudftestutil_impl
Expand Down
1 change: 1 addition & 0 deletions dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading