Skip to content

TurboQuant+ tqp-v0.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 12 Jul 05:28
30d6881

Cumulative release since tqp-v0.2.0. All changes verified on RTX 5090 (CUDA sm_120), M5 Max (Metal), and community hardware as noted.

New features

  • DFlash speculative decoding (#201) — upstream ggml-org#22105 + ggml-org#25110 cherry-picked, with a minimal n_embd_inp_enc hparams shim (no unrelated eagle3 changes), the K/V-rotation unallocated-buffer guard its KV-injection pass requires, and spec-draft-p-min support
  • Server slot save/restore across restarts (#206, @apollo-mg) — context checkpoints persist to a versioned .ckpt sidecar next to the slot state file, so a restored slot resumes with a delta prefill instead of a full re-prefill (measured ~720x on a 100K-token session). SWA / hybrid-recurrent models benefit; graceful fallback when no sidecar exists. Usage documented in the README

Fixes

  • 16 upstream P0/high-P1 cherry-picks (#202), including: Gemma-4 E4B MTP FlashAttention hard-crash, FA KQ-mask int64 stride overflow at long context, CUDA binbcast silent corruption past 2^31 elements, unauthenticated remote DoS via unbounded n_discard in server context shift, FA V-type validation (mixed KV combos now CPU-fallback instead of crashing), tool-call whitespace corruption on the OpenAI-compat path, Vulkan FA fp16 softmax overflow, SVE dot-product fix, two OOB reads (UGM tokenizer, ngram-map), tensor-parallel + -ncmoe MoE abort, Vulkan CEIL_DIV overflow
  • Vulkan turbo4 block layout + centroid table resync (#204, @Defilan) — Vulkan shaders were striding turbo4 KV 2 bytes long per block and dequantizing against stale centroids after the turbo4 rework; fixed a runaway-then-SIGSEGV on gfx1151 at 131K ctx (test-backend-ops: 0/528 before, 528/528 after)
  • Draft model load crash (#210, fixes #209) — loading a separate -md draft after the memory fitter packed VRAM produced NaN device-split points and a vector::_M_range_check abort; uniform-split fallback added. Separate-draft speculative decoding (draft-simple, DFlash) now works end to end
  • sm_60 / P100 carved out of FAST_FP16 paths (#212, @apollo-mg) — fp32 arithmetic like sm_61; median KLD 0.002298 -> 0.000001 on P100 with throughput inside noise
  • turbo2 fused-MMA decode gated to head_dim 128 (from the #197 follow-up) — keeps the large hd128 depth win (up to +69% at 131K) while eliminating a 1-2.5% decode regression on bandwidth-limited GPUs at hd256 (verified by @everson on RTX 5060 Ti)

Docs

  • README: server slot save/restore + checkpoint sidecar usage, including which model families it applies to

Prebuilts

Platform Asset
Linux x64 CPU turboquant-plus-tqp-v0.3.0-linux-x64-cpu.tar.gz
Linux x64 Vulkan turboquant-plus-tqp-v0.3.0-linux-x64-vulkan.tar.gz
macOS Apple Silicon (Metal) turboquant-plus-tqp-v0.3.0-macos-arm64-metal.tar.gz
Windows x64 CUDA 12.4 turboquant-plus-tqp-v0.3.0-windows-x64-cuda12.4.zip

Thanks to @apollo-mg, @Defilan, @everson, @JakeATX, and @ciru-ai for contributions and testing this cycle.