GLM-5.3-Flash EXL3 3.05bpw on 2x CMP 170HX — DFlash2 K7 Q8 KV 384K (Flun)
11 upvotes — sign in to vote sign in to votecommunity Community submission — verify on your own hardware.
recipe by Flun (recipe, stack, profiles, drafter conversion)↗, turboderp (ExLlamaV3 engine + GLM-5.3-Flash-exl3 checkpoint)↗, incoai (GLM-5.3-Flash-DFlash2 BF16 drafter, CC BY-NC-ND 4.0)↗, 0xSero (k_hcfuse fused decode kernels)↗, MiaAI-Lab (GLM-5.3-Flash-EXL3-2x-DGX-Sparks — conversion reference)↗, Z.ai (GLM-5.3-Flash base model)↗ · listed by localai-recipes
revision r3 · commit f363025763 · updated 21 h ago · license CC-BY-4.0
chat code dflash2 long-context exl3 speculative q8-kv cap-modded no-p2p
First ExLlamaV3 serving recipe on 2x CMP 170HX: full-VRAM HBM-resident GLM-5.3-Flash EXL3 3.05bpw (~116.6 GiB across 2x64GB, no CPU/SSD tier) with DFlash2 K7 speculative decoding — drafter re-quantized locally BF16->EXL3 6bpw (~0.96 GiB) with an 8K-token GPU ring KV cache so a 384K request needs no 384K draft cache (bit-exact over ring wraps). Q8 quantized MLA latent KV, k_hcfuse fused decode kernels (SM80 JIT, shadow-check bit-exact), process-local monkeypatches only (engine tree unmodified), opt-in previous-request DFlash prefix reuse (8K repeat TTFT 7.9s->1.1s; general follow-up defect documented, not fixed), OpenAI-compatible API with native PP/TG + acceptance timings. Alternative stock MTP d2 profile (fp16 192K). Author-reported ~90 tok/s sustained, 110-120 at high acceptance (Reddit 1x0b1ws; no run file). Cards cap-modded PCIe x16 (Gen2 x8 vs stock x4), no P2P; single-request; Q8 changes numerics.
Launch command
scripts/setup.sh 'GLM53_K_HCFUSE=1 EXL3_AUTOSPLIT_MARGIN_MB=128 TORCH_CUDA_ARCH_LIST=8.0 HF_HUB_OFFLINE=1 TOKENIZERS_PARALLELISM=false scripts/serve.sh --profile q8_384k'runtime
env: 'GLM53_MODELS_DIR/GLM53_VENV/GLM53_PORT(8012)/GLM53_CUDA_ARCH(8.0)/GLM53_PREFIX_CACHE(1; =0 disables prefix reuse)/EXL3_AUTOSPLIT_MARGIN_MB(profile: 128 q8_384k, 192 q8_fast, 256 others)/GLM53_K_HCFUSE=1/HF_HUB_OFFLINE=1/TOKENIZERS_PARALLELISM=false (verbatim from scripts/serve.sh @ 5933112).'
notes: 'serve.sh --profile q8_384k resolves to: python -u glm/glm_api.py -m models/GLM-5.3-Flash-exl3-3.05bpw -cs 393216 -cq 8 -gs 62,63 --q8-staging --q8-head-gpu0 -dm models/GLM-5.3-Flash-DFlash2-exl3-6bpw -ndt 7 --dflash-prefix-cache -chunk_size 2048 --autosplit_max_batch_size 1 --port 8012. First run downloads turboderp/GLM-5.3-Flash-exl3 @ 332ab457 (3.05bpw branch tip, ~125 GB) + incoai/GLM-5.3-Flash-DFlash2 @ bf582e4e (BF16, ~2 GB) then converts the drafter once (dflash2/convert_drafter.py -b 6 --devices 0 + package_native.py; k_proj/v_proj stay BF16 for the fused context-KV weight; DFlash2DynConv.kernel_projection quantized via qmap; synthetic-Hessian calibration only, no target-model forwards; native quantization_config/tensor_storage metadata so ExLlamaV3 1.5.4 loads it directly). -gs is ExLlamaV3 per-component load budget, not a VRAM split; MTP profile effective split is 59,63 (MTP head loads on GPU 0 first). Preflight guards: both GPUs must have ~64 GB free (server refuses otherwise); ~140 GB disk for models + conversion workspace; CUDA toolkit with nvcc compute_80. Drafter ring: 2048-token sliding window over an 8,192-token physical page ring — absolute RoPE positions and attention window unchanged; verified bit-exact against the unbounded cache over repeated wraps. Prefix reuse pairs each target recurrent checkpoint with a ~43 MiB host-RAM snapshot of the last 2048 drafter tokens; on a hit 8K repeat TTFT 7.86->1.11 s (93.98% tokens reused), 32K repeat 28.49->1.12 s (98.42%); greedy repeated inputs match cold runs but longer real-text 8K/32K follow-ups did NOT fully reproduce full-reprocess outputs — author documents the defect rather than fixing it, treat reuse as validated for measured repeat cases only. API: 127.0.0.1:8012/v1, model id GLM-5.3-Flash, reasoning_content/content split, OpenAI tools via GLM XML translation, GET /health reports cache format + speculation mode + draft ring size + prompt_cache hits/misses/restored; timings expose native prompt_ms/predicted_ms + draft accepted/rejected + cached_tokens. Defaults reasoning_effort=high, temp 1.0, top_p 0.95, max_tokens 32768; one active request, others queue up to 120 s. HARDWARE: author cards are cap-modded PCIe x16 (physical x16 edge connector mod; link runs Gen2 x8 vs stock 170HX Gen2 x4), no P2P — cross-GPU traffic is host-bounce D2D; NOT 74-SM mods. Layout validated on Ryzen 5 5600X/DDR4 host; other hosts may need different margins. 448K/512K fail during final transformer-layer load with this checkpoint (not offered); 1M context remains open. DFlash2 drafter lineage incoai/GLM-5.3-Flash-DFlash2 is CC BY-NC-ND 4.0 (noncommercial) — the repo re-quantizes it locally and redistributes no weights. Credits per repo README: turboderp (engine MIT + 3.05bpw checkpoint), incoai (BF16 drafter), MiaAI-Lab 2x-DGX-Sparks repo (conversion reference), 0xSero (k_hcfuse kernels), Z.ai (GLM-5.3-Flash).'
Use this recipe with your agent
Paste this into any agent chat — it fetches and applies the recipe:
Fetch https://localairecipes.com/api/v1/recipes/glm-5-3-flash-exl3-3-05bpw-on-2x-cmp-170hx-dflash2-k7-q8-kv-384k.json and apply the inference recipe it describes (engine flags, model, quant, context) to my setup. Ask before overwriting any existing config.Or fetch it directly:
curl -fsSL https://localairecipes.com/api/v1/recipes/glm-5-3-flash-exl3-3-05bpw-on-2x-cmp-170hx-dflash2-k7-q8-kv-384k.jsonDownloads
- Weights https://huggingface.co/turboderp/GLM-5.3-Flash-exl3332ab457b709b7ba30dd9a448be5de03b80a7ac9 — 3.05bpw branch tip (serve.sh TARGET_REV; ~125.2 GB download / ~116.6 GiB weights resident; base_model zai-org/GLM-5.3-Flash)
- Drafter https://huggingface.co/incoai/GLM-5.3-Flash-DFlash2bf582e4eacc1810f76656d1811693ff6c6737d2a — BF16 drafter (serve.sh DRAFT_BF16_REV; license CC BY-NC-ND 4.0; converted locally to EXL3 6bpw ~0.96 GiB via dflash2/convert_drafter.py + package_native.py @ repo HEAD)
- Reference https://github.com/Flun/glm53-flash-cmp170hx-exl35933112 @ HEAD 'Add opt-in previous-request DFlash prefix cache reuse' — scripts/setup.sh + serve.sh are the verbatim argv/env source; glm/ monkeypatches + kernels/k_hcfuse.py + dflash2/ converter at this commit
- Engine image https://github.com/sybil-solutions/glm-flash-litek_hcfuse fused mHC decode kernels source (verified exists 2026-10-08, HEAD 7f1ee89) — vendored as kernels/k_hcfuse.py; bit-exact w/ shadow-check GLM53_K_HCFUSE_CHECK
Revision notes
Submitted 2026-10-08 from lar-scout ingest card t_eb5f504f. Repo @ 5933112fdb858c960dfa1a68f507c3a98a9f1201 (HEAD verified 2026-10-08, 2 commits, MIT license). Launch argv token-verified against scripts/serve.sh + scripts/setup.sh + glm/glm_api.py argparse gates at that sha (profile MEM_ARGS/SPEC_ARGS case blocks, DFlash2-vs-MTP parser guard, Q8-options-require-cq8 guard). HF pins verified live via HF API (target 332ab457 resolves 29 files; drafter bf582e4e matches serve.sh exactly; drafter license cc-by-nc-nd-4.0 confirmed on the model card). Reddit thread hard-blocked (403) from every access lane at ingest time — the ~90/110-120 tok/s figures are carried as submitter-T0 claims per the digest card's provenance, not re-verified; performance section says so. First exllamav3 engine row on the site (schema enum extended by the paired code commit; facet auto-creates per WAVE-3 SGLang precedent). Hardware profile cmp-170hx-x2 pre-existing (id 774); cap-mod PCIe note lives in config.runtime.notes + tags (cap-modded, no-p2p) per the DUFRelic modded-card precedent — same silicon profile, mod documented not profiled.
Revision history
- f363025763 recipe: update glm-5-3-flash-exl3-3-05bpw-on-2x-cmp-170hx-dflash2-k7-q8-kv-384k (r3: /artifacts, /performance, /provenance/credit) 15 h ago diff
- 2504f160a0 recipe: update glm-5-3-flash-exl3-3-05bpw-on-2x-cmp-170hx-dflash2-k7-q8-kv-384k (r2: /max_context_len) 10 d ago diff
- d042c24392 recipe: create glm-5-3-flash-exl3-3-05bpw-on-2x-cmp-170hx-dflash2-k7-q8-kv-384k 23 d ago
Fork
Sign in to fork this recipe — a fork is your own copy; you own it and only you can update it.