]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/commit
ci : onboard AMD ROCm CI with gfx1151 fixes (llama/26544)
authorJim Wu <redacted>
Thu, 6 Aug 2026 08:43:26 +0000 (01:43 -0700)
committerGeorgi Gerganov <redacted>
Fri, 7 Aug 2026 18:59:49 +0000 (21:59 +0300)
commit69bd0a9ac5058585004d5063ac102dbd0427fe00
tree5f9044be2c7bc74c199222d1896ec6014dbd812d
parent5a80d0ad900ae2fd0dcb3bc2a38cafbb25e30246
ci : onboard AMD ROCm CI with gfx1151 fixes (llama/26544)

* ci: prepare for amd rocm ci

Signed-off-by: Aaron Teo <redacted>
* ci: fix editorconfig-checker

Signed-off-by: Aaron Teo <redacted>
* ci: fix device not recognised

Signed-off-by: Aaron Teo <redacted>
* ci: rename gpu-amd to gpu-hip

Signed-off-by: Aaron Teo <redacted>
* ci: gpu-hip to gpu-rocm

haha

Signed-off-by: Aaron Teo <redacted>
* CUDA: allow integrated-GPU host output buffer in debug assert

On integrated GPUs (APUs), the scheduler can legitimately place a graph
node's output on the host-visible buffer, which ggml_cuda_compute_forward
already handles. The debug assert in ggml_cuda_graph_evaluate_and_capture
required every node output to be on the device buffer, so a debug build
aborts on such a node (e.g. attn_residual ADD -> ROCm_Host on RDNA3.5).
The source-tensor assert directly below already permits this via the
integrated + cuda_host exception; apply the same exception to the node's
own output buffer. Debug-only; no effect on release/compute.

Fixes test-recurrent-state-rollback on gfx1151 (Strix Halo).

* ci: enable unified memory for ROCm gfx1151 job

Work around a coherence issue on integrated RDNA3.5 (gfx1151) where GPU
kernels reading mmap-loaded weights can return incorrect output, which
makes test-llama-archs (and real inference) intermittently wrong.
GGML_CUDA_ENABLE_UNIFIED_MEMORY=1 uses managed memory, which restores
coherence. Remove once the underlying ROCm/HIP issue is fixed.

* test-llama-archs: skip jamba on HIP backend

jamba produces incorrect output (~0.55 NMSE vs CPU) on the HIP backend on
RDNA3.5 (gfx1151); the SSM kernels need separate investigation. Skip it
for now, matching the existing per-backend carve-outs (WebGPU), so the
ROCm CI can run the test for the remaining architectures.

* ci: use HIP_LAUNCH_BLOCKING for ROCm gfx1151 job

The gfx1151 ROCm CI job produced incorrect inference output (qwen3 perplexity ~88 vs ~9.4) due to an async-execution correctness issue in the HIP path. Serializing kernel launches with HIP_LAUNCH_BLOCKING=1 restores correctness. This replaces the earlier GGML_CUDA_ENABLE_UNIFIED_MEMORY workaround, which did not fix batched inference.

* test-backend-sampler: skip top-k subtests on HIP backend

The ROCm backend does not support the TOP_K/ARGSORT op at vocab scale (no CUB; bitonic argsort is capped at ncols <= 1024), so top-k/top-p backend samplers cannot be offloaded. The penalties, set_sampler, mixed, and top_p subtests assert that offload happened, so they fail on HIP. Skip them until TOP_K is supported on the ROCm backend.

* Update tests/test-backend-sampler.cpp

Co-authored-by: Aaron Teo <redacted>
* Update tests/test-backend-sampler.cpp

Co-authored-by: Georgi Gerganov <redacted>
---------

Signed-off-by: Aaron Teo <redacted>
Co-authored-by: Aaron Teo <redacted>
Co-authored-by: Jim Wu <redacted>
Co-authored-by: Aaron Teo <redacted>
Co-authored-by: Georgi Gerganov <redacted>
ggml/src/ggml-cuda/ggml-cuda.cu