硬件专用推理编译——Blackwell 上的 FP8 与 NVFP4
硬件专用推理编译用可移植性换吞吐,TensorRT-LLM 是这笔交易在 Blackwell 上奏效的典型例子。它只面向 NVIDIA,并针对 Blackwell 调优。在带 Dynamo 编排的 GB200 NVL72 上,SemiAnalysis InferenceX 在 2026 年第一、二季度测得一个 120B 模型每百万 token 0.012 美元,对比 H100 + vLLM 的 $0.09/M,形成 7 倍经济差距。这套栈叠加了三种浮点制度:FP8 为 KV cache 和注意力 kernel 提供所需动态范围;NVFP4(4 比特微缩放)处理权重和激活;多 token 预测(MTP)与分离式 prefill/decode 又叠加 2-3 倍收益。Day-0 模型支持可直接加载 FP4 权重,无需训练后转换。TRT-LLM 是开源但 NVIDIA 专用的 CUDA/Blackwell 栈,采用它仍是在用可移植性换吞吐;押注前必须针对自己的模型与硬件组合算账。
类型: Learn 语言: Python(标准库,一个玩具级 FP8/NVFP4 内存与成本计算器) 前置要求: 阶段 17 · 04(推理服务引擎内部机制)、阶段 10 · 13(量化) 预计时间: ~75 分钟
学习目标
- 解释为什么即使权重是 NVFP4,FP8 对 KV cache 和注意力仍然关键。
- 算出一个前沿模型在 BF16、FP8、NVFP4 下的 HBM 占用,并推理节省从哪来。
- 说出 TRT-LLM 利用的 Blackwell 特有特性(day-0 FP4、MTP、分离式服务、all-to-all 原语)。
- 判断 TRT-LLM 的 NVIDIA 锁定何时值得相对 Hopper 上 vLLM 的 7 倍成本差距。
问题背景
2026 年推理经济学的前沿是"每美元多少 token"。答案取决于四个叠加的选择:硬件代际(Hopper H100/H200 vs Blackwell B200/GB200)、精度(BF16 → FP8 → NVFP4)、服务引擎(vLLM vs SGLang vs TRT-LLM)、编排(朴素 vs 分离式 vs Dynamo)。
在 Hopper 上用 vLLM,一个 120B MoE 跑到约每百万 token $0.09。在 Blackwell 上用 TRT-LLM + Dynamo,同一个模型跑到约 $0.012 —— 便宜 7 倍。这差距一部分来自硬件(Blackwell 单 GPU LLM 吞吐是 Hopper 的 11-15 倍)。一部分来自栈:FP4 权重、MTP 草稿、分离式 prefill/decode,以及给 MoE 专家通信用的 NVLink 5 all-to-all。
你没法在 NVIDIA 栈之外复制这个。这就是权衡 —— 拿可移植性换经济性。理解哪些栈的选择贡献了这差距的哪一份,正是这一课的要点。
核心概念
为什么 FP8 仍是 KV cache 的底线
2026 年一个常见错误:以为 NVFP4 处处适用。它不是。KV cache 需要 FP8(8 比特浮点),因为它存的注意力 key 和 value 跨越很宽的动态范围。把 KV 量化到 FP4 会导致灾难性的精度损失 —— 分布的尾巴掉没了,注意力分数崩塌。FP8 的指数位给了 KV cache 它需要的范围。
NVFP4(2025-2026)用于权重和激活。微缩放:每一 block 权重有自己的缩放因子,于是小 block 能跨越不同动态范围,不必承受按张量缩放的损失。对激活,FP4 顶得住,因为一层内激活的范围小。
典型的 Blackwell 配置:
- 权重:NVFP4(4 比特微缩放)。
- 激活:NVFP4。
- KV cache:FP8。
- 注意力累加器:FP32(softmax 稳定性)。
TRT-LLM 用的 Blackwell 特有原语
- Day-0 FP4 权重:模型提供方直接发 FP4 权重;TRT-LLM 不用训练后转换就能加载。FP4 不需要 AWQ / GPTQ 这一步。
- 多 token 预测(MTP):和 EAGLE(阶段 17 · 05)一个思路,但集成进了 TRT-LLM 的 build。
- 分离式服务:prefill 和 decode 在分开的 GPU 池上,KV cache 经 NVLink 或 InfiniBand 传输。和 Dynamo(阶段 17 · 20)一个思路。
- all-to-all 通信原语:NVLink 5 把 MoE 专家通信延迟相比 Hopper 砍了 3 倍。TRT-LLM 的 MoE kernel 为此调优。
- NVFP4 + MXFP8 微缩放:Blackwell Tensor Core 上硬件加速的缩放因子处理。
你该背下来的数字
- HGX B200 通过 TRT-LLM 在 GPT-OSS-120B 上每百万 token $0.02。
- GB200 NVL72 通过 Dynamo(编排 TRT-LLM)每百万 token $0.012。
- H100 + vLLM 在可比工作负载上 ≈ 每百万 token $0.09。
- TRT-LLM 三个月更新带来 2.8 倍吞吐提升(2026)。
- 单 GPU LLM 吞吐,Blackwell vs Hopper 为 11-15 倍。
- MLPerf Inference v6.0(2026 年 4 月):Blackwell 在每一个提交的任务上都碾压。
FP4 实际在质量上的代价
NVFP4 很激进。在推理重的工作负载上(思维链、数学、带长上下文的代码生成),FP4 权重会肉眼可见地退化。按 block 校准能缓解但不能消除。交付推理模型的团队常用 FP8 权重 + FP4 激活作为折中,或者干脆全程留在 H200 + FP8 上。
规律:在押注 NVFP4 权重之前,永远先在你的 eval 集上验证任务质量。
为什么这是个 NVIDIA 锁定的决策
TRT-LLM 是 C++ + CUDA + 闭源 kernel。模型需要为特定 GPU SKU 编译。没有 AMD、没有 Intel、没有 ARM。如果你的基础设施策略是多厂商,那 TRT-LLM 对那一档 TRT-LLM 服务来说就不可行 —— 你仍然可以在混合硬件上用 vLLM 服务。如果你只用 NVIDIA,那 7 倍差距就为这份锁定买单。
2026 年实战配方
对一年 1 亿美元以上的推理账单,跑在 Hopper + vLLM 上等于把 7-10 倍留在桌上。把成本主导的工作负载迁到 Blackwell + TRT-LLM + Dynamo。为模型迭代速度,把实验档留在 H100 + vLLM。在每个 NVFP4 转换过的模型上线前验证质量。
分离式的加成
TRT-LLM 的分离式服务(分开的 prefill 和 decode 池)在阶段 17 · 20 里深入讲。在 Blackwell 上,乘数叠加:FP4 权重 × MTP 加速 × 分离式放置 × 缓存感知路由。那个 7 倍数字假设的就是这整套栈。
pipeline-parallel实际使用
code/main.py 跨三套栈为一个模型算 HBM 占用、decode 吞吐(内存受限制度)和 $/M-token:H100 + BF16 + vLLM、H100 + FP8 + vLLM、B200 + NVFP4/FP8 + TRT-LLM。跑一下,看看叠加效应,以及每项改动贡献了差距的多少份。
拿去用
这一课产出 outputs/skill-trtllm-blackwell-advisor.md。给定一个工作负载、模型规模和年 token 量,它判断 Blackwell + TRT-LLM 这套栈是否值得 NVIDIA 锁定。
练习
- 跑
code/main.py。对一个 30% 激活参数的 120B MoE,算出 H100 BF16、H100 FP8、B200 NVFP4/FP8 上受内存带宽限制的 decode 吞吐。最大的跳跃来自哪? - 一个客户每年在 H100 + vLLM 上花 200 万美元。给定 7 倍经济差距,他们要买多少块 Blackwell GPU 才能在 12 个月内摊平迁到 TRT-LLM 的成本,这个盈亏平衡数是多少?
- 你看到 NVFP4 权重转换后 MATH 上精度掉了 3 个点。说出两条恢复路径:一条质量优先(保留 FP8 权重),一条成本优先(用领域内数据校准)。
- 读 MLPerf v6.0 推理结果。哪个任务的 Blackwell 对 Hopper 的差距最小,为什么?
- 算一算一个 405B 模型在 NVFP4 权重 + FP8 KV cache、128k 上下文下需要的 HBM。它装得进单个 GB200 NVL72 节点吗?
关键术语
| 术语 | 大家嘴上怎么说 | 它实际是什么 |
|---|---|---|
| FP8 | "八位浮点" | 8 比特浮点;因动态范围用于 KV cache 和注意力 |
| NVFP4 | "四位微" | NVIDIA 的 4 比特微缩放 FP 格式;Blackwell 上用于权重和激活 |
| MXFP8 | "MX 八" | 微缩放 FP8 变体;Blackwell Tensor Core 上硬件加速 |
| Day-0 FP4 | "直接发 FP4 权重" | 模型提供方发布的权重已是 FP4;无训练后转换步骤 |
| MTP | "多 token 预测" | TRT-LLM 集成的 speculative decoding 草稿(阶段 17 · 05) |
| 分离式服务 | "拆开 prefill/decode" | prefill 和 decode 在分开的 GPU 池;KV 经 NVLink/IB 传输 |
| all-to-all | "MoE 专家通信" | 把 token 路由到专家 GPU 的通信模式;NVLink 5 砍 3 倍 |
| InferenceX | "SemiAnalysis 推理基准" | 2026 年业界公认的每 token 成本基准 |
延伸阅读
- NVIDIA — Blackwell Ultra MLPerf Inference v6.0 —— 2026 年 4 月 MLPerf 结果。
- NVIDIA — MoE Inference on Blackwell —— NVLink 5 all-to-all 与 MoE kernel。
- TensorRT-LLM Overview —— 官方引擎文档。
- NVIDIA — Introducing Dynamo —— TRT-LLM 之上的分离式编排。
- MLPerf Inference —— 发布 Blackwell 数字的基准套件。