跳到主要内容

FP4、FP8、HiF8:低精度格式如何把 AI 算力翻倍

· 阅读需 7 分钟
Industry Research Team

同一颗芯片,FP4 算力是 FP16 的十倍——这不是魔法,而是数值格式的游戏。2026 年,FP4 已成为旗舰 AI 芯片的标配,华为更推出自研 HiF8 格式宣称"精度接近 FP16"。低精度到底牺牲了什么、换来了什么?本文一次讲清。

浮点格式科普:位数与动态范围的权衡​

计算机用浮点数表示小数,格式由三部分组成:符号位、指数位(决定动态范围)和尾数位(决定精度)。AI 训练与推理的历史,就是一部不断"砍位数"的历史:

格式总位数指数/尾数动态范围典型用途
FP32328/23极大科学计算、训练基准
TF32198/10大Ampere 起的训练加速
BF16168/7大(同 FP32 指数)大模型训练主流
FP16165/10中传统混合精度
FP884/3 或 5/2小训练与推理加速
FP442/1极小大规模推理

规律很清晰:每砍一半位数,算力大约翻一倍——乘法器的面积与功耗近似随位数的平方增长,FP8 的张量核心天然比 FP16 快一倍,FP4 又比 FP8 快一倍。代价是动态范围急剧收缩:FP8 的表示范围只有 FP16 的几十分之一,FP4 更是只能表达十几到几十个离散值。大模型之所以"敢"用低精度,靠的是两项补救:逐 block 的缩放因子(把数值归一到格式能表达的区间)和海量参数带来的统计冗余。

Transformer Engine:自适应精度的工程答案​

低精度的难点在训练:梯度跨越多个数量级,格式选大了浪费算力,选小了梯度下溢训练崩溃。NVIDIA 的解法是 Transformer Engine(TE):

  • 第一代在 Hopper 上实现 FP8 自动切换;第二代(Blackwell)引入 FP4/FP6;
  • 第三代(Rubin)支持硬件级自适应精度压缩,不需要重写模型代码即可动态切换精度——覆盖 FP4/FP6/FP8/FP16/BF16/TF32/FP32/FP64。

工作原理是逐层分析张量的数值分布:对分布平稳的层用 FP4,对敏感层自动回退 FP8 或 BF16。开发者不改代码,硬件与框架在运行时完成"每层选档"。这把低精度的使用门槛从"数值专家专属"降到了"默认开启"。

落到算力数字上:Rubin R200 提供 FP4 推理 50 PFLOPS、FP4 训练 35 PFLOPS、FP8/FP6 17.5 PFLOPS(均为 sparse 口径),相比 B200 的 FP4 约 10 PFLOPS 提升达 5 倍。

三种 FP4 方案对比:NVFP4、MXFP4 与 OCP 标准​

FP4 只有 4 个 bit,如何组织这些 bit 成了路线分歧:

维度NVIDIA NVFP4AMD MXFP4OCP MX 标准
分组缩放每 16 元素一组 E4M3 缩放 + 二级张量缩放每 32 元素一组共享缩放因子定义 FP4/FP6/FP8 的 microscaling 框架
设计取向精度优先,双级缩放压误差开放标准优先,跨厂商兼容行业互操作
代表硬件Rubin R200(FP4 50 PFLOPS)MI455X(MXFP4 40.3 PFLOPS)AMD、微软等共同推动

AMD MI455X 的精度阶梯同样遵循 OCP 体系:MXFP4 40.3 PFLOPS,MXFP6 与 MXFP8 各约 20.1 PFLOPS——位数减半、算力翻倍的规律清晰可见。NVIDIA 的 NVFP4 则通过更细粒度的双级缩放在同等位数下保留更多精度,代价是与 MX 生态不完全兼容。两条路线之争的实质是:精度保真度与生态开放性的权衡。

华为 HiF8:低精度高保真的差异化路线​

在 FP4 军备竞赛之外,华为给出了另一种思考。昇腾 950 系列首次引入自研 HiF8 格式——FP8 的位宽、FP16 的精度:

  • 精度接近 FP16,算力比 FP16 提升 2 倍:传统 FP8 因指数/尾数分配激进,在训练中常出现精度损失,HiF8 通过重新分配位与缩放机制,把 FP8 位宽用出接近 FP16 的保真度;
  • 配合 FP4 格式,整体算力利用率提升 30%+:HiF8 承担对精度敏感的训练主力计算,FP4 承担推理与容忍误差的部分,两者分工让芯片算力真正"跑得满";
  • SIMD + SIMT 双编程模型配合:Da Vinci v5 架构延续 SIMD 高效向量计算,新增 SIMT 支持灵活调度,配合 HiF8 提供昇腾 Core(ASIC)与 GPGPU 双生子型号,内存访问粒度从 512 字节细化到 128 字节。

昇腾 950 的算力配置印证了这条路线:FP8 1 PFLOPS、FP4 2 PFLOPS,训练仍以 FP8/BF16 为主、FP4 用于推理。与 NVIDIA"激进压精度换峰值"不同,华为选择"低位宽但高保真,保训练质量"。

低精度与模型质量的真实权衡​

厂商宣传中低精度近乎"免费午餐",实际权衡需要冷静看待:

  • 训练:FP8/BF16 混合精度已是主流且质量损失可控;FP4 训练仍处早期,对超大规模模型需要精细的逐层策略,HiF8 这类高保真格式正是为此而生;
  • 推理:FP4 权重量化的质量损失在多数对话任务上难以察觉,但在数学推理、代码生成等长链任务上可能出现累积误差;
  • 评估陷阱:低精度基准分数好看,不等于业务指标不掉——用你自己的真实负载做 A/B 验证,比看 datasheet 可靠得多。

稀疏算力口径:为什么厂商数字都是 sparse​

细心的读者会发现所有厂商算力数字都标注"sparse"(稀疏)。这是因为结构化稀疏技术把矩阵中一半为零值的元素跳过计算,理论上可让吞吐翻倍:sparse 数字 = dense 数字 × 2。

以 Rubin R200 为例,FP4 推理 50 PFLOPS 是 sparse 口径,dense 口径约为 25 PFLOPS;MI455X 的 FP16 矩阵算力 5 PFLOPS,含结构化稀疏为 10.1 PFLOPS。sparse 数字反映的是最佳情况的硬件上限,实际模型因稀疏度达不到 50%,通常拿不到翻倍收益。横向对比芯片时务必确认口径一致,否则对比没有意义。

给开发者的实操建议​

  1. 训练默认 BF16 或 FP8:BF16 生态最成熟;FP8 配合 Transformer Engine 类自适应机制已可放心用于主流大模型,这是当前性价比最高的一档;
  2. 推理大胆上 FP8:对质量影响极小,吞吐收益直接翻倍,应作为推理部署的默认选项;
  3. FP4 分场景推进:对话、检索、推荐类负载可率先切换 FP4(NVFP4 或 MXFP4);数学与代码等高精度敏感任务先做质量评测再灰度;
  4. 确认算力口径:对比硬件时统一 dense/sparse 与格式口径,用真实模型的端到端 token 吞吐做最终裁决;
  5. 关注高保真低精度格式:HiF8 的"FP8 位宽、FP16 保真"思路值得跟踪,尤其当你的训练在 FP8 上出现质量回退时。

小结​

从 FP32 到 FP4,每一次位宽减半都是一次算力翻倍的机会,也是一次精度风险的博弈。NVIDIA 用第三代 Transformer Engine 把自适应精度做成"默认开启",AMD 押注 MXFP4 开放标准,华为则以 HiF8 走出"低精度高保真"的差异化路线。低精度不是无脑降档,而是一门在算力、精度与生态之间找平衡的手艺——用好它,同样的芯片预算可以多买一倍的智能。