From d1ef3ffe77ff53a2c621c803c0b79dc991bf3d71 Mon Sep 17 00:00:00 2001 From: Daniel Han Date: Sun, 30 Aug 2026 11:19:42 +0000 Subject: [PATCH] unsloth: pin ggml-org#25863 (HIP integrated host buffer) Our ROCm prebuilts currently miscompute on every AMD APU, and this is the pin that stops it. c7d87229 ("ggml-cuda : restore prop.integrated on HIP builds", #24233) turned the integrated flag back on for HIP. CUDA keeps it off with the comment "Temporarily disabled due to issues with corrupted output". With it on, the scheduler may place a compute input in pinned host memory, where an H2D write can race a graph that is still running. Two reporters bisected to that commit independently from different symptoms: #25992 (a -np 4 --kv-unified request returning another slot's response verbatim, gfx1151, clean parent) and #27506 (perplexity going from 7.72 to 3024 on Llama-3.2-3B from b10040, reproduced on three separate gfx1151 machines). #27579, #27556 and lemonade llamacpp-rocm#123 are the same shape: HIP wrong, Vulkan correct, same commit, same box. Corruption tracks n_ubatch < n_batch and is clean when the whole prompt fits one ubatch. Worth knowing when judging this: one of those reporters ran a greedy completion canary clean for forty minutes against a backend that was numerically broken the whole time, so a plausible-looking chat reply is not evidence either way here. The same reporter measured Vulkan 24% faster at decode on this chip, so there is no throughput case for leaving ROCm users on the broken path while upstream deliberates. #25863 is the narrow fix: refuse to schedule compute out of the host buffer on HIP integrated devices, leaving pinned memory available for staging. Discrete HIP and all CUDA paths are untouched, integrated is already false there. #27311 is the better end state, a ring buffer that makes host buffers correct rather than unavailable, but it is an 18-commit scheduler change that is currently CONFLICTING, so it is not pinnable today. Pinned rather than merged to master because the nightly tree is the upstream tag plus these pins; a master merge alone would ship nothing. Drop this entry once a base tag carries the work. --- scripts/unsloth/pr-set.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/unsloth/pr-set.json b/scripts/unsloth/pr-set.json index 9bcd34d88da0..a0c968a15c4e 100644 --- a/scripts/unsloth/pr-set.json +++ b/scripts/unsloth/pr-set.json @@ -24,6 +24,7 @@ "https://github.com/unslothai/llama.cpp/pull/91/commits/c86ed269986f2dced6325c5c58bda966a2e2ead1", "https://github.com/unslothai/llama.cpp/pull/95/commits/3db8cb5b2e9bf291057b9f19960e8601a162da81", "https://github.com/ggml-org/llama.cpp/pull/27754/commits/f30bed88717059d8a4728864c88f8abad8d329a0", - "https://github.com/unslothai/llama.cpp/pull/137/commits/4e1865e34ec5f6ca39403215c89129c13731be70" + "https://github.com/unslothai/llama.cpp/pull/137/commits/4e1865e34ec5f6ca39403215c89129c13731be70", + "https://github.com/ggml-org/llama.cpp/pull/25863/commits/ce82541acbaf5c532c0727d6ccb6de2b0b0c948d" ] }