← AUTOMATER NEWSROOM

llama.cpp b11558 Ships Same-Day OpenCL Fixes for Q4_K Kernels on Adreno GPUs

llama.cpp pushed three pre-release binary tags in under four hours on 11 October. The newest, b11558, fixes OpenCL image-limit handling for Q4_K dense bin kernels plus q4_0 broadcast and rms_norm subgroup issues. Here is what changed and how to roll it out safely.

A timeline of three llama.cpp release tags from 11 October (b11556 at 13:31, b11557 at 15:10 and b11558 at 17:25), each a pre-release tag listing 38 assets and linked attestations, with b11558's three separate OpenCL fixes highlighted for Adreno GPU lanes and an operator checklist.A timeline of three llama.cpp release tags from 11 October (b11556 at 13:31, b11557 at 15:10 and b11558 at 17:25), each a pre-release tag listing 38 assets and linked attestations, with b11558's three separate OpenCL fixes highlighted for Adreno GPU lanes and an operator checklist.
Original diagram of the same-day llama.cpp release train, showing b11558's three separate OpenCL fixes (Q4_K image-limit fallback, q4_0 broadcast, rms_norm subgroup) landing on Adreno-class mobile GPU lanes and the operator rollout checklist.

llama.cpp, the plain C/C++ inference runtime the project describes as enabling LLM and VLM inference with minimal setup across a wide range of hardware, locally and in the cloud, shipped three pre-release binary tags in under four hours on 11 October. The newest, b11558, published by the project’s github-actions release account at 17:25 UTC, is a focused OpenCL maintenance drop. If you run Q4_K-quantized models on Adreno-class mobile GPUs, or you mix CPU and GPU backends across a fleet, this is the tag to read before you pin.

The GitHub release page for llama.cpp b11558, a pre-release tag published by github-actions on 11 Oct at 17:25 UTC, showing release notes for OpenCL fixes covering Q4_K dense bin kernel image limits, q4_0 broadcast and rms_norm.
Screenshot of the official llama.cpp release page for tag b11558 on GitHub, showing the pre-release label, the 11 Oct 17:25 UTC publish time, and release notes describing the OpenCL fixes for Q4_K weight-image limits, q4_0 broadcast and rms_norm subgroups. · Original source

What b11558 actually changes

The b11558 release notes are short and specific. The tag contains one merged change set listing three OpenCL fixes:

  • Q4_K weight images. The OpenCL backend now falls back when Q4_K weight images exceed device limits.
  • rms_norm. The kernel avoids launching an incomplete subgroup.
  • Dense bin kernels and q4_0. The conditions for dense bin kernels were refined, and the broadcast path for q4_0 was fixed.

All three fixes were co-authored with a Qualcomm engineer, which fits the target: the llama.cpp repository lists OpenCL as its supported backend for Adreno GPUs. The tag lists 38 release assets across macOS, Linux, Windows and Android. It was published from commit c83f305, which GitHub marks as created on GitHub.com and signed with GitHub’s verified signature, and the release page links attestation records you can check before deploying.

Three cards presenting the separate OpenCL fixes in llama.cpp b11558: a fallback when Q4_K weight images exceed device limits, avoiding an incomplete subgroup in rms_norm, and refined dense bin kernel conditions with a q4_0 broadcast fix, with a note that the release notes report no verification results.Three cards presenting the separate OpenCL fixes in llama.cpp b11558: a fallback when Q4_K weight images exceed device limits, avoiding an incomplete subgroup in rms_norm, and refined dense bin kernel conditions with a q4_0 broadcast fix, with a note that the release notes report no verification results.
Original diagram summarizing the three separate changes in the b11558 OpenCL change set as listed in the official release notes, without asserting any verification or control-flow behavior the notes do not document.

The afternoon’s release train

b11558 did not arrive alone. The releases index shows a rapid same-day cadence, and the two preceding tags carry their own operational weight:

Tag Published (UTC, 11 Oct) Headline change
b11556 13:31 Runtime support for Prism Bonsai 2 27B, including converter work for the model’s Hadamard-folded weights
b11557 15:10 GGML_RPC_DEBUG becomes a numeric verbosity level (0-3) with a shared logging choke point for the RPC backend
b11558 17:25 OpenCL Q4_K image-limit fallback, q4_0 broadcast fix, rms_norm subgroup fix

Two of the three are quietly about operating models, not launching them. The RPC logging rework in b11557 turns the old on/off debug macro into a dial: unset or 0 disables debug logs, 1-3 emit increasingly detailed output covering handshake, buffer operations, tensor transfers, graph computes and cache decisions. Degraded-operation events such as remote allocation failure, RDMA falling back to TCP and unexpected peer disconnects are now promoted to warnings, and graph cache eviction is logged on both client and server so the incremental graph update contract stays observable. One practical footnote from the notes: llama.cpp applications drop ggml debug records unless you raise the verbosity threshold with -lv 5.

If you run distributed inference across machines with the RPC backend, the new logging is the easiest upgrade in the batch to justify:

# client or server environment
export GGML_RPC_DEBUG=2   # per-tensor transfers and per-command traces

What operators should do with a four-hour release train

The llama.cpp repository describes the project’s goal as LLM and VLM inference with minimal setup across a wide range of hardware, and the binary cadence now matches a continuous-delivery rhythm more than a traditional release cycle. That is good for bug turnaround and bad for anyone treating a local runtime as an unpinned, fire-and-forget dependency. A same-day train means your canary window is the only thing standing between a broken edge lane and your whole fleet.

A workable rollout pattern:

  1. Read the notes, not just the tag. Each of these tags contains one focused change set. The b11558 notes are three bullet points; skim them before promoting anything.
  2. Canary one lane per backend class. If you run Adreno OpenCL devices, canary b11558 there specifically — the fixes target device-limit behavior that your CUDA lanes will never exercise. Our guide to canarying every CLI upgrade covers why unpinned lanes drift in defaults and behavior long before anyone notices.
  3. Pin and record. Note the tag, commit hash and attestation link for every deployed runtime in a register, the same way you would track background model upgrades on adjacent local runtimes.
  4. Match hardware to backend deliberately. Mobile OpenCL, desktop Vulkan and CPU-only lanes fail in different ways; a local AI workstation plan that names the backend per device makes these notes actionable instead of academic.

None of these three tags is a headline feature launch. Together they show something more useful for day-to-day operations: the local-inference floor is being maintained at cadence, across model support, distributed debugging and mobile GPU correctness, with prebuilt assets ready to download the same afternoon.

Sources

  1. Release b11558 · ggml-org/llama.cpp · GitHub
  2. Release b11557 · ggml-org/llama.cpp · GitHub
  3. Release b11556 · ggml-org/llama.cpp · GitHub
  4. Releases · ggml-org/llama.cpp · GitHub
  5. GitHub - ggml-org/llama.cpp: LLM inference in C/C++ · GitHub