跳到正文
博客园· MoonOut·· 5 小时前AI 评分38

大模型训练与部署语境下的常用显卡:B 卡、H 卡与算力数字怎么读

LLM | 大模型训练 / 部署语境下的常用显卡 - MoonOut

AI 导读

这篇博客梳理了 NVIDIA 各代架构与显卡简称的对应关系:V 代 Volta、A 代 Ampere、L 代 Ada、H 代 Hopper、B 代 Blackwell,R 代 Rubin 从 2026 年起刚开始铺货。

正文

这篇博客面向大模型训练和推理(部署)场景,介绍一下常用的显卡:比如 B 卡、H 卡这些简称是什么意思,算力数字是什么意思、怎么读,各代显卡之间是什么关系。

1 NVIDIA 显卡的架构代号

英伟达每两年左右出一代新架构,貌似使用科学家的名字命名(伏特 图灵 安培等)。大家所说的 "H 卡" "B 卡",就是取架构名的首字母。

字母 架构 年份 数据中心卡 消费卡
V Volta 2017 V100 —
T Turing 2018 T4 RTX 20 系
A Ampere 2020 A100、A800、A10/A30/A40 RTX 3090
L Lovelace(也叫 Ada) 2022 L40S、L4、L20 RTX 4090
H Hopper 2022–24 H100、H200、H800、H20 —
B Blackwell 2024–25 B200、B300、GB200、GB300 RTX 5090
R Rubin 2026 起 刚开始铺货 —

所以"A 卡"是 A100 那一代(想当年能用上 A100 就很感恩了),"H 卡"是 H100/H200 那一代,"B 卡"是 B200/B300 那一代,一代比一代更新更强。而消费卡里的 3090、4090、5090 分别属于 A、L、B 代。

一个命名中容易混淆的地方:L 代数据中心卡(如 L40S、L4、L20)都是 Ada 架构;而 Ampere 这一代中的 A10/A30/A40 虽然带 A,但是是 Ampere 架构里的小型号,和 A100 不是一个量级。

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

2.1 算力是什么

算力的单位是 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×

2.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 只激活一部分专家网络,是模型结构。

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

2.3 训练和推理,关注显卡不同维度的性能指标

同一张卡适不适合训练 / 推理,由两个不同的硬件参数决定。

训练:吃算力,也吃卡之间的通信速度。

  • 背景:训练一个 700 亿参数的模型,全参数微调要同时存下权重、梯度、优化器状态、fp32 主权重,每个参数约 16 字节,总共超过 1TB 显存。单卡装不下,必须切到几十张卡上。
  • 模型参数切开后,卡与卡之间每一步都要同步梯度,这时,卡间互联速度直接决定训练快慢。

卡间互联的常见方式:NVLink 是英伟达自研的卡间高速互联协议,H100/H200 上是 900 GB/s;PCIe 是主板上通用的扩展总线,显卡插槽走的就是它,只有 64 GB/s,两者差 14 倍。

推理:吃算力、显存带宽、显存容量。

  • 背景:LLM 推理可以分为两个阶段:
    • 读提示词(prefill)阶段,瓶颈在计算速度,可以一批 token 一起算;
    • 逐字生成(decode)阶段,瓶颈则是显存带宽,因为每吐一个字,都要把整个模型的权重从显存搬进计算核心一遍(decode 阶段可通过投机解码加速,详见本站博客 LLM | 投机解码:加速原理与实验结果)。比如,一个 FP8 的 700 亿参数模型就是 70GB,读完一遍需要的时间 = 70GB ÷ 显存带宽,和算力无关。
  • 因此,推理既吃算力也吃显存带宽:prefill 阶段瓶颈在算力(FLOPS),decode 阶段瓶颈在显存带宽。一张好的推理卡,两者都不能短板。

显存容量则决定能挂多少并发:权重装进去后剩下的空间放 KV cache(可以理解为模型"读过的内容"的压缩记忆,每个并发请求都要占一份),能同时服务的用户数,就取决于剩余空间能放下多少份 KV cache。

3 主流显卡性能对比(截至 2026 年)

我们给出主流显卡的规格对比表。

卡 架构 显存 带宽 BF16 算力 FP8 算力 卡间互联 功耗
V100 Volta 2017 32GB HBM2 0.9 TB/s 125 TF 无 NVLink2 300 GB/s 300W
A100 Ampere 2020 80GB HBM2e 2.0 TB/s 312 TF 无 NVLink3 600 GB/s 400W
RTX 3090 Ampere 2020 24GB GDDR6X 0.94 TB/s 71 TF 无 NVLink 112 GB/s 350W
RTX 4090 Ada 2022 24GB GDDR6X 1.01 TB/s 165 TF 330 TF 无 450W
L40S Ada 2023 48GB GDDR6 0.86 TB/s 181 TF 362 TF 无 350W
L20 Ada 2023 48GB GDDR6 0.86 TB/s ~119 TF ~239 TF 无 275W
H100 SXM Hopper 2022 80GB HBM3 3.35 TB/s 990 TF 1979 TF NVLink4 900 GB/s 700W
H200 SXM Hopper 2024 141GB HBM3e 4.8 TB/s 990 TF 1979 TF NVLink4 900 GB/s 700W
H20 Hopper 2024 96GB HBM3 4.0 TB/s 148 TF 296 TF NVLink 900 GB/s 400W
B200 Blackwell 2025 192GB HBM3e 8.0 TB/s ~2250 TF ~4500 TF NVLink5 1.8 TB/s 1000W
B300 Blackwell Ultra 2025 288GB HBM3e 8.0 TB/s ~2250 TF ~4500 TF NVLink5 1.8 TB/s 1400W

说明:

  • 这里的算力一律使用稠密值。
  • 消费卡也放进这张表,是想说明定位:4090 的单卡算力接近 L20,但只有 24GB 显存、没有卡间互联、许可上也不允许进数据中心,只适合单机单卡的小模型。
  • 表里的显存类型分两档:GDDR6 / GDDR6X 是消费卡和标准工作站用的显存,带宽较低;HBM2e / HBM3 / HBM3e 是数据中心卡用的高带宽显存,堆叠封装在 GPU 芯片旁边,带宽高得多。
  • 功耗是 TDP(热设计功耗),指全速运转时的持续功耗上限,而不是开机就消耗这么多。

3.1 解读"阉割版"显卡

所谓"阉割版",可能代指两种完全不同的"阉割"方式。

第一种是中国特供版,性能削弱。

原版 特供版 砍了什么 没砍什么
A100 A800 NVLink 600→400 GB/s 算力、显存不变
H100 H800 NVLink 900→400 GB/s 算力、显存不变
H100 H20 算力砍到约 15%(990→148 TFLOPS) 显存反而加到 96GB,带宽 4.0 TB/s
L40S L20 算力砍约三分之一 显存 48GB 不变

解读:

  • A800 / H800 砍的是卡间通信速度,单卡跑分不变,专门拖慢多卡训练。
  • H20 砍的是算力本身,卡间互联没砍(仍是 900 GB/s),却把显存和带宽留住甚至加强。按上一节的逻辑,这是一张为推理定做的卡,不适合用作训练。

第二种,比如是 H200 对 H100,这是加强不是阉割:同一颗计算芯片,算力一模一样,只把显存等维度进行提升。

  • H200 相比 H100:显存从 80GB HBM3 换成 141GB HBM3e、带宽从 3.35 TB/s 提到 4.8 TB/s。对训练几乎没区别,对推理是实打实的提升——70GB 的模型,H100 吐一个字约 21 毫秒,H200 约 15 毫秒。
  • B300 对 B200 同理,显存 192GB 提到 288GB。
  • GB200 / GB300 则是把 Grace CPU 和两张 B 卡封装成一个模块,不是单卡。
  • 类似的"同芯片换显存"还有:A100 有显存 40GB 和 80GB 两个版本;H100 有 80GB HBM3 的标准版,以及 96GB HBM3 的 NVL 版(NVL 是 NVIDIA 对"高显存变体"的命名,不是 NVLink 的缩写)。

3.3 在大模型场景下,按用途选显卡

卡 大模型训练 大模型推理
V100 太老,硬件上不支持 BF16/FP8 精度 不行
A100 80G 能用,上一代主流 带宽偏低
L20 48G 勉强,无 NVLink 是硬伤 中小模型性价比不错
4090 24G 显存小、无互联 小模型单卡可以
H100 80G 当前训练标准 带宽够但显存紧
H200 141G 同 H100 推理首选
H20 96G 算力太弱,别拿来训练 推理尚可
B200 / B300(192G / 288G) 训练新标杆 超长上下文最强

3.4 怎么从参数反推一张卡的真实身份

有时候驱动或配置清单报出的名字(比如一些内部代号),会和公开资料对不上。这时候,我们可以通过看四个指标来推断这个卡是什么卡:

  1. 架构代号(sm_90、sm_89 这种):最硬的一个指标,每代架构对应一个编号。
  2. SM 数(流处理器单元数量,是 GPU 里真正做计算的核心簇):同一款卡的 SM 数是固定的。
  3. 显存大小:不同型号的显存容量和类型(HBM / GDDR)差得很远。
  4. 算力实测:跑一个大矩阵乘法,实测值能排除显存相同但算力不同的型号。

来源:博客园 · cnblogs.com