2.4 算力口径辨析:稠密、稀疏与有效算力


文档摘要

2.4 算力口径辨析:稠密、稀疏与有效算力 前两节我们看了 Blackwell 和达芬奇的设计,现在回到一个最实际的问题:当你看到两份算力数字想去比较时,怎么比才不会被误导? 2.4.1 算力数字的三重"放大镜" 厂商宣传的算力数字,通常都经过了三重视角的放大。理解了这三重,你才能把数字还原到可比较的口径: 第一重是精度。同一颗芯片,FP16、INT8、FP8、FP4 给出的算力数字可以差好几倍。位宽越低,单位时间能算的运算越多。AI 训练常用低精度,所以厂商喜欢用最低精度来宣传峰值。但你的业务能不能用这么低的精度,是另一回事。 第二重是稠密/稀疏。结构化稀疏(典型 2:4 稀疏)可以让理论算力翻倍,但需要模型权重满足稀疏模式、框架支持稀疏算子。

2.4 算力口径辨析:稠密、稀疏与有效算力

前两节我们看了 Blackwell 和达芬奇的设计,现在回到一个最实际的问题:当你看到两份算力数字想去比较时,怎么比才不会被误导?

2.4.1 算力数字的三重"放大镜"

厂商宣传的算力数字,通常都经过了三重视角的放大。理解了这三重,你才能把数字还原到可比较的口径:

第一重是精度。同一颗芯片,FP16、INT8、FP8、FP4 给出的算力数字可以差好几倍。位宽越低,单位时间能算的运算越多。AI 训练常用低精度,所以厂商喜欢用最低精度来宣传峰值。但你的业务能不能用这么低的精度,是另一回事。

第二重是稠密/稀疏。结构化稀疏(典型 2:4 稀疏)可以让理论算力翻倍,但需要模型权重满足稀疏模式、框架支持稀疏算子。很多宣传数字默认含稀疏,而实际业务里稀疏未必能完全兑现。

第三重是峰值/有效。峰值是"无任何开销的理论上限",有效是"跑真实模型时的实测"。两者之间隔着内存带宽、通信开销、调度空闲,差距可能数倍。

算力数字的三重视角(每往里一层,数字越"真实"也越"小"): ╔══════════════════════════════╗ ║ 低精度峰值(最大、最虚) ║ ← 厂商宣传常用 ║ ╔══════════════════════════╗ ║ ║ ║ +稀疏加速(再翻倍) ║ ║ ║ ║ ╔══════════════════════╗ ║ ║ ║ ║ ║ 有效算力(最小、最真) ║ ║ ║ ← 用户实际能拿到 ║ ║ ╚══════════════════════╝ ║ ║ ║ ╚══════════════════════════╝ ║ ╚══════════════════════════════╝

⚠️ 最危险的情况:拿 A 厂商的"低精度+稀疏峰值"去比 B 厂商的"中精度稠密峰值",然后得出"A 比 B 强 X 倍"的结论。这种比较几乎一定是错的,却是最常见的误读方式。

2.4.2 两大平台的算力口径差异

把这套辨析用在本教程的两大平台上,能看到一些有意思的现象:

NVIDIA 的算力数字通常分层很清楚——同一颗芯片会同时给出多种精度下的稠密算力(FP64/FP32/FP16/INT8 等),稀疏算力也会单独标注。这种"分层披露"便于横向比较,但也要求读者自己选对口径。Blackwell 这一代尤其强调低精度(FP8/FP4)和稀疏算力,这是它算力数字大幅增长的主要来源。

昇腾的算力口径披露方式与 NVIDIA 不完全一致,不同代际、不同文档里的口径定义可能存在差异。在没有完全对齐口径之前,直接拿昇腾和 Blackwell 的算力数字做除法是没有意义的——你可能在比"FP16 稠密"和"INT8 稀疏",结论自然失真。

口径要素 NVIDIA Blackwell 昇腾950
精度披露 多精度分层披露 以官方白皮书为准,口径需对齐
稀疏 标注含/不含稀疏 需确认是否含稀疏
峰值/有效 给峰值,有效需实测 同上

💡 务实建议:比较两大平台时,与其纠结峰值数字,不如关注"在你关心的具体模型和精度下,实测有效算力是多少"。这正是第 10 章综合对比会更强调的视角。

2.4.3 算术强度:算力与带宽的桥梁

光看算力数字还不够。一颗芯片能不能把算力用满,取决于它的"算术强度"——即每次访存能做多少次运算。算术强度高的运算(如大矩阵乘)容易算满算力;算术强度低的运算(如逐元素操作、归一化)则会被内存带宽卡住,算力再高也用不上。

这里有一个关键概念叫"屋顶线模型"(Roofline):芯片的实际性能上限,是"算力屋顶"和"带宽屋顶"的较小者。运算的算术强度落在哪一段,就受哪个屋顶限制。

性能 ▲ │ ┌──────────── ← 算力屋顶(受峰值算力限制) │ ╱ │ ╱ │ ╱ ← 带宽屋顶(受内存带宽限制) │ ╱ │ ╱ │ ╱ └───┴──────────────────► 算术强度(运算/访存) 平衡点

这个模型的含义是:算力和带宽必须匹配。如果一颗芯片算力很高但带宽不够,大量运算会饿死在"等数据"上;反过来,带宽很高但算力不足,数据搬得快却算不过来。这也是为什么第 3 章要专门讲内存带宽——它和本章的算力是一体两面。

💡 大模型训练的真相:很多训练阶段(尤其是激活函数、归一化、softmax 等内存密集型算子)是被带宽卡住,而不是被算力卡住的。这意味着在这些阶段,谁能提供更高的内存带宽,谁的实际训练速度就更快——哪怕它的峰值算力数字不是最高的。

2.4.4 怎么做一个清醒的读者

结合本章全部内容,给你一套"看算力数字"的实用 checklist:

  1. 先问精度:这个数字是 FP16、INT8、FP8 还是 FP4?不同精度不可比。
  2. 再问稠密/稀疏:含不含稀疏?稀疏要模型配合才兑现。
  3. 三问峰值/有效:是理论峰值还是实测?实测在什么模型、什么并行策略下?
  4. 四问算术强度:这个数字对应的运算,是算力受限还是带宽受限?
  5. 最后看业务:你的实际负载特征,能不能让这颗芯片跑到这个数字?

养成这五步习惯,你就能在铺天盖地的算力宣传里保持清醒。第 3 章我们会看到,带宽这个维度同样需要这样的清醒——甚至在集群层面,带宽比算力更值得操心。

思考与延伸

  1. 用屋顶线模型解释:为什么同样是"万亿参数训练",不同并行策略(数据并行、张量并行、流水并行)下的实测算力差异巨大?
  2. 假设两颗芯片峰值算力相同,但一颗带宽是另一颗的 2 倍。在算术强度较低的算子(如 LayerNorm)上,哪颗更快?为什么?
  3. 如果让你为一个集群采购写"算力验收标准",你会怎么定义"有效算力",以避免被峰值数字误导?

第 2 章小结

  • GPU 与 NPU 的根本分野是"通用并行 vs 专用张量",决定了灵活性与能效的不同取舍。
  • Blackwell 用张量核心 + Transformer 引擎 + 低精度路线,把单卡算力推向新高;达芬奇用 Cube/Vector/Scalar 三单元协同,用专用架构换取高能效。
  • 算力数字必须统一精度、稠密/稀疏、峰值/有效口径才能比较,屋顶线模型告诉我们算力与带宽必须匹配。
  • 真正决定训练速度的往往是带宽而非算力,这正是下一章的主题。

读完本章,你已经理解了两大平台"芯"的计算核心。但算力要用满,离不开喂数据的带宽——下一章我们就钻进内存子系统,看看 HBM 与内存墙。

本节关键词:算力口径、稠密稀疏、屋顶线模型、算术强度、有效算力 返回:第 2 章支柱页 下一篇:第 3 章 · 芯(二):内存子系统与带宽


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U