大模型训练与部署语境下的常用显卡:B 卡、H 卡与算力数字怎么读
LLM | 大模型训练 / 部署语境下的常用显卡 - MoonOut
这篇博客梳理了 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 怎么从参数反推一张卡的真实身份
有时候驱动或配置清单报出的名字(比如一些内部代号),会和公开资料对不上。这时候,我们可以通过看四个指标来推断这个卡是什么卡:
- 架构代号(
sm_90、sm_89这种):最硬的一个指标,每代架构对应一个编号。 - SM 数(流处理器单元数量,是 GPU 里真正做计算的核心簇):同一款卡的 SM 数是固定的。
- 显存大小:不同型号的显存容量和类型(HBM / GDDR)差得很远。
- 算力实测:跑一个大矩阵乘法,实测值能排除显存相同但算力不同的型号。
来源:博客园 · cnblogs.com