Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
4289acd
Update conda and wheel builds to use `sccache-dist`
trxcllnt Nov 4, 2025
d430205
use default value for NVCC_APPEND_FLAGS if unset
trxcllnt Nov 4, 2025
df04352
Merge branch 'main' of github.com:rapidsai/kvikio into fea/use-sccach…
trxcllnt Nov 5, 2025
3321104
Merge branch 'main' of github.com:rapidsai/kvikio into fea/use-sccach…
trxcllnt Nov 5, 2025
7655dbf
disable build cache for stress tests
trxcllnt Nov 6, 2025
4e5dfa1
Merge branch 'main' of github.com:rapidsai/kvikio into fea/use-sccach…
trxcllnt Nov 7, 2025
3455cb4
don't stop the server
trxcllnt Nov 7, 2025
fd89361
use cpu16 instances for C++ builds
trxcllnt Nov 7, 2025
709fdf3
Merge branch 'main' of github.com:rapidsai/kvikio into fea/use-sccach…
trxcllnt Nov 7, 2025
d8c22ac
remove SCCACHE_NO_CACHE=1
trxcllnt Nov 10, 2025
5e2bad3
use cpu8 GHA runners
trxcllnt Nov 10, 2025
1722e30
lazily start the sccache daemon
trxcllnt Nov 11, 2025
e59f634
stop the sccache daemon instead of zeroing so that the first invocati…
trxcllnt Nov 11, 2025
1a44ce6
list SCCACHE_DIST_AUTH_TOKEN as a conda build secret
trxcllnt Nov 11, 2025
a60e0ce
Merge branch 'main' of github.com:rapidsai/kvikio into fea/use-sccach…
trxcllnt Nov 11, 2025
cbb8d76
test cpu8 -> cpu4
trxcllnt Nov 11, 2025
af3b595
Revert "test cpu8 -> cpu4"
trxcllnt Nov 12, 2025
4eb900e
use rapidsai/shared-workflows@main again
trxcllnt Nov 13, 2025
85dfaae
pass SCCACHE_NO_CACHE and SCCACHE_RECACHE through to conda-build
trxcllnt Nov 13, 2025
f74e487
test SCCACHE_RECACHE=1
trxcllnt Nov 13, 2025
28ea74b
Merge branch 'release/25.12' of github.com:rapidsai/kvikio into fea/u…
trxcllnt Nov 15, 2025
ac63e63
remove SCCACHE_RECACHE=1
trxcllnt Nov 15, 2025
d95c8e7
print stats in CI on server shutdown
trxcllnt Nov 15, 2025
37ba5a2
use S3 as the preprocessor cache location
trxcllnt Nov 19, 2025
742ebd5
use S3 as the preprocessor cache location in devcontainers
trxcllnt Nov 19, 2025
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 .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ ENV HISTFILE="/home/coder/.cache/._bash_history"
ENV AWS_ROLE_ARN="arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs"
ENV SCCACHE_REGION="us-east-2"
ENV SCCACHE_BUCKET="rapids-sccache-devs"
ENV SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE=true
ENV SCCACHE_IDLE_TIMEOUT=0

###
Expand Down
7 changes: 7 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,11 @@ jobs:
with:
build_type: ${{ inputs.build_type || 'branch' }}
branch: ${{ inputs.branch }}
node_type: cpu8
date: ${{ inputs.date }}
script: ci/build_cpp.sh
sha: ${{ inputs.sha }}
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
python-build:
needs: [cpp-build]
secrets: inherit
Expand All @@ -51,6 +53,7 @@ jobs:
date: ${{ inputs.date }}
script: ci/build_python.sh
sha: ${{ inputs.sha }}
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
upload-conda:
needs: [cpp-build, python-build]
secrets: inherit
Expand Down Expand Up @@ -83,9 +86,11 @@ jobs:
branch: ${{ inputs.branch }}
sha: ${{ inputs.sha }}
date: ${{ inputs.date }}
node_type: cpu8
script: ci/build_wheel_cpp.sh
package-name: libkvikio
package-type: cpp
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
wheel-build-python:
needs: wheel-build-cpp
secrets: inherit
Expand All @@ -95,8 +100,10 @@ jobs:
branch: ${{ inputs.branch }}
sha: ${{ inputs.sha }}
date: ${{ inputs.date }}
node_type: cpu8
script: ci/build_wheel_python.sh
package-name: kvikio
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
package-type: python
wheel-publish-cpp:
needs: wheel-build-cpp
Expand Down
10 changes: 10 additions & 0 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,9 @@ jobs:
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@release/25.12
with:
build_type: pull-request
node_type: cpu8
script: ci/build_cpp.sh
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
conda-cpp-tests:
needs: [conda-cpp-build, changed-files]
secrets: inherit
Expand All @@ -104,6 +106,7 @@ jobs:
with:
build_type: pull-request
script: ci/test_cpp.sh
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
conda-java-tests:
needs: conda-cpp-build
secrets: inherit
Expand All @@ -121,6 +124,7 @@ jobs:
with:
build_type: pull-request
script: ci/build_python.sh
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
conda-python-tests:
needs: [conda-python-build, changed-files]
secrets: inherit
Expand All @@ -129,6 +133,7 @@ jobs:
with:
build_type: pull-request
script: ci/test_python.sh
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
docs-build:
needs: conda-python-build
secrets: inherit
Expand Down Expand Up @@ -164,18 +169,22 @@ jobs:
with:
matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber)))
build_type: pull-request
node_type: cpu8
script: ci/build_wheel_cpp.sh
package-name: libkvikio
package-type: cpp
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
wheel-python-build:
needs: wheel-cpp-build
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@release/25.12
with:
build_type: pull-request
node_type: cpu8
script: ci/build_wheel_python.sh
package-name: kvikio
package-type: python
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
wheel-python-tests:
needs: [wheel-python-build, changed-files]
secrets: inherit
Expand All @@ -184,6 +193,7 @@ jobs:
with:
build_type: pull-request
script: ci/test_wheel.sh
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
telemetry-summarize:
# This job must use a self-hosted runner to record telemetry traces.
runs-on: linux-amd64-cpu4
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ jobs:
date: ${{ inputs.date }}
script: ci/test_cpp.sh
sha: ${{ inputs.sha }}
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
python-tests:
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/conda-python-tests.yaml@release/25.12
Expand All @@ -41,6 +42,7 @@ jobs:
date: ${{ inputs.date }}
script: ci/test_python.sh
sha: ${{ inputs.sha }}
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
conda-java-tests:
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@release/25.12
Expand Down
4 changes: 2 additions & 2 deletions ci/build_cpp.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
set -euo pipefail

source rapids-configure-sccache

source rapids-date-string

export CMAKE_GENERATOR=Ninja
Expand All @@ -14,7 +13,7 @@ rapids-print-env

rapids-logger "Begin cpp build"

sccache --zero-stats
sccache --stop-server 2>/dev/null || true

RAPIDS_PACKAGE_VERSION=$(rapids-generate-version)
export RAPIDS_PACKAGE_VERSION
Expand Down Expand Up @@ -66,6 +65,7 @@ rattler-build build --recipe conda/recipes/libkvikio \
"${RATTLER_CHANNELS[@]}"

sccache --show-adv-stats
sccache --stop-server >/dev/null 2>&1 || true

# remove build_cache directory to avoid uploading the entire source tree
# tracked in https://github.com/prefix-dev/rattler-build/issues/1424
Expand Down
4 changes: 2 additions & 2 deletions ci/build_python.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
set -euo pipefail

source rapids-configure-sccache

source rapids-date-string

export CMAKE_GENERATOR=Ninja
Expand All @@ -26,7 +25,7 @@ rapids-logger "Prepending channel ${CPP_CHANNEL} to RATTLER_CHANNELS"

RATTLER_CHANNELS=("--channel" "${CPP_CHANNEL}" "${RATTLER_CHANNELS[@]}")

sccache --zero-stats
sccache --stop-server 2>/dev/null || true

rapids-logger "Building kvikio"

Expand All @@ -38,6 +37,7 @@ rattler-build build --recipe conda/recipes/kvikio \
"${RATTLER_CHANNELS[@]}"

sccache --show-adv-stats
sccache --stop-server >/dev/null 2>&1 || true

# remove build_cache directory to avoid uploading the entire source tree
# tracked in https://github.com/prefix-dev/rattler-build/issues/1424
Expand Down
6 changes: 5 additions & 1 deletion ci/build_wheel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,14 @@ source rapids-configure-sccache
source rapids-date-string
source rapids-init-pip

export SCCACHE_S3_PREPROCESSOR_CACHE_KEY_PREFIX="${package_name}/${RAPIDS_CONDA_ARCH}/cuda${RAPIDS_CUDA_VERSION%%.*}/wheel/preprocessor-cache"
export SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE=true

rapids-generate-version > ./VERSION

cd "${package_dir}"

sccache --zero-stats
sccache --stop-server 2>/dev/null || true

rapids-logger "Building '${package_name}' wheel"
rapids-pip-retry wheel \
Expand All @@ -26,3 +29,4 @@ rapids-pip-retry wheel \
.

sccache --show-adv-stats
sccache --stop-server >/dev/null 2>&1 || true
3 changes: 3 additions & 0 deletions cmake/rapids_config.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,6 @@ if(NOT rapids-cmake-branch)
set(rapids-cmake-branch "${_rapids_branch}")
endif()
include("${CMAKE_CURRENT_LIST_DIR}/RAPIDS.cmake")

# Don't use sccache-dist for CMake's compiler tests
set(ENV{SCCACHE_NO_DIST_COMPILE} "1")
25 changes: 20 additions & 5 deletions conda/recipes/kvikio/recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,32 @@ build:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_SESSION_TOKEN
- SCCACHE_DIST_AUTH_TOKEN
env:
CMAKE_C_COMPILER_LAUNCHER: ${{ env.get("CMAKE_C_COMPILER_LAUNCHER") }}
CMAKE_CUDA_COMPILER_LAUNCHER: ${{ env.get("CMAKE_CUDA_COMPILER_LAUNCHER") }}
CMAKE_CXX_COMPILER_LAUNCHER: ${{ env.get("CMAKE_CXX_COMPILER_LAUNCHER") }}
CMAKE_GENERATOR: ${{ env.get("CMAKE_GENERATOR") }}
SCCACHE_BUCKET: ${{ env.get("SCCACHE_BUCKET") }}
SCCACHE_IDLE_TIMEOUT: ${{ env.get("SCCACHE_IDLE_TIMEOUT") }}
SCCACHE_REGION: ${{ env.get("SCCACHE_REGION") }}
SCCACHE_S3_USE_SSL: ${{ env.get("SCCACHE_S3_USE_SSL") }}
SCCACHE_S3_NO_CREDENTIALS: ${{ env.get("SCCACHE_S3_NO_CREDENTIALS") }}
NVCC_APPEND_FLAGS: ${{ env.get("NVCC_APPEND_FLAGS", default="") }}
PARALLEL_LEVEL: ${{ env.get("PARALLEL_LEVEL", default="8") }}
RAPIDS_ARTIFACTS_DIR: ${{ env.get("RAPIDS_ARTIFACTS_DIR", default="") }}
SCCACHE_BUCKET: ${{ env.get("SCCACHE_BUCKET", default="") }}
SCCACHE_DIST_AUTH_TYPE: ${{ env.get("SCCACHE_DIST_AUTH_TYPE", default="token") }}
SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE: ${{ env.get("SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE", default="false") }}
SCCACHE_DIST_MAX_RETRIES: ${{ env.get("SCCACHE_DIST_MAX_RETRIES", default="inf") }}
SCCACHE_DIST_REQUEST_TIMEOUT: ${{ env.get("SCCACHE_DIST_REQUEST_TIMEOUT", default="7140") }}
SCCACHE_DIST_SCHEDULER_URL: ${{ env.get("SCCACHE_DIST_SCHEDULER_URL", default="") }}
SCCACHE_ERROR_LOG: ${{ env.get("SCCACHE_ERROR_LOG", default="/tmp/sccache.log") }}
SCCACHE_IDLE_TIMEOUT: ${{ env.get("SCCACHE_IDLE_TIMEOUT", default="0") }}
SCCACHE_NO_CACHE: ${{ env.get("SCCACHE_NO_CACHE", default="") }}
SCCACHE_RECACHE: ${{ env.get("SCCACHE_RECACHE", default="") }}
SCCACHE_REGION: ${{ env.get("SCCACHE_REGION", default="") }}
SCCACHE_S3_KEY_PREFIX: kvikio/${{ env.get("RAPIDS_CONDA_ARCH") }}/cuda${{ cuda_major }}
SCCACHE_S3_NO_CREDENTIALS: ${{ env.get("SCCACHE_S3_NO_CREDENTIALS", default="false") }}
SCCACHE_S3_PREPROCESSOR_CACHE_KEY_PREFIX: kvikio/${{ env.get("RAPIDS_CONDA_ARCH") }}/cuda${{ cuda_major }}/conda/preprocessor-cache
SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE: ${{ env.get("SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE", default="true") }}
SCCACHE_S3_USE_SSL: ${{ env.get("SCCACHE_S3_USE_SSL", default="true") }}
SCCACHE_SERVER_LOG: ${{ env.get("SCCACHE_SERVER_LOG", default="sccache=debug") }}

requirements:
build:
Expand Down
27 changes: 20 additions & 7 deletions conda/recipes/libkvikio/recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,19 +42,32 @@ cache:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_SESSION_TOKEN
- SCCACHE_DIST_AUTH_TOKEN
env:
CMAKE_C_COMPILER_LAUNCHER: ${{ env.get("CMAKE_C_COMPILER_LAUNCHER") }}
CMAKE_CUDA_COMPILER_LAUNCHER: ${{ env.get("CMAKE_CUDA_COMPILER_LAUNCHER") }}
CMAKE_CXX_COMPILER_LAUNCHER: ${{ env.get("CMAKE_CXX_COMPILER_LAUNCHER") }}
CMAKE_GENERATOR: ${{ env.get("CMAKE_GENERATOR") }}
PARALLEL_LEVEL: ${{ env.get("PARALLEL_LEVEL") }}
RAPIDS_ARTIFACTS_DIR: ${{ env.get("RAPIDS_ARTIFACTS_DIR") }}
SCCACHE_BUCKET: ${{ env.get("SCCACHE_BUCKET") }}
SCCACHE_IDLE_TIMEOUT: ${{ env.get("SCCACHE_IDLE_TIMEOUT") }}
SCCACHE_REGION: ${{ env.get("SCCACHE_REGION") }}
SCCACHE_S3_USE_SSL: ${{ env.get("SCCACHE_S3_USE_SSL") }}
SCCACHE_S3_NO_CREDENTIALS: ${{ env.get("SCCACHE_S3_NO_CREDENTIALS") }}
NVCC_APPEND_FLAGS: ${{ env.get("NVCC_APPEND_FLAGS", default="") }}
PARALLEL_LEVEL: ${{ env.get("PARALLEL_LEVEL", default="8") }}
RAPIDS_ARTIFACTS_DIR: ${{ env.get("RAPIDS_ARTIFACTS_DIR", default="") }}
SCCACHE_BUCKET: ${{ env.get("SCCACHE_BUCKET", default="") }}
SCCACHE_DIST_AUTH_TYPE: ${{ env.get("SCCACHE_DIST_AUTH_TYPE", default="token") }}
SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE: ${{ env.get("SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE", default="false") }}
SCCACHE_DIST_MAX_RETRIES: ${{ env.get("SCCACHE_DIST_MAX_RETRIES", default="inf") }}
SCCACHE_DIST_REQUEST_TIMEOUT: ${{ env.get("SCCACHE_DIST_REQUEST_TIMEOUT", default="7140") }}
SCCACHE_DIST_SCHEDULER_URL: ${{ env.get("SCCACHE_DIST_SCHEDULER_URL", default="") }}
SCCACHE_ERROR_LOG: ${{ env.get("SCCACHE_ERROR_LOG", default="/tmp/sccache.log") }}
SCCACHE_IDLE_TIMEOUT: ${{ env.get("SCCACHE_IDLE_TIMEOUT", default="0") }}
SCCACHE_NO_CACHE: ${{ env.get("SCCACHE_NO_CACHE", default="") }}
SCCACHE_RECACHE: ${{ env.get("SCCACHE_RECACHE", default="") }}
SCCACHE_REGION: ${{ env.get("SCCACHE_REGION", default="") }}
SCCACHE_S3_KEY_PREFIX: libkvikio/${{ env.get("RAPIDS_CONDA_ARCH") }}/cuda${{ cuda_key_string }}
SCCACHE_S3_NO_CREDENTIALS: ${{ env.get("SCCACHE_S3_NO_CREDENTIALS", default="false") }}
SCCACHE_S3_PREPROCESSOR_CACHE_KEY_PREFIX: libkvikio/${{ env.get("RAPIDS_CONDA_ARCH") }}/cuda${{ cuda_major }}/conda/preprocessor-cache
SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE: ${{ env.get("SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE", default="true") }}
SCCACHE_S3_USE_SSL: ${{ env.get("SCCACHE_S3_USE_SSL", default="true") }}
SCCACHE_SERVER_LOG: ${{ env.get("SCCACHE_SERVER_LOG", default="sccache=debug") }}
requirements:
build:
- ${{ compiler("c") }}
Expand Down