Views
No views yet
Qwen/Qwen3.6-35B-A3B (HF safetensors, with NextN tensors).crucible-mtp branch on llama.cpp (patched) (Aman Gupta's MTP fork) — adds LLM_ARCH_QWEN35MOE_MTP + the NextN draft path.convert_hf_to_gguf.py against the HF repo. Produces a BF16 GGUF with arch qwen35moe_mtp and the NextN tensors fused in.llama-quantize.python convert_hf_to_gguf.py /path/to/Qwen3.6-35B-A3B \
--outfile Qwen3.6-35B-A3B-MTP-bf16.gguf
llama-quantize Qwen3.6-35B-A3B-MTP-bf16.gguf \
Qwen3.6-35B-A3B-MTP-IQ4_XS.gguf IQ4_XS#20819 + #20822 for cross-process KV-slot save/restore (sub-second resume on long contexts — material when this model is used as a long-running chair / orchestrator).1llama-server \
2 -m Qwen3.6-35B-A3B-MTP-IQ4_XS.gguf \
3 -ngl 999 -fa on \
4 --spec-type mtp --spec-draft-n-max 4 \
5 --no-mmap \
6 --ctx-size 200000 \
7 --batch-size 1024 --ubatch-size 512 \
8 -ctk q4_0 -ctv q4_0 \
9 --parallel 1 --kv-unified \
10 --ctx-checkpoints 8 --checkpoint-every-n-tokens 2048 \
11 --cache-ram -1 --cache-idle-slots \
12 --metrics --jinja--spec-type mtp: enables NextN-head draft path. The whole point of the MTP variant.--spec-draft-n-max 4: empirical sweet spot. n=2 underutilises the head; n=6+ drops accept rate faster than throughput grows. n=4 lands at ~85% accept × ~101 tok/s.--ctx-size 200000: sized to leave ~1.5 GB VRAM headroom on 24 GB at q4/q4 KV. Native max is 262 K — push to that only if you don't need headroom for activations.--no-mmap: required for KV-slot persistence and zero perf hit on this rig.-ctk q4_0 -ctv q4_0: dense KV cache; q8 KV at this ctx exceeds 24 GB during warmup.--parallel 1: MTP path is single-stream upstream.-ot "exps=CPU" (expert offload) — kills speedup; only consider if running alongside another model.-ctk q8_0 at full 200K ctx — VRAM will OOM at warmup.| Metric | Value |
|---|---|
| Decode tok/s (short ctx, no thinking) | 213.7 (live measured 2026-05-06, n=4 spec) |
| Decode tok/s (steady mean over 200 K ctx run) | 183 mean / 203 peak |
| Prefill tok/s | 3,078 |
| Draft accept rate (n=4) | 97% (live), 80–85% under steady mixed workload |
| KV slot restore (190 K tokens) | 357 ms — ~525,000 tokens/s restore rate |
| Cold load (model → ready) | ~5–6 s |
| Power sweep optimum | 350 W (0.298 t/s/W; vs. 480 W default ≈ -7% throughput, +30% energy) |
| Cross-process slot save/restore | working — verified across model swaps via PRs 20819+20822 |
| Combined gain vs starting baseline | 6.1× (33 → 200+ t/s, MTP × ngl 999 × power × n=4) |
qwen35 pre-tokenizer). Same chat template as upstream Qwen3.6-35B-A3B-Instruct. If your runtime errors on Jinja Exception: System message must be at the beginning, use a loosened jinja template (single line: replace the strict-position raise with a no-op).localweights/Qwen3.6-27B-MTP-IQ4_XS-GGUF.