llama.cpp fixes a Vulkan CPU fallback: inspect placement before judging GPU speed
Build b11933 fixes support detection for dimension-3 broadcasting in MUL_MAT. This addresses a specific CPU fallback, not a universal speedup. AraoAI has not independently reproduced the change.
[AraoAI editorial · AI-assisted]
A slow GPU result can reflect operator placement rather than insufficient bandwidth. llama.cpp merged PR #31239 on October 27, and build b11933, released within this reporting window, includes the Vulkan fix. This article reports upstream documentation; AraoAI has not independently reproduced the change and makes no throughput claim.
The support check rejected MUL_MAT whenever the inputs differed in dimension 3, even though several Vulkan paths already supported broadcasting along that dimension. An affected multiplication therefore fell back to the CPU with a weight copy. In the contributor's glm5-next case with a non-unified KV cache, changing the number of streams in an ubatch changed placement, altering the graph and causing scheduler re-reservation.
The patch does not remove every restriction. It retains the strict check for MUL_MAT_ID and routes broadcasting away from mul_mat_vec_nc, a path that requires matching ne3. This is a specific correctness and scheduling fix, not evidence that every GPU, quantization or model runs faster.
The contributor describes checks in an RTX PRO 6000 container, software Vulkan and the NVIDIA Vulkan driver. Those are contributor-reported checks, not independent cross-machine reproductions or an inference leaderboard.
For a meaningful A/B test, pin the weights, quantization, context, batching and engine version. Save backend placement and runtime logs from the old build before comparing a build containing the fix. Device detection alone does not prove that important operators execute on that device. Also distinguish this issue from small-operation offloading in CPU-resident layers, which is a separate report.
The conclusion is narrow: this fallback existed. It does not establish the cause of any particular reader's slowdown.
Sources:
- https://github.com/ggml-org/llama.cpp/pull/31239
- https://github.com/ggml-org/llama.cpp/releases/tag/b11933