TensorRT-LLM on Blackwell with FP8 and NVFP4
TensorRT-LLM is NVIDIA-only, and on Blackwell it wins. On GB200 NVL72 with Dynamo orchestration, SemiAnalysis InferenceX measured $0.012 per million tokens on a 120B model in Q1-Q2 2026, against $0.09/M on H100 + vLLM. That is a 7x economic gap. The stack compounds three floating-point regimes: FP8 stays critical for the KV cache and attention kernels because it has the dynamic range they need, NVFP4 (4-bit microscaling) handles weights and activations, and multi-token prediction (MTP) plus disaggregated prefill/decode add another 2-3x on top. Day-0 model support loads FP4 weights directly, with no post-training conversion. The catch is that TRT-LLM is a closed NVIDIA stack, so adopting it trades portability for throughput. Run the math on your own mix of models and hardware before you commit.
Learning Objectives
- Explain why FP8 stays critical for KV cache and attention even when weights are in NVFP4.
- Compute the HBM footprint of a frontier model under BF16, FP8, and NVFP4 and reason about where the savings come from.
- Name the Blackwell-specific features TRT-LLM exploits (day-0 FP4, MTP, disaggregated serving, all-to-all primitives).
- Decide when TRT-LLM's NVIDIA-lock is worth the 7x cost gap vs vLLM on Hopper.
The Problem
The question behind 2026 inference economics is how many tokens you get per dollar. The answer depends on four stacked choices: hardware generation (Hopper H100/H200 vs Blackwell B200/GB200), precision (BF16 → FP8 → NVFP4), serving engine (vLLM vs SGLang vs TRT-LLM), and orchestration (plain vs disaggregated vs Dynamo).
On Hopper with vLLM, a 120B MoE runs at ~$0.09 per million tokens. On Blackwell with TRT-LLM and Dynamo, the same model runs at ~$0.012, which is 7x cheaper. Part of that gap is hardware, since Blackwell delivers 11-15x the per-GPU LLM throughput of Hopper. The rest comes from the stack: FP4 weights, an MTP draft, disaggregated prefill/decode, and NVLink 5 all-to-all for MoE expert communication.
You cannot replicate this outside NVIDIA's stack, and that is the tradeoff: you give up portability for economics. The goal here is to see which stack choice buys which share of the gap.
The Concept
Why FP8 is still the floor for KV cache
It is easy to assume NVFP4 applies everywhere in 2026. It does not. The KV cache needs FP8 (8-bit floating point) because it stores attention keys and values that span a wide dynamic range. Quantize KV to FP4 and accuracy loss is catastrophic: the tail of the distribution drops off and attention scores collapse. FP8's exponent bits give the KV cache the range it needs.
NVFP4 (2025-2026) applies to weights and activations. It uses microscaling, so each block of weights carries its own scale factor and small blocks can cover different dynamic ranges without the loss of a single per-tensor scale. For activations, FP4 holds up because activations stay in a small range within a layer.
The typical Blackwell config:
- Weights: NVFP4 (4-bit microscaling).
- Activations: NVFP4.
- KV cache: FP8.
- Attention accumulator: FP32 (softmax stability).
The Blackwell-specific primitives TRT-LLM uses
- Day-0 FP4 weights: model providers ship FP4 weights directly and TRT-LLM loads them without post-training conversion. There is no AWQ / GPTQ step for FP4.
- Multi-token prediction (MTP): the same idea as EAGLE (Phase 17 · 05), integrated into the TRT-LLM build.
- Disaggregated serving: prefill and decode run on separate GPU pools, with KV cache transferred over NVLink or InfiniBand. Same idea as Dynamo (Phase 17 · 20).
- All-to-all communication primitives: NVLink 5 cut MoE expert communication latency by 3x vs Hopper, and TRT-LLM's MoE kernels are tuned for it.
- NVFP4 + MXFP8 microscaling: scale-factor handling is hardware-accelerated on Blackwell Tensor Cores.
The numbers worth keeping
- HGX B200 at $0.02/M tokens on GPT-OSS-120B via TRT-LLM.
- GB200 NVL72 at $0.012/M tokens via Dynamo (orchestrating TRT-LLM).
- H100 + vLLM ≈ $0.09/M tokens on a comparable workload.
- 2.8x throughput gain from three months of TRT-LLM updates (2026).
- 11-15x per-GPU LLM throughput, Blackwell vs Hopper.
- MLPerf Inference v6.0 (April 2026): Blackwell dominated every submitted task.
What FP4 actually costs in quality
NVFP4 is aggressive. On reasoning-heavy workloads (chain-of-thought, math, code-gen with long context), FP4 weights degrade visibly. Per-block calibration mitigates the damage but does not remove it. Teams shipping reasoning models often use FP8 weights with FP4 activations as a compromise, or stay on H200 with FP8 throughout.
My rule: validate task quality on your own eval set before committing to NVFP4 weights.
Why this is an NVIDIA-lock decision
TRT-LLM is C++ and CUDA with closed-source kernels, and models are compiled for a specific GPU SKU. AMD, Intel, and ARM are out. If your infra strategy is multi-vendor, TRT-LLM is a non-starter for the tier it would serve, though you can still run vLLM on mixed hardware. If you are NVIDIA-only, the 7x gap pays for the lock.
2026 practical recipe
With a $100M+ annual inference bill, staying on Hopper + vLLM leaves 7-10x on the table. Migrate the cost-dominant workloads to Blackwell + TRT-LLM + Dynamo. Keep the experimentation tier on H100 + vLLM so model iteration stays fast. Validate quality on each NVFP4-converted model before it reaches production.
The disaggregation bonus
TRT-LLM's disaggregated serving (separate prefill and decode pools) is covered in depth in Phase 17 · 20. On Blackwell the multipliers stack: FP4 weights × MTP speedup × disaggregated placement × cache-aware routing. The 7x number assumes the full stack.
Use It
code/main.py computes HBM footprint, decode throughput (memory-bound regime), and $/M tokens across five stacks: H100 + BF16 + vLLM, H100 + FP8 + vLLM, H200 + FP8 + vLLM, B200 + NVFP4/FP8 + TRT-LLM, and GB200 NVL72 + TRT-LLM + Dynamo. It runs four model shapes through them. Run it to see the compounding effect and how much each change adds to the gap.
Ship It
The output is outputs/skill-trtllm-blackwell-advisor.md. Give it a workload, a model size, and an annual token volume, and it decides whether the Blackwell + TRT-LLM stack is worth the NVIDIA-lock.
I'd run main.py and read the 120B MoE block first. Going from H100 + FP8 to B200 + NVFP4/FP8 takes decode from 93 to 1280 tokens/sec per GPU, about 14x, and that jump is the product of four constants on the Stack dataclass: HBM bandwidth, weight bits, mtp_factor, and disagg_factor. They are hand-set values, not measurements. The B200 row prints about $1.04 per million tokens, far from the $0.012 quoted above, so read the script for the shape of the compounding and not for a price.
Two simplifications are worth knowing before you trust it. Decode throughput counts only the weight bytes read per token, so KV precision changes the footprint column and leaves tok/s alone. And there is no quality term anywhere. That is the part I'd worry about most with NVFP4 on reasoning workloads, which is why my bet is that an eval run on your own model matters more than any multiplier in the script.
Exercises
- Run
code/main.py. On a 120B MoE with 30% active parameters, compute the memory-bandwidth-limited decode throughput on H100 BF16, H100 FP8, and B200 NVFP4/FP8. Where does the biggest jump come from? - A customer spends $2M/year on H100 + vLLM. What is the break-even number of Blackwell GPUs they need to buy to amortize a migration to TRT-LLM in 12 months, given the 7x economic gap?
- You see accuracy drop 3 points on MATH after NVFP4 weight conversion. Name two recovery paths: one quality-first (keep FP8 weights), one cost-first (calibrate with in-domain data).
- Read the MLPerf v6.0 inference results. Which task has the smallest Blackwell-over-Hopper gap, and why?
- Compute the HBM needed for a 405B model at NVFP4 weights + FP8 KV cache at 128k context. Does it fit on a single GB200 NVL72 node?
Key Terms
| Term | What people say | What it actually means |
|---|---|---|
| FP8 | "eight-bit float" | 8-bit floating point; used for KV cache and attention due to dynamic range |
| NVFP4 | "four-bit micro" | NVIDIA's 4-bit microscaling FP format; weights and activations on Blackwell |
| MXFP8 | "MX eight" | Microscaling FP8 variant; hardware-accelerated on Blackwell Tensor Cores |
| Day-0 FP4 | "ship FP4 weights" | Model providers release weights already in FP4; no post-train conversion step |
| MTP | "multi-token prediction" | TRT-LLM's integrated speculative-decoding draft (Phase 17 · 05) |
| Disaggregated serving | "split prefill/decode" | Prefill and decode on separate GPU pools; KV transferred over NVLink/IB |
| All-to-all | "MoE expert comm" | Communication pattern routing tokens to expert GPUs; NVLink 5 cuts 3x |
| InferenceX | "SemiAnalysis inference bench" | The 2026 industry-accepted cost-per-token benchmark |
Further Reading
- NVIDIA: Blackwell Ultra MLPerf Inference v6.0: April 2026 MLPerf results.
- NVIDIA: MoE Inference on Blackwell: NVLink 5 all-to-all and MoE kernels.
- TensorRT-LLM Overview: official engine documentation.
- NVIDIA: Introducing Dynamo: disaggregated orchestration above TRT-LLM.
- MLPerf Inference: the benchmark suite that publishes Blackwell numbers.
Code
- main.py (python, 104 lines)