Blackwell gets NVFP4 support in silicon. Volta gets it from software.
v100-skinny runs Qwen3.8-27B's published mixed NVFP4/FP8 weight
representation unchanged on four Tesla V100-SXM2-16GB. In the release's
main decode and k≤7 verification regime, NVFP4 regions run through QPN2
(W4A16) and FP8 regions through QPN8 (W8A16), both hand-written around
Volta's mma.sync.m8n8k4. No FP8→FP4 requantization. No persistent FP16
weight copy. FP16 activations and FP16 KV cache. OpenAI-compatible serving —
a usable Qwen3.8 endpoint, not a kernel demo.
The GPUs cost about A$600 used. (That is the accelerators only — not the server, not the rest of the build.)
Quick start · Results · How QPN works · Reproduction · Limitations
AIME 2026 Problem 1, five seeds, both engines run in our lab through one
harness, each at its own best measured native-MTP depth. The RTX 5090 was
running NInfer, a specialist engine built for maximum performance on this
exact model family rather than a weak generic baseline. Sampling is NInfer's
published profile applied identically to both: temperature 0.6, top-p 0.95,
top-k 20, presence penalty 1.0, thinking on, reasoning_effort medium, seeds
1001–5005.
| 4× V100-SXM2-16GB (2017) | 1× RTX 5090 (2025) | |
|---|---|---|
| Engine | v100-skinny on 1Cat-vLLM, k=7 | NInfer, --draft-tokens 5 |
| Decode | 219.1 ± 5.9 tok/s | 214.7 ± 9.2 tok/s |
| Tokens committed / round | 5.89 | 4.27 |
| Round latency | 26.9 ms | 19.9 ms |
| Time to correct answer | 6.90 ± 0.30 s | 6.56 ± 1.34 s |
| Completion tokens | 1,513 ± 44 | 1,403 ± 253 |
| Correct answer (277) | 5/5 | 5/5 |
| Published quantization | RadixArk | NInfer artifact, Unsloth-derived |
This is a same-lab system comparison on the same Qwen3.8 base model, not a same-weight causal engine A/B: the two engines use different published NVFP4 artifacts. NInfer depth 5 is its maximum exposed depth and its best measured setting on this fixture; v100-skinny's best measured setting is k=7.
This is parity — 1.02×, intervals overlapping. We do not claim a win, and the result is not universal: their prefill is roughly 4× ours. The decode result is an exact cancellation —