Skip to content

Commit b71b1e6

Browse files
authored
Use sccache-dist build cluster for conda and wheel builds (#18)
RAPIDS has deployed an autoscaling cloud build cluster that can be used to accelerate building large RAPIDS projects. This PR updates the conda and wheel builds to use the build cluster. This contributes to rapidsai/build-planning#228. Authors: - Paul Taylor (https://github.com/trxcllnt) Approvers: - Bradley Dice (https://github.com/bdice) - Nate Rock (https://github.com/rockhowse) URL: #18
1 parent 31f99f2 commit b71b1e6

File tree

6 files changed

+30
-7
lines changed

6 files changed

+30
-7
lines changed

.devcontainer/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ ENV HISTFILE="/home/coder/.cache/._bash_history"
3434
ENV AWS_ROLE_ARN="arn:aws:iam::279114543810:role/nv-gha-token-sccache-devs"
3535
ENV SCCACHE_REGION="us-east-2"
3636
ENV SCCACHE_BUCKET="rapids-sccache-devs"
37+
ENV SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE=true
3738
ENV SCCACHE_IDLE_TIMEOUT=0
3839

3940
###

.github/workflows/build.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,10 @@ jobs:
3939
build_type: ${{ inputs.build_type || 'branch' }}
4040
branch: ${{ inputs.branch }}
4141
date: ${{ inputs.date }}
42+
node_type: cpu8
4243
script: ci/build_cpp.sh
4344
sha: ${{ inputs.sha }}
45+
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
4446
upload-conda-nightlies:
4547
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
4648
needs: [cpp-build]

.github/workflows/pr.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@ jobs:
3838
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@release/25.12
3939
with:
4040
build_type: pull-request
41+
node_type: cpu8
4142
script: ci/build_cpp.sh
43+
sccache-dist-token-secret-name: GIST_REPO_READ_ORG_GITHUB_TOKEN
4244
devcontainer:
4345
secrets: inherit
4446
needs: telemetry-setup

ci/build_cpp.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
set -euo pipefail
66

77
source rapids-configure-sccache
8-
98
source rapids-date-string
109

1110
export CMAKE_GENERATOR=Ninja
@@ -14,7 +13,7 @@ rapids-print-env
1413

1514
rapids-logger "Begin cpp build"
1615

17-
sccache --zero-stats
16+
sccache --stop-server 2>/dev/null || true
1817

1918
RAPIDS_PACKAGE_VERSION=$(rapids-generate-version)
2019
export RAPIDS_PACKAGE_VERSION
@@ -30,6 +29,7 @@ rattler-build build --recipe conda/recipes/libcumlprims \
3029
"${RATTLER_CHANNELS[@]}"
3130

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

3434
# remove build_cache directory to avoid uploading the entire source tree
3535
# tracked in https://github.com/prefix-dev/rattler-build/issues/1424

cmake/rapids_config.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,6 @@ endif()
3030
set(rapids-cmake-version "${RAPIDS_VERSION_MAJOR_MINOR}")
3131
set(rapids-cmake-branch "${_rapids_branch}")
3232
include("${CMAKE_CURRENT_LIST_DIR}/RAPIDS.cmake")
33+
34+
# Don't use sccache-dist for CMake's compiler tests
35+
set(ENV{SCCACHE_NO_DIST_COMPILE} "1")

conda/recipes/libcumlprims/recipe.yaml

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,32 @@ build:
4242
- AWS_ACCESS_KEY_ID
4343
- AWS_SECRET_ACCESS_KEY
4444
- AWS_SESSION_TOKEN
45+
- SCCACHE_DIST_AUTH_TOKEN
4546
env:
4647
CMAKE_C_COMPILER_LAUNCHER: ${{ env.get("CMAKE_C_COMPILER_LAUNCHER") }}
4748
CMAKE_CUDA_COMPILER_LAUNCHER: ${{ env.get("CMAKE_CUDA_COMPILER_LAUNCHER") }}
4849
CMAKE_CXX_COMPILER_LAUNCHER: ${{ env.get("CMAKE_CXX_COMPILER_LAUNCHER") }}
4950
CMAKE_GENERATOR: ${{ env.get("CMAKE_GENERATOR") }}
50-
SCCACHE_BUCKET: ${{ env.get("SCCACHE_BUCKET") }}
51-
SCCACHE_IDLE_TIMEOUT: ${{ env.get("SCCACHE_IDLE_TIMEOUT") }}
52-
SCCACHE_REGION: ${{ env.get("SCCACHE_REGION") }}
53-
SCCACHE_S3_USE_SSL: ${{ env.get("SCCACHE_S3_USE_SSL") }}
54-
SCCACHE_S3_NO_CREDENTIALS: ${{ env.get("SCCACHE_S3_NO_CREDENTIALS") }}
51+
NVCC_APPEND_FLAGS: ${{ env.get("NVCC_APPEND_FLAGS", default="") }}
52+
PARALLEL_LEVEL: ${{ env.get("PARALLEL_LEVEL", default="8") }}
53+
RAPIDS_ARTIFACTS_DIR: ${{ env.get("RAPIDS_ARTIFACTS_DIR", default="") }}
54+
SCCACHE_BUCKET: ${{ env.get("SCCACHE_BUCKET", default="") }}
55+
SCCACHE_DIST_AUTH_TYPE: ${{ env.get("SCCACHE_DIST_AUTH_TYPE", default="token") }}
56+
SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE: ${{ env.get("SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE", default="false") }}
57+
SCCACHE_DIST_MAX_RETRIES: ${{ env.get("SCCACHE_DIST_MAX_RETRIES", default="inf") }}
58+
SCCACHE_DIST_REQUEST_TIMEOUT: ${{ env.get("SCCACHE_DIST_REQUEST_TIMEOUT", default="7140") }}
59+
SCCACHE_DIST_SCHEDULER_URL: ${{ env.get("SCCACHE_DIST_SCHEDULER_URL", default="") }}
60+
SCCACHE_ERROR_LOG: ${{ env.get("SCCACHE_ERROR_LOG", default="/tmp/sccache.log") }}
61+
SCCACHE_IDLE_TIMEOUT: ${{ env.get("SCCACHE_IDLE_TIMEOUT", default="0") }}
62+
SCCACHE_NO_CACHE: ${{ env.get("SCCACHE_NO_CACHE", default="") }}
63+
SCCACHE_RECACHE: ${{ env.get("SCCACHE_RECACHE", default="") }}
64+
SCCACHE_REGION: ${{ env.get("SCCACHE_REGION", default="") }}
5565
SCCACHE_S3_KEY_PREFIX: libcumlprims/${{ env.get("RAPIDS_CONDA_ARCH") }}/cuda${{ cuda_major }}
66+
SCCACHE_S3_NO_CREDENTIALS: ${{ env.get("SCCACHE_S3_NO_CREDENTIALS", default="false") }}
67+
SCCACHE_S3_PREPROCESSOR_CACHE_KEY_PREFIX: libcumlprims/${{ env.get("RAPIDS_CONDA_ARCH") }}/cuda${{ cuda_major }}/conda/preprocessor-cache
68+
SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE: ${{ env.get("SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE", default="true") }}
69+
SCCACHE_S3_USE_SSL: ${{ env.get("SCCACHE_S3_USE_SSL", default="true") }}
70+
SCCACHE_SERVER_LOG: ${{ env.get("SCCACHE_SERVER_LOG", default="sccache=debug") }}
5671

5772
requirements:
5873
build:

0 commit comments

Comments
 (0)