Skip to content

Instantly share code, notes, and snippets.

View jaderinoo's full-sized avatar
🌙

Jad El-Khatib jaderinoo

🌙
View GitHub Profile
@jaderinoo
jaderinoo / README.md
Created September 15, 2026 17:52
FP8 MTP draft stack for vLLM — +6.6% decode on modelopt NVFP4 Qwen3.5-family checkpoints

FP8 draft stack for Qwen3.5-family MTP on vLLM

modelopt NVFP4 checkpoints exclude mtp* from quantization, so the entire MTP speculative-decoding stack runs as BF16 passthrough: ~850 MiB of draft-layer weights + mtp.fc, plus the 40960-row draft LM head (~420 MiB) — all re-read on every draft forward (3× per decode step at num_speculative_tokens=3).

This gist converts the whole draft stack to FP8 e4m3 (per-tensor weight scales, dynamic per-token activations, CUTLASS scaled_mm). The drafter only proposes tokens — the target model verifies every one — so **outputs are bit-identical