From ec1a1bf0ca1f1a25dfc0bd850f344cff6ebcc356 Mon Sep 17 00:00:00 2001 From: Vyas Ramasubramani Date: Sun, 6 Sep 2026 14:29:13 -0700 Subject: [PATCH 1/9] ci: cache libcudf JIT kernels in C++ tests --- .github/workflows/pr.yaml | 4 +++- .github/workflows/test.yaml | 4 +++- ci/test_cpp_common.sh | 7 ++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 6abfeaad8dc0..fba4c90883df 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -305,11 +305,13 @@ jobs: packages: read pull-requests: read secrets: inherit # zizmor: ignore[secrets-inherit] - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@codex/caller-cache-directories if: fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_build_inputs || fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_test_files || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp with: build_type: pull-request script: ci/test_cpp.sh + cache-paths: ${{ github.workspace }}/.cache/libcudf + cache-key-prefix: libcudf-rtcx-v1 # https://github.com/NVIDIA/cudf/issues/23498 matrix_filter: map(select(.GPU != "gb300" and .GPU != "gh200")) conda-python-build: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 7c73aad711c1..2fa44dd98718 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -47,13 +47,15 @@ jobs: packages: read pull-requests: read secrets: inherit # zizmor: ignore[secrets-inherit] - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@main + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@codex/caller-cache-directories with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} date: ${{ inputs.date }} script: ci/test_cpp.sh sha: ${{ inputs.sha }} + cache-paths: ${{ github.workspace }}/.cache/libcudf + cache-key-prefix: libcudf-rtcx-v1 # https://github.com/NVIDIA/cudf/issues/23498 matrix_filter: map(select(.GPU != "gb300" and .GPU != "gh200")) conda-cpp-benchmark-tests: diff --git a/ci/test_cpp_common.sh b/ci/test_cpp_common.sh index a0607b278911..4b348eae64f6 100755 --- a/ci/test_cpp_common.sh +++ b/ci/test_cpp_common.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 set -euo pipefail @@ -33,6 +33,11 @@ RESULTS_DIR=${RAPIDS_TESTS_DIR:-"$(mktemp -d)"} RAPIDS_TESTS_DIR=${RAPIDS_TESTS_DIR:-"${RESULTS_DIR}/test-results"}/ mkdir -p "${RAPIDS_TESTS_DIR}" +# Keep JIT-compiled kernels in the workspace so CI can persist them across jobs. +JIT_CACHE_ROOT=${GITHUB_WORKSPACE:-${PWD}} +export LIBCUDF_KERNEL_CACHE_PATH="${LIBCUDF_KERNEL_CACHE_PATH:-${JIT_CACHE_ROOT}/.cache/libcudf}" +mkdir -p "${LIBCUDF_KERNEL_CACHE_PATH}" + rapids-print-env rapids-logger "Check GPU usage" From fc3b0eef30352b514716bb12ef2600944c7c8247 Mon Sep 17 00:00:00 2001 From: Vyas Ramasubramani Date: Sun, 6 Sep 2026 16:00:05 -0700 Subject: [PATCH 2/9] fix: cache workspace-relative JIT paths --- .github/workflows/pr.yaml | 2 +- .github/workflows/test.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index fba4c90883df..4d0173a864dc 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -310,7 +310,7 @@ jobs: with: build_type: pull-request script: ci/test_cpp.sh - cache-paths: ${{ github.workspace }}/.cache/libcudf + cache-paths: .cache/libcudf cache-key-prefix: libcudf-rtcx-v1 # https://github.com/NVIDIA/cudf/issues/23498 matrix_filter: map(select(.GPU != "gb300" and .GPU != "gh200")) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 2fa44dd98718..7c755c6caf96 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -54,7 +54,7 @@ jobs: date: ${{ inputs.date }} script: ci/test_cpp.sh sha: ${{ inputs.sha }} - cache-paths: ${{ github.workspace }}/.cache/libcudf + cache-paths: .cache/libcudf cache-key-prefix: libcudf-rtcx-v1 # https://github.com/NVIDIA/cudf/issues/23498 matrix_filter: map(select(.GPU != "gb300" and .GPU != "gh200")) From f7b257696ad11a38da9a16059d9f8259684f2a0d Mon Sep 17 00:00:00 2001 From: Vyas Ramasubramani Date: Tue, 8 Sep 2026 11:53:28 -0700 Subject: [PATCH 3/9] refactor: configure libcudf JIT cache through workflow --- .github/workflows/pr.yaml | 1 + .github/workflows/test.yaml | 1 + ci/test_cpp_common.sh | 6 +++--- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 4d0173a864dc..2ea7e933a198 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -312,6 +312,7 @@ jobs: script: ci/test_cpp.sh cache-paths: .cache/libcudf cache-key-prefix: libcudf-rtcx-v1 + cache-environment: LIBCUDF_KERNEL_CACHE_PATH=${{ github.workspace }}/.cache/libcudf # https://github.com/NVIDIA/cudf/issues/23498 matrix_filter: map(select(.GPU != "gb300" and .GPU != "gh200")) conda-python-build: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 7c755c6caf96..bcacaf8b5eaa 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -56,6 +56,7 @@ jobs: sha: ${{ inputs.sha }} cache-paths: .cache/libcudf cache-key-prefix: libcudf-rtcx-v1 + cache-environment: LIBCUDF_KERNEL_CACHE_PATH=${{ github.workspace }}/.cache/libcudf # https://github.com/NVIDIA/cudf/issues/23498 matrix_filter: map(select(.GPU != "gb300" and .GPU != "gh200")) conda-cpp-benchmark-tests: diff --git a/ci/test_cpp_common.sh b/ci/test_cpp_common.sh index 4b348eae64f6..730fd2cb8828 100755 --- a/ci/test_cpp_common.sh +++ b/ci/test_cpp_common.sh @@ -33,9 +33,9 @@ RESULTS_DIR=${RAPIDS_TESTS_DIR:-"$(mktemp -d)"} RAPIDS_TESTS_DIR=${RAPIDS_TESTS_DIR:-"${RESULTS_DIR}/test-results"}/ mkdir -p "${RAPIDS_TESTS_DIR}" -# Keep JIT-compiled kernels in the workspace so CI can persist them across jobs. -JIT_CACHE_ROOT=${GITHUB_WORKSPACE:-${PWD}} -export LIBCUDF_KERNEL_CACHE_PATH="${LIBCUDF_KERNEL_CACHE_PATH:-${JIT_CACHE_ROOT}/.cache/libcudf}" +# CI provides LIBCUDF_KERNEL_CACHE_PATH through the reusable workflow's cache-environment input. +# Keep a workspace-relative default for local runs. +export LIBCUDF_KERNEL_CACHE_PATH="${LIBCUDF_KERNEL_CACHE_PATH:-${PWD}/.cache/libcudf}" mkdir -p "${LIBCUDF_KERNEL_CACHE_PATH}" rapids-print-env From 91f56ef4fade3b2bad623d9dda0d3cdff2a3f459 Mon Sep 17 00:00:00 2001 From: Vyas Ramasubramani Date: Tue, 8 Sep 2026 12:34:11 -0700 Subject: [PATCH 4/9] fix: use workspace-relative libcudf JIT cache path --- .github/workflows/pr.yaml | 2 +- .github/workflows/test.yaml | 2 +- ci/test_cpp_common.sh | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 2ea7e933a198..2d8ddb854a8c 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -312,7 +312,7 @@ jobs: script: ci/test_cpp.sh cache-paths: .cache/libcudf cache-key-prefix: libcudf-rtcx-v1 - cache-environment: LIBCUDF_KERNEL_CACHE_PATH=${{ github.workspace }}/.cache/libcudf + cache-environment: LIBCUDF_KERNEL_CACHE_PATH=.cache/libcudf # https://github.com/NVIDIA/cudf/issues/23498 matrix_filter: map(select(.GPU != "gb300" and .GPU != "gh200")) conda-python-build: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index bcacaf8b5eaa..d9bc251bebf4 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -56,7 +56,7 @@ jobs: sha: ${{ inputs.sha }} cache-paths: .cache/libcudf cache-key-prefix: libcudf-rtcx-v1 - cache-environment: LIBCUDF_KERNEL_CACHE_PATH=${{ github.workspace }}/.cache/libcudf + cache-environment: LIBCUDF_KERNEL_CACHE_PATH=.cache/libcudf # https://github.com/NVIDIA/cudf/issues/23498 matrix_filter: map(select(.GPU != "gb300" and .GPU != "gh200")) conda-cpp-benchmark-tests: diff --git a/ci/test_cpp_common.sh b/ci/test_cpp_common.sh index 730fd2cb8828..d88e604b0ef7 100755 --- a/ci/test_cpp_common.sh +++ b/ci/test_cpp_common.sh @@ -33,8 +33,8 @@ RESULTS_DIR=${RAPIDS_TESTS_DIR:-"$(mktemp -d)"} RAPIDS_TESTS_DIR=${RAPIDS_TESTS_DIR:-"${RESULTS_DIR}/test-results"}/ mkdir -p "${RAPIDS_TESTS_DIR}" -# CI provides LIBCUDF_KERNEL_CACHE_PATH through the reusable workflow's cache-environment input. -# Keep a workspace-relative default for local runs. +# CI provides LIBCUDF_KERNEL_CACHE_PATH as a workspace-relative path through the reusable workflow's +# cache-environment input. Keep the same default for local runs. export LIBCUDF_KERNEL_CACHE_PATH="${LIBCUDF_KERNEL_CACHE_PATH:-${PWD}/.cache/libcudf}" mkdir -p "${LIBCUDF_KERNEL_CACHE_PATH}" From 5609d4c0777eefc999712bb438ad1275e73c1183 Mon Sep 17 00:00:00 2001 From: Vyas Ramasubramani Date: Tue, 8 Sep 2026 13:38:54 -0700 Subject: [PATCH 5/9] fix: resolve libcudf JIT cache path before CTest --- ci/test_cpp_common.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ci/test_cpp_common.sh b/ci/test_cpp_common.sh index d88e604b0ef7..2882ee80fc2b 100755 --- a/ci/test_cpp_common.sh +++ b/ci/test_cpp_common.sh @@ -33,9 +33,13 @@ RESULTS_DIR=${RAPIDS_TESTS_DIR:-"$(mktemp -d)"} RAPIDS_TESTS_DIR=${RAPIDS_TESTS_DIR:-"${RESULTS_DIR}/test-results"}/ mkdir -p "${RAPIDS_TESTS_DIR}" -# CI provides LIBCUDF_KERNEL_CACHE_PATH as a workspace-relative path through the reusable workflow's -# cache-environment input. Keep the same default for local runs. -export LIBCUDF_KERNEL_CACHE_PATH="${LIBCUDF_KERNEL_CACHE_PATH:-${PWD}/.cache/libcudf}" +# CI provides LIBCUDF_KERNEL_CACHE_PATH through the reusable workflow's cache-environment input. +# Resolve a workspace-relative value before CTest changes its working directory. +LIBCUDF_KERNEL_CACHE_PATH="${LIBCUDF_KERNEL_CACHE_PATH:-.cache/libcudf}" +if [[ "${LIBCUDF_KERNEL_CACHE_PATH}" != /* ]]; then + LIBCUDF_KERNEL_CACHE_PATH="$(realpath -m "${LIBCUDF_KERNEL_CACHE_PATH}")" +fi +export LIBCUDF_KERNEL_CACHE_PATH mkdir -p "${LIBCUDF_KERNEL_CACHE_PATH}" rapids-print-env From 496427fe03407c1970cfa9bb321d51ae5a54bf9f Mon Sep 17 00:00:00 2001 From: Vyas Ramasubramani Date: Tue, 8 Sep 2026 14:43:54 -0700 Subject: [PATCH 6/9] ci: use shared workflow main for C++ test cache --- .github/workflows/pr.yaml | 2 +- .github/workflows/test.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 2d8ddb854a8c..e70c76216789 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -305,7 +305,7 @@ jobs: packages: read pull-requests: read secrets: inherit # zizmor: ignore[secrets-inherit] - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@codex/caller-cache-directories + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@main if: fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_build_inputs || fromJSON(needs.changed-files.outputs.changed_file_groups).cpp_test_files || fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp with: build_type: pull-request diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index d9bc251bebf4..5fc6cffc40f4 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -47,7 +47,7 @@ jobs: packages: read pull-requests: read secrets: inherit # zizmor: ignore[secrets-inherit] - uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@codex/caller-cache-directories + uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-tests.yaml@main with: build_type: ${{ inputs.build_type }} branch: ${{ inputs.branch }} From 967fc9fbfcc8e849a452102975592b07df0dd568 Mon Sep 17 00:00:00 2001 From: Vyas Ramasubramani Date: Tue, 8 Sep 2026 21:50:38 -0700 Subject: [PATCH 7/9] fix: update libcudf-streaming test dependency version --- dependencies.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies.yaml b/dependencies.yaml index f819941c5e05..d698c29a0f34 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -1137,7 +1137,7 @@ dependencies: - libcudf-example==26.12.*,>=0.0.0a0 - libcudf_kafka==26.12.*,>=0.0.0a0 - libcudf-tests==26.12.*,>=0.0.0a0 - - libcudf-streaming-tests==26.10.*,>=0.0.0a0 + - libcudf-streaming-tests==26.12.*,>=0.0.0a0 test_python_common: common: - output_types: [conda, requirements, constraints, pyproject] From d037d783e09b061c89a4c424825a76f7c7cf6613 Mon Sep 17 00:00:00 2001 From: Vyas Ramasubramani Date: Tue, 8 Sep 2026 21:52:05 -0700 Subject: [PATCH 8/9] fix: update libcudf-streaming test version --- ci/release/update-version.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/release/update-version.sh b/ci/release/update-version.sh index 3a643b70cd97..7f1982ee4125 100755 --- a/ci/release/update-version.sh +++ b/ci/release/update-version.sh @@ -158,6 +158,7 @@ DEPENDENCIES=( libcudf libcudf-example libcudf-streaming + libcudf-streaming-tests libcudf-tests libcudf_kafka libkvikio From 0c7ed31883b34f87d61e6f162111bfc696226d67 Mon Sep 17 00:00:00 2001 From: Vyas Ramasubramani Date: Tue, 8 Sep 2026 23:14:54 -0700 Subject: [PATCH 9/9] fix: preload libcudf JIT cache in C++ tests --- .github/workflows/pr.yaml | 4 +++- .github/workflows/test.yaml | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index eef2283bf938..be478fc7e77a 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -312,7 +312,9 @@ jobs: script: ci/test_cpp.sh cache-paths: .cache/libcudf cache-key-prefix: libcudf-rtcx-v1 - cache-environment: LIBCUDF_KERNEL_CACHE_PATH=.cache/libcudf + cache-environment: | + LIBCUDF_KERNEL_CACHE_PATH=.cache/libcudf + LIBCUDF_KERNEL_CACHE_PRELOAD=1 # https://github.com/NVIDIA/cudf/issues/23498 matrix_filter: map(select(.GPU != "gb300" and .GPU != "gh200")) conda-python-build: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 1793b428575a..396a9f641ca9 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -56,7 +56,9 @@ jobs: sha: ${{ inputs.sha }} cache-paths: .cache/libcudf cache-key-prefix: libcudf-rtcx-v1 - cache-environment: LIBCUDF_KERNEL_CACHE_PATH=.cache/libcudf + cache-environment: | + LIBCUDF_KERNEL_CACHE_PATH=.cache/libcudf + LIBCUDF_KERNEL_CACHE_PRELOAD=1 # https://github.com/NVIDIA/cudf/issues/23498 matrix_filter: map(select(.GPU != "gb300" and .GPU != "gh200")) conda-cpp-benchmark-tests: