Running cyankiwi/MiniMax-M3-AWQ-INT4 on 4× GB10 with vLLM: fp8 KV cache, corrected long/dense-context output, EAGLE3 speculative
decoding, adaptive reasoning. Patches + recipe below.
Throughput — 4× GB10, TP=4, EAGLE3 k=2, llama-benchy (pp=2048 / tg=512, median of 5).
fp8 KV ≈ bf16:
| depth | prefill (PP) | decode (TG) |
|---|---|---|
| 0 | 1579 tok/s | 32.2 tok/s |
| 8k | 1698 tok/s | 29.9 tok/s |
| 32k | 1665 tok/s | 28.6 tok/s |
| 64k | 1596 tok/s | 25.5 tok/s |
fp8 KV capacity win:
| KV dtype | KV cache @ 262k | max concurrency @ 262k |
|---|---|---|
| bf16 | ~0.69M tok | 2.6× |
| fp8 | 1.38M tok | 5.27× |
Configuration: 4× GB10 (sm_121 aarch64), vLLM 0.22.1 + CUDA 13, TP=4, fp8 KV, EAGLE3
k=2, 262k ctx. Requires vLLM with PR #45744 (fp8 sparse-GQA) + 4 small patches (indexer
fix, reasoning PR #45718, tool parser, NCCL 2.30.4).
I used it to run a few front-end tasks today, and Pi reported ~25 tok/s in general. It still felt kind of lazy, in the sense that it usually fails to gather all relevant context and just makes assumptions. So far, I don’t think this is worth it over glm 5.2. Unless you absolutely need the 1M ctx.