版本信息最后核对:2026-10-24
FP8 推理:用 8 位浮点降低显存和带宽,在 Hopper/Ada 上提升吞吐
FP8 是 8 位浮点格式,常用两种编码:E4M3(4 位指数、3 位尾数,精度更高)和 E5M2(5 位指数、2 位尾数,动态范围更大)。在支持 FP8 的 NVIDIA GPU(Hopper H100/H200、Ada 部分型号、Blackwell)上,矩阵乘可以用 FP8 Tensor Core 加速,权重和激活占用约为 FP16 的一半,带宽压力也更小。
FP8 不是简单地把权重截断。通常需要校准(calibration)或动态缩放(dynamic scaling)来确定激活的缩放因子,避免溢出或精度损失。vLLM、TensorRT-LLM、Transformer Engine 都提供 FP8 路径;不同框架的 checkpoint 格式、校准数据和开启方式不同。
# 确认 GPU 是否支持 FP8(Hopper/Ada/Blackwell)
nvidia-smi --query-gpu=name,compute_cap --format=csv
# H100 的 compute capability 是 9.0,Ada 是 8.9
# vLLM:加载已量化好的 FP8 checkpoint
vllm serve /models/Qwen2.5-7B-Instruct-FP8 \
--quantization fp8 --dtype auto \
--host 0.0.0.0 --port 8000
# vLLM:在线量化(按版本支持情况)
vllm serve Qwen/Qwen2.5-7B-Instruct \
--quantization fp8 --dtype bfloat16 \
--host 0.0.0.0 --port 8000
# 对比 FP16 与 FP8 的显存和吞吐
nvidia-smi --query-gpu=memory.used,utilization.gpu --format=csv -l 1
# 用相同并发和输入长度压测,记录 tokens/s、TTFT、TPOT 和显存峰值
# 精度验收:用业务评测集对比 FP16/FP8 输出
# 关注代码、数学、JSON 结构化输出和长上下文任务,不只看困惑度
TensorRT-LLM 通常需要先转换 checkpoint 并构建 FP8 engine;Transformer Engine 在训练/推理中自动管理 FP8 缩放。上线前要固定驱动、CUDA、框架版本,并记录校准数据。
合上页面,先回答,再展开对照。
小程序版
微信扫码,随时查命令