Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
35 changes: 35 additions & 0 deletions .github/actions/rust-cache-cuda/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: "Rust Cache with CUDA Architecture"
description: "Wraps Swatinem/rust-cache with GPU architecture in cache key to avoid CUDA library conflicts"

inputs:
cache-on-failure:
description: "Cache even if the build fails"
required: false
default: "true"
key:
description: "Additional cache key suffix"
required: false
default: ""

runs:
using: "composite"
steps:
- name: Detect GPU architecture
id: gpu-arch
shell: bash
run: |
if command -v nvidia-smi &> /dev/null; then
# Get compute capability (e.g., "8.9" -> "89")
CUDA_ARCH=$(nvidia-smi --query-gpu=compute_cap --format=csv,noheader 2>/dev/null | head -1 | tr -d '.' || echo "unknown")
echo "cuda_arch=$CUDA_ARCH" >> $GITHUB_OUTPUT
echo "Detected CUDA architecture: $CUDA_ARCH"
else
echo "cuda_arch=no-gpu" >> $GITHUB_OUTPUT
echo "No GPU detected"
fi

- name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: ${{ inputs.cache-on-failure }}
key: ${{ inputs.key }}${{ inputs.key && '-' || '' }}cuda-${{ steps.gpu-arch.outputs.cuda_arch }}
2 changes: 1 addition & 1 deletion .github/workflows/base-tests.cuda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
rustup component remove clippy || true
rm -rf ~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu || true
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: ./.github/actions/rust-cache-cuda
with:
cache-on-failure: true
- uses: taiki-e/install-action@nextest
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/benchmark-call.yml
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ jobs:
rustup component remove clippy || true
rm -rf ~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu || true
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: ./.github/actions/rust-cache-cuda
with:
cache-on-failure: true

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/extension-tests.cuda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ jobs:
rustup component remove clippy || true
rm -rf ~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu || true
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: ./.github/actions/rust-cache-cuda
with:
cache-on-failure: true
- uses: taiki-e/install-action@nextest
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/guest-lib-tests.cuda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ jobs:
rustup component remove clippy || true
rm -rf ~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu || true
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: ./.github/actions/rust-cache-cuda
with:
cache-on-failure: true
- uses: taiki-e/install-action@nextest
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lints.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ jobs:
rustup component remove clippy || true
rm -rf ~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu || true
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: ./.github/actions/rust-cache-cuda
with:
cache-on-failure: true
- name: Verify CUDA setup
Expand Down