Commit fc0be8618 for llama.cpp
commit fc0be86182c86ac19ea09b2839b2fa1187ef595c
Author: Iswarya Alex <47045679+iswaryaalex@users.noreply.github.com>
Date: Mon Nov 9 04:01:52 2026 -0800
ci : Run gfx1151 ROCm job on Strix Halo Devlab runners (#31567)
* fix(rocm,ci): Update ci workflow to use devlab ci runners for gfx1151
* ci : move gpu-rocm job to Strix Halo devlab runners
Assisted-by: Claude
* ci : ROCm 10 wheels with per-GPU device packages for gpu-rocm; add gfx1201
The runners' system ROCm 7.2.1 cannot compile the current HIP code for
gfx1151 ("Invalid dpp_ctrl value" in mmf-instance-ncols_*.cu). Go back
to the TheRock ROCm 10 wheels with the device-<gfx> extra, so rocBLAS
has the target's kernels, and keep ci/run.sh's results and models under
$RUNNER_TEMP instead of the runners' RAM-backed home. Add a gfx1201
(Radeon AI PRO R9700) row with HIP graphs disabled.
Assisted-by: Claude
---------
Co-authored-by: David Hekimian <dhekimian@users.noreply.github.com>
diff --git a/.github/workflows/ci-self-hosted-cuda.yml b/.github/workflows/ci-self-hosted-cuda.yml
index 89605f4dd..d433b9526 100644
--- a/.github/workflows/ci-self-hosted-cuda.yml
+++ b/.github/workflows/ci-self-hosted-cuda.yml
@@ -93,13 +93,72 @@ jobs:
save: true
gpu-rocm:
- runs-on: [self-hosted, Linux, AMD]
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ # Strix Halo (iGPU, RDNA3.5)
+ - gpu: gfx1151
+ runner: [self-hosted, Linux, strix-halo, devlab-dispatch]
+ # async-execution correctness workaround, gfx1151 only (see Test step)
+ hip_launch_blocking: "1"
+ # Radeon AI PRO R9700 (dGPU, RDNA4)
+ - gpu: gfx1201
+ runner: [self-hosted, Linux, radeon-r9700, devlab-dispatch]
+ hip_launch_blocking: "0"
+ # HIP-graph capture fails on gfx1201 (hipMemset -> hipErrorStreamCaptureImplicit)
+ disable_hip_graphs: true
+
+ name: gpu-rocm (${{ matrix.gpu }})
+ runs-on: ${{ matrix.runner }}
+ timeout-minutes: 120
+
+ env:
+ ROCM_VERSION: "10.0.0"
steps:
- name: Clone
id: checkout
uses: actions/checkout@v6
+ - name: Verify GPU device
+ run: |
+ ls /dev/kfd /dev/dri/renderD* || { echo "ERROR: no amdgpu compute device"; exit 1; }
+
+ # same TheRock wheels as the ubuntu-24-rocm release build, so the runner does not need a ROCm install
+ - name: Setup TheRock with Wheels
+ run: |
+ python3 -m venv "$RUNNER_TEMP/rocm"
+ "$RUNNER_TEMP/rocm/bin/python" -m pip install --index-url https://stable.repo.amd.com/rocm/whl-next/ "rocm[libraries,devel,device-${{ matrix.gpu }}]==${ROCM_VERSION}"
+ ROCM_PATH=$("$RUNNER_TEMP/rocm/bin/rocm-sdk" path --root)
+ {
+ echo "ROCM_PATH=$ROCM_PATH"
+ echo "HIP_PATH=$ROCM_PATH"
+ echo "CMAKE_PREFIX_PATH=$("$RUNNER_TEMP/rocm/bin/rocm-sdk" path --cmake)"
+ echo "LD_LIBRARY_PATH=$ROCM_PATH/lib:${LD_LIBRARY_PATH:-}"
+ } >> "$GITHUB_ENV"
+ "$RUNNER_TEMP/rocm/bin/rocm-sdk" path --bin >> "$GITHUB_PATH"
+
+ - name: ccache
+ uses: ggml-org/ccache-action@v1.2.24
+ with:
+ restore: false
+ save: false
+
+ # ROCm is installed again on each run, so hash the compiler content, not its mtime
+ - name: Tune ccache for reinstalled ROCm toolchain
+ run: |
+ ccache --set-config=compiler_check=content
+ ccache --set-config=sloppiness=time_macros,include_file_mtime,include_file_ctime
+ ccache --set-config=depend_mode=true
+
+ - name: ccache-buckets-restore
+ uses: ./.github/actions/ccache-buckets
+ with:
+ key: self-hosted-gpu-rocm-${{ matrix.gpu }}
+ folder: llama.cpp
+ hf_bucket: ggml-org/cache
+
- name: Test
id: ggml-ci
# HIP_LAUNCH_BLOCKING=1: workaround for an async-execution correctness
@@ -107,10 +166,25 @@ jobs:
# incorrect output (perplexity ~88 vs ~9.4). Serializing kernel launches
# restores correctness. Remove once the underlying ROCm/HIP issue is fixed.
env:
- HIP_LAUNCH_BLOCKING: "1"
+ HIP_LAUNCH_BLOCKING: ${{ matrix.hip_launch_blocking }}
run: |
rocminfo
- GG_BUILD_ROCM=1 GG_BUILD_AMDGPU_TARGETS=gfx1151 bash ./ci/run.sh ~/results/llama.cpp ~/mnt/llama.cpp
+ # Exported rather than set in env:, because ggml only checks that the
+ # variable is defined: an empty value would disable graphs on gfx1151 too.
+ if [ "${{ matrix.disable_hip_graphs }}" = "true" ]; then export GGML_CUDA_DISABLE_GRAPHS=1; fi
+ GG_BUILD_ROCM=1 GG_BUILD_AMDGPU_TARGETS=${{ matrix.gpu }} bash ./ci/run.sh "$RUNNER_TEMP/results/llama.cpp" "$RUNNER_TEMP/mnt/llama.cpp"
+
+ - name: ccache-buckets-save
+ if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
+ uses: ./.github/actions/ccache-buckets
+ env:
+ HF_TOKEN: ${{ secrets.HF_TOKEN_CACHE_OUTPUT }}
+ with:
+ key: self-hosted-gpu-rocm-${{ matrix.gpu }}
+ folder: llama.cpp
+ evict-old-files: 1d
+ hf_bucket: ggml-org/cache
+ save: true
# TODO: provision AMD GPU machine
# amd-rocm: