Repository navigation
QVAC-27393 fix[speech]: ship the Adreno OpenCL q8_0 GEMM fix (ggml-speech 2026-10-23, speech-cpp 2026-10-23#2) - #5326
Merged
Conversation
…eech 2026-10-23) The speech addons override ggml-speech at 2026-10-07#1, whose default Adreno q8_0 prefill GEMM keeps its sums in fp16. A dot product past 65504 comes back as inf; TranscribePsy's first feed-forward block reaches 66k on some 60 s windows, the inf becomes NaN and attention spreads it over the window, so long recordings on Adreno OpenCL lost most of their text after the first window. qvac-ext-ggml#129 fixed the kernel and registry #446 published it as ggml-speech 2026-10-23. - asr-ggml, audiogen-ggml, bci-whispercpp, tts-ggml: ggml-speech override 2026-10-07#1 -> 2026-10-23 and qvac["ggml-speech"] to match, in lockstep. The override wins over speech-cpp's version>= floor, so moving it is what ships the fix. speech-cpp stays at 2026-10-20#1. - The jump also brings ggml-speech 2026-10-19 (Adreno KQ/KQV image kernels no longer miscompute attention over 32+ query tokens with unpadded lengths) and 2026-10-20 (WebGPU backend, an opt-in feature these addons do not enable). 2026-10-07#2 only kept Hexagon out of the build. - CHANGELOG entries under [Unreleased] in all four. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Review StatusCurrent Status: ❌ PENDING Pending reviews: Needs 1 Management or Team Lead, and 1 more from Management, Team Lead, or Member. |
Contributor
License compliance — cleanNo new dependency license findings in this PR. Warn-only (shadow) mode — this check does not block merges yet. Updated automatically by the canonical license compliance workflow. NOTICE presence (advisory)Missing NOTICE (advisory, does not block):
|
mexxik
previously approved these changes
Oct 23, 2026
GustavoA1604
previously approved these changes
Oct 23, 2026
…23#2 speech-cpp 2026-10-23#2 (registry #447) requires ggml-speech >= 2026-10-23, the version this PR already overrides, so all four addons move their speech-cpp override from 2026-10-20#1 in lockstep. The CHANGELOGs record what the range adds to the prebuilds: the Core ML diarizer sidecars, Mosaic loading and the Nemotron 3 Diarization loader fix (asr-ggml), the Parler-TTS Core ML DAC sidecar and non-finite logit error (tts-ggml), and the whisper fit capacity query (asr-ggml, bci-whispercpp). Its Hexagon, WebGPU and MiniMax Core ML routes are not built: the port refuses Hexagon ggml, webgpu is opt-in and audiogen-ggml does not enable coreml. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GustavoA1604
approved these changes
Oct 23, 2026
freddy311082
approved these changes
Oct 23, 2026
Zbig9000
added a commit
that referenced
this pull request
Oct 23, 2026
#5326 moved all four speech addons to ggml-speech 2026-10-23 and speech-cpp 2026-10-23#2. Releasing asr-ggml next to audiogen-ggml 0.9.0, bci-whispercpp 0.14.0 and tts-ggml 0.14.0 keeps every published speech addon on the same ggml-speech build. The [Unreleased] block becomes [0.11.1] - 2026-10-23 with the PR links added. pnpm-lock.yaml is unchanged: pnpm-workspace.yaml excludes packages/asr-ggml. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
freddy311082
pushed a commit
that referenced
this pull request
Oct 23, 2026
…hispercpp 0.14.0 and tts-ggml 0.14.0 (#5327) * QVAC-27419 chore: release audiogen-ggml 0.9.0, bci-whispercpp 0.14.0 and tts-ggml 0.14.0 Minor bumps for the speech addons other than asr-ggml, which shipped 0.11.0 in #5289. Each [Unreleased] CHANGELOG block becomes its release section dated 2026-10-23, with the PR links added; the entries are unchanged. All three already pin speech-cpp 2026-10-20 port-version 1 in vcpkg.json, matching the changelogs; vcpkg-configuration.json is untouched. @qvac/sdk and @qvac/inference keep ^0.8.0 / ^0.13.0, so the lockfile now resolves them to the published versions instead of the workspace links. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * QVAC-27419 chore: release asr-ggml 0.11.1 with the other speech addons #5326 moved all four speech addons to ggml-speech 2026-10-23 and speech-cpp 2026-10-23#2. Releasing asr-ggml next to audiogen-ggml 0.9.0, bci-whispercpp 0.14.0 and tts-ggml 0.14.0 keeps every published speech addon on the same ggml-speech build. The [Unreleased] block becomes [0.11.1] - 2026-10-23 with the PR links added. pnpm-lock.yaml is unchanged: pnpm-workspace.yaml excludes packages/asr-ggml. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Zbig9000
added a commit
that referenced
this pull request
Oct 23, 2026
main moved the speech addons to speech-cpp 2026-10-23#2 (#5326), which contains qvac-fabric-speech.cpp#353, and released them (#5327) with the diarizer and Nemotron loader entries. main's vcpkg.json and CHANGELOG files are taken as-is, so this branch no longer changes the pins. What remains is asr-ggml's assessFit coremlBytes field (binding, types, integration test), the Core ML diarizer README rows and guidance, and an Unreleased CHANGELOG entry for the field. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
All four speech addons override
ggml-speechat2026-10-07#1. In that version the default Adreno q8_0 prefill GEMM keeps its sums in fp16, so a dot product past 65504 comes back asinf. TranscribePsy's first feed-forward block reaches 66k on some 60 s windows; theinfbecomes NaN and attention spreads it over the window. On a Galaxy S25 GPU, long recordings lost most of their text after the first window: 54 % WER on a 374 s English recording where the CPU is at 0 %.The fix is tetherto/qvac-ext-ggml#129, published by tetherto/qvac-registry-vcpkg#446 as
ggml-speech 2026-10-23. With it, the S25's OpenCL transcripts equal its CPU transcripts on English and French recordings, and differ by two words at one language switch on the mixed ones, at 1.5 % more encoder time. The measurements are in tetherto/qvac-fabric-speech.cpp#365.speech-cpp 2026-10-23#2(tetherto/qvac-registry-vcpkg#447) requiresggml-speech >= 2026-10-23, the same version, so the addons move to it in the same step.Changes
ggml-speechoverride2026-10-07#1→2026-10-23, andqvac["ggml-speech"]to match, in lockstep.speech-cppoverride2026-10-20#1→2026-10-23#2, in lockstep.ggml-speechversions the jump includes:2026-10-19: the Adreno KQ/KQV image kernels no longer miscompute attention over 32 or more query tokens with unpadded lengths.2026-10-20: the WebGPU backend, an opt-in feature these addons do not enable.2026-10-07#2only kept Hexagon out of the build.speech-cpp2026-10-21to2026-10-23#2adds to the prebuilds (qvac-fabric-speech.cpp303198cf..faed3c81):memory-capacity-unavailablewhen none is known (fix: add default registry core key and fix CLI install docs #360).ggml-speech.coreml.Fixed,AddedandChangedentries under[Unreleased]in all four. No version bump; that goes in its own PR.Verification
node .github/scripts/check-speech-ggml-lockstep.mjs: passes. All four pinggml-speech 2026-10-23andspeech-cpp 2026-10-23#2, and every prebuild triplet plans the sameggml-speech:[core,opencl,vulkan][core,metal][core,vulkan]node --test .github/scripts/test/speech-ggml.test.mjs .../check-speech-ggml-builds.test.mjs: 26/26.build-backendstests: asr-ggml 12/12, audiogen-ggml 5/5, tts-ggml 2/2. The bci-whispercpp one only asserts the manifest shape (one override, no floors).vcpkg install --triplet arm64-androidof asr-ggml's manifest (NDK 29, binary cache off) builtspeech-cpp[whisper,parakeet,vulkan,opencl]againstggml-speech[core,opencl,vulkan] 2026-10-23. That build was atspeech-cpp 2026-10-20#1; for2026-10-23#2this PR's prebuild CI is the build check.Interplay with open PRs
speech-cpp 2026-10-21#1) is now included here, its Parler entry too, and can be closed.speech-cpp 2026-10-21) conflicts on thespeech-cpplines and the asr-ggml changelog. After this PR lands, it keeps only its asr-ggml JS wiring (assessFitreports the diarizer bundles ascoremlBytes) and drops its pin move and the entries this PR now carries.## [Unreleased]. If this PR lands first, QVAC-27419 chore: release asr-ggml 0.11.1, audiogen-ggml 0.9.0, bci-whispercpp 0.14.0 and tts-ggml 0.14.0 #5327 picks them up and releases them.🤖 Generated with Claude Code