显卡的算力数字:单位、计算方式 简介

举报
yd_236950431 发表于 2026/10/22 22:37:48 2026/10/22
【摘要】 1 显卡的算力数字:单位、计算方式、和“这张卡适合干什么”1.1 算力 FLOPS 是什么算力的单位是 FLOPS,即每秒能做多少次浮点运算。FLOP 指一次浮点数的加法或乘法,末尾的 S 是 per second。TFLOPS 是每秒 1e12 次(一万亿),PFLOPS 是每秒 1e15 次(一千万亿)。“一次浮点数的加法或乘法”:虽然对人类来说,乘法比加法难多了,但是对硬件来说,两者成...

1 显卡的算力数字:单位、计算方式、和“这张卡适合干什么”

1.1 算力 FLOPS 是什么

算力的单位是 FLOPS,即每秒能做多少次浮点运算。FLOP 指一次浮点数的加法或乘法,末尾的 S 是 per second。TFLOPS 是每秒 1e12 次(一万亿),PFLOPS 是每秒 1e15 次(一千万亿)。

  • “一次浮点数的加法或乘法”:虽然对人类来说,乘法比加法难多了,但是对硬件来说,两者成本几乎一样:一次“乘加”(a×b+c)在芯片里是合在同一个电路里完成的,所以业界惯例把一次乘加算作 2 次浮点运算。
  • 大模型跑起来,本质上是一连串矩阵乘法,每个输出元素都是一行乘一列再累加求和。一个对所需算力的估算规则:模型每处理 1 个 token,需要的浮点运算次数约等于 2 × 激活参数量(激活参数量:考虑到 MoE 模型 forward 一次仅激活少量 expert),具体的,每个参数做一次乘、一次加。

关于浮点数精度:

  • 同一张卡,如果处理的是不同精度的浮点数,算力完全不同。
  • 不同精度的浮点数:FP32 是 32 位单精度浮点,TF32 是英伟达在 A100 上引入的 19 位混合格式(内部用 10 位尾数计算,对外表现为 FP32),BF16 是 16 位脑浮点(Brain Floating Point,谷歌提出的 16 位格式),FP8 是 8 位浮点。
  • 具体的,位数越少,每个数占的空间越小,同样的芯片面积能塞下更多计算单元,算力就越高。然而位数变少的代价是精度下降,所以业界做法通常是:训练用 BF16,因为精度不够梯度会出问题;推理用 FP8,因为只做前向传播,容错更高。

我们用 H200 稠密算力(“稠密”详见下一节的解释)举例,给出使用不同精度的浮点数,显卡算力(FLOPS)的变化:

精度 每个数占几位 H200 稠密算力 相对 FP32
FP32(单精度) 32 位 67 TFLOPS 1×
TF32 19 位有效 495 TFLOPS 7×
BF16(训练常用) 16 位 990 TFLOPS 15×
FP8(推理常用) 8 位 1979 TFLOPS 30×

1.2 稠密算力 vs 稀疏算力

厂商宣传页上的算力与我们实际使用的算力,存在一个计算方式的差别,具体差一倍。

从 Ampere 那代起,张量核心支持一种叫“2:4 结构化稀疏”的硬件加速:如果权重矩阵里每连续 4 个数至少有 2 个是 0,满足这个格式,硬件就能跳过 0 不算,吞吐翻倍。稠密算力是不做任何假设的实际值,稀疏算力是假设权重已剪成 2:4 格式,数值等于稠密算力 × 2。

厂商几乎都报稀疏算力,只在角标写一行小字 "with sparsity"。比如 H100 的 FP8 算力常写成 3958 TFLOPS,实际的稠密算力则是 1979 TFLOPS。要得到这 2 倍算力提升,得先把模型剪枝成"每 4 个权重至少 2 个为 0",这对大语言模型是破坏性改造,所以真实场景应该按照稠密算力计算。

ps:这里的稀疏和 MoE 模型的"稀疏",两者同名但无关:2:4 稀疏讲的是权重矩阵里有多少个 0;MoE 的"稀疏激活"讲的是每个 token 只激活一部分专家网络,是更 high-level 的模型结构。

所以,在比较两张卡的算力之前,需要对齐三个事情:什么浮点数精度(FP32 还是 FP8)、什么计算方式(稠密还是稀疏)、理论峰值还是实测(实测通常只有峰值的七到八成)。

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。