@kmeanskaran: https://x.com/kmeanskaran/status/2105635344385450151

X AI KOLs Timeline 新闻

摘要

一篇面向 AI 工程师的 GPU 深度解析,涵盖 GPU 架构(SM、Tensor Core、CUDA kernel)、训练与推理的差异、GPU 各代产品与定价、NVIDIA 的竞争对手,以及在本地运行 gpt-oss-120b 和 Kimi K3 所需的显存与算力实操计算。

https://t.co/KU5iSJRQRr
查看原文
查看缓存全文

缓存时间: 2026/10/02 04:35

AI 工程师需要了解的 GPU 知识全解

GPU 内部是什么样子,训练和推理如何不同地使用它,GPU 有哪几代,你实际租用的是什么,NVIDIA 的竞争对手有哪些,以及如何在本地运行模型。

如果你从事 AI 开发,你每天都在使用 GPU。但大多数人从不看硬件本身。我们只管叫它 “GPU”,然后就过去了。

这在你需要做出真正决定时就不行了:该租哪块 GPU,为什么某个模型能跑而另一个崩溃,或者为什么一块 H200 能胜过账面上算力相同的 H100。

本文按照你遇到硬件的顺序来讲解,其中包含两个真实开源权重模型的精确计算和真实价格。不需要任何硬件背景知识。

这两个模型:

  • gpt-oss-120b(OpenAI):1170 亿参数,每个 token 激活 51 亿参数。单块 GPU 即可容纳。

  • Kimi K3(Moonshot AI):2.8 万亿参数,1040 亿激活参数。2026 年最大的开源模型之一。

两者都是 mixture-of-experts(专家混合)模型。每一层包含许多小型 “专家” 网络,每个 token 只会经过其中的几个:gpt-oss-120b 从 128 个中选 4 个,Kimi K3 从 896 个中选 16 个。所以有两个数字很关键。总参数量决定你需要多少显存。激活参数量决定每个 token 需要多少计算和数据搬运。

1. GPU 的种类

GPU 分为三种:

  • **数据中心级:**机架式服务器,GPU 之间有高速互联。例如:NVIDIA B200。

  • **工作站级:**一块大显卡,用于专业桌面。例如:RTX Pro 6000。

  • **个人级:**游戏 PC。例如:GeForce RTX 5090。

数据中心 GPU 运行在三个地方之一:云端(AWS、GCP,或 CoreWeave 和 Nebius 等 “neocloud”),本地部署(你公司自己的数据中心),或物理隔离部署(本地部署且无外部网络)。

GPU 生态全景

GPU 生态全景

**这意味着什么:**除非你在大型企业或政府机构工作,否则你都会在云端租用数据中心 GPU。本文大部分内容都是关于这类 GPU 的。

2. GPU 内部

CPU 擅长依次完成复杂的任务。GPU 是一台吞吐量机器:它同时对成千上万个数字执行同一个简单操作。AI 主要由矩阵乘法构成,而这正是这种类型的工作。

这是一张拆掉散热器后的 H100 外观:

GPU 俯视图

GPU 俯视图

中间的方块是芯片,根据 NVIDIA 的 Hopper 深度解析,它有 800 亿个晶体管。芯片周围环绕着五个显存堆栈,总计 80 GB。GPU 实际上就是这两样东西:计算单元,以及它旁边的显存。

GPU 内部结构

GPU 内部结构

计算

芯片由 Streaming Multiprocessors(流式多处理器,SM) 组成。H100 有 132 个 SM。每个 SM 包含三种计算单元:

  • **CUDA cores:**处理单个数字。

  • **Tensor Cores:**同时处理小矩阵。它们负责矩阵运算,所以对 AI 最为重要。

  • **特殊函数单元:**处理 sin、cos 和 log 等运算。Softmax 需要这些。

Tensor Cores 执行一种运算:矩阵乘加(Matrix Multiply and Accumulate)——将 A 乘以 B,加上 C,存储结果。

这些工作由 线程 完成。CPU 有几十到几百个线程。GPU 有数万个线程,每 32 个为一组称为 warp。当一个 warp 等待数据时,GPU 会在一个时钟周期内切换到另一个 warp,所以计算几乎不会中断。

这些线程执行的代码是 CUDA kernel:一个你启动一次的函数,数千个线程同时在不同数据上运行它。最简单的例子来自 NVIDIA 的 CUDA 编程指南:

没有循环。每个线程只做一次加法。当你在 PyTorch 中调用 model(x) 时,每一个矩阵乘法、归一化和 softmax 都会变成这样的 kernel。

CUDA kernel

CUDA kernel

一个真实例子是 attention 的 Q、K、V。在 vLLM 的 gpt-oss 代码中,三个权重矩阵并排存储,通过一次乘法同时计算。对于 gpt-oss-120b,每个 token 的 2,880 个数字通过一个 2,880 × 5,120 的矩阵,同时得到 Q、K 和 V。GPU 将其拆分为小的 tile,每个线程组处理一个。

GPU 内部的 QKV

GPU 内部的 QKV

计算能力以 FLOPS(每秒浮点运算次数)衡量。关于规格表有两个小提示。第一,使用稠密(dense)数值,而不是 “含稀疏性” 的数值:H100 页面上列出 BF16 含稀疏性为 1,979 teraFLOPS,所以稠密约为 990。第二,每次精度减半,FLOPS 大约会翻倍,所以永远要在相同精度下比较不同 GPU。

下面是精确计算。一次前向传播的成本大约是每个 token 每个激活参数 2 FLOPs,一次乘法加一次加法。

  • **gpt-oss-120b:**2 × 51 亿 = 每个 token 10.2 GFLOPs。一个 1,000 token 的 prompt 是 10.2 TFLOPs:在 H100 上以全速 990 teraFLOPS 运行,大约需要 10 毫秒。

  • **Kimi K3:**2 × 1040 亿 = 每个 token 208 GFLOPs,大约是前者的 20 倍。同样的 1,000 token prompt 是 208 TFLOPs:在一块 H100 上大约需要 210 毫秒。

这些是理想情况。真实的 kernel 永远达不到规格表上的完整数值。

显存

GPU 有两类存储:

  • **VRAM(DRAM):**大容量存储,以 GB 计。“V” 代表 video(视频),来自图形时代。今天指的是 HBM(高带宽内存)。

  • **SRAM:**芯片上小而快的存储,用作缓存。共有三级:每个 Tensor Cores 的 L0,每个 SM 内部的 L1(H100 上为 256 KB),以及所有 SM 共享的 L2(50 MB)。

显存的重要性体现在两方面:

  • **容量决定能装下什么。**它必须容纳权重以及 KV cache(过去 token 的键和值的缓存)。一个常见规则是:权重之外至少额外留出 50% 的空间给 KV cache。gpt-oss-120b 大约 65 GB,可以放进 80 GB 的 H100,但只剩约 15 GB 给 KV cache。这比规则要求的要少。H200 的 141 GB 才是舒适的配置。

  • **带宽决定 token 输出的速度。**为了生成每个新 token,GPU 必须从 VRAM 中读取每一个激活的权重。

下面是对单用户、单 H100 上运行 gpt-oss-120b 的具体计算。每个 token 在 36 层中每层使用 4 个专家:约 1.9 GB 的 4-bit 专家权重。再加上 attention、路由器和输出层,这些保持 BF16 精度:约 3.1 GB。所以每个 token 大约读取 5 GB。

  • **搬运权重:**5 GB ÷ 3.35 TB/s ≈ 1.5 毫秒。

  • **执行计算:**10.2 GFLOPs ÷ 990 teraFLOPS ≈ 0.01 毫秒。

GPU 等待显存的时间大约是计算时间的 145 倍。单用户的上限约为每秒 670 个 token,这还不包括 KV cache 和实际开销的影响。

逐步解码

逐步解码

**这意味着什么:**经验法则很简单。计算能力(FLOPS)是读取 prompt(称为 prefill,预填充)以及图像和视频生成的瓶颈。显存带宽是生成 token(称为 decode,解码)的瓶颈。这就是 H200 存在的原因:计算能力与 H100 相同,但显存从 80 GB @ 3.35 TB/s 提升到 141 GB @ 4.8 TB/s。

3. 训练 vs 推理

同一块 GPU 承担着两种截然不同的任务。多年来,训练是 GPU 的主要用途。如今推理正成为主导用途。

GPU 上的训练与推理

GPU 上的训练与推理

训练对每个 batch 执行三个步骤:前向传播生成预测,反向传播计算梯度,然后更新权重。Scaling laws 论文估计这一过程约为每个参数每个 token 6 FLOPs,因为反向传播的成本大约是前向传播的两倍。对于 gpt-oss-120b,就是 6 × 51 亿 = 每个训练 token 30.6 GFLOPs,是推理成本的三倍。

训练还需要多得多的显存。Hugging Face 的训练显存指南以混合精度训练配合 Adam 优化器为例进行了拆解:

  • **权重:**每个参数 6 字节(一个 16 位副本用于计算,一个 32 位副本用于稳定更新)。

  • **优化器状态:**每个参数 8 字节。

  • **梯度:**每个参数 4 字节。

  • **激活值:**从正向传播中保存下来用于反向传播,且会随 batch size 和序列长度增长。

在激活值之外,大约每个参数 18 字节,而且这里每个参数都算,不只是激活参数。对于 gpt-oss-120b:1170 亿 × 18 字节 ≈ 2.1 TB,而推理服务只需要约 65 GB。

推理只执行前向传播:大约每个 token 每个激活参数 2 FLOPs。显存中存放权重(BF16 下每个参数 2 字节,量化后更少)和 KV cache。除此之外没有别的。

工作的形态也不同。训练一次推送巨大的 batch,所以每次从显存中读取的权重会被使用多次,Tensor Cores 保持忙碌。而 decode 为每个用户一次只生成一个 token,所以 GPU 大部分时间在等待显存。

**这意味着什么:**一块“适合训练“的 GPU 并不自动是服务推理的最佳选择。训练时,你关心的是 FLOPS、总显存和 GPU 之间的通信速度。推理时,你关心的是显存带宽、KV cache 的空间和每个 token 的成本。

4. 量化

如果每个权重需要 2 字节,你可以用更少的位数来存储它。这就是量化:8-bit 是原来的一半大小,4-bit 是四分之一。

诀窍在于共享的缩放因子。Hugging Face 的量化指南写作 x = S * (x_q - Z)。一个很小的例子:权重 0.50、-1.27 和 0.03,缩放因子为 0.01,则存储为 50、-127 和 3。乘以 0.01 即可还原。

GPU 上的量化

GPU 上的量化

较旧的 GPU 会存储小权重,然后在计算时转换回 BF16。较新的 GPU 直接以低精度计算:Hopper 上是 FP8,Blackwell 上是 FP4。FP8 在纸面上快两倍,但这并不意味着实际速度也会翻倍。

真实例子:gpt-oss-120b 以一种名为 MXFP4 的 4-bit 格式发布。1170 亿参数在 BF16 下需要 234 GB,但发布时只有约 65 GB,Hugging Face 的 gpt-oss 博文确认 “120B 可以放进单块 80 GB GPU”。Kimi K3 训练时就以 4-bit 权重运行,称为量化感知训练(quantization-aware training)。其 2.8 万亿参数在 BF16 下约为 5.6 TB。checkpoint 大约为 1.56 TB。

**这意味着什么:**量化主要节省显存,让模型能在更少或更便宜的 GPU 上运行。务必在你自己的任务上测试质量。

5. GPU 代际

NVIDIA 的命名有两个部分:字母代表代际,数字代表规格大小。H100 替代了 A100。H200 是一块更大的 Hopper。各代际以科学家的名字命名。

你仍会在旧系统中看到 Turing(T4)和 Ampere(A10、A100)。现在真正重要的是:

  • **Ada Lovelace(L4、L40):**更便宜,支持 FP8,但没有 NVLink(GPU 之间的快速互联)。适合小模型。

  • **Hopper(H100、H200):**新增 FP8。足够新以保持快速,足够成熟以获得所有框架的支持。大多数推理都在这里运行。

  • **Blackwell(B200、B300):**新增 FP4,因此像 gpt-oss-120b 和 Kimi K3 这样的 4-bit 模型可以原生运行。B200 有 180 GB,B300 有 288 GB。大模型的新黄金标准。

  • **Rubin(2026 年):**HBM4 显存,每块 GPU 最高 288 GB @ 22 TB/s,从 2026 年 10 月起开始出货。还有 Rubin CPX,一款专门为 prefill 设计的独立芯片,预计 2026 年底推出。

  • **Feynman(2028 年):**NVIDIA 路线图上的下一个。

NVIDIA 自家的 Grace 和 Vera CPU 与 GPU 显存之间的带宽可达 900 GB/s,足以将旧的 KV cache 存放在更大的 CPU 内存中。

**这意味着什么:**代际字母告诉你支持哪些精度、有没有 NVLink,以及软件成熟度如何。关于新代际的建议:等待真实基准测试,因为软件大约需要一年才能追上。

6. 你实际租用的是什么

在云端,你租的是一个实例,而不是一块 GPU:GPU 加上 CPU、RAM、存储、网络以及 GPU 之间的互联。其中任何一个都可能成为你的瓶颈。

当模型太大时,GPU 之间需要协同工作。标准单位是一个 node(节点):一台服务器中的八块 GPU,通过 NVLink(Hopper 上每块 GPU 900 GB/s,Blackwell 上 1,800 GB/s)和 NVSwitch 连接,后者将每块 GPU 与其他所有 GPU 互联。节点之间通过 InfiniBand 连接,其速度大约是 NVLink 的十分之一。

多 GPU

多 GPU

由于这种速度差距,vLLM 的文档建议将每一层拆分到节点内的 GPU 上(张量并行),并将层的分组拆分到不同节点上(流水线并行)。Kimi K3 是一个真实的例子。其权重约为 1.56 TB,超过单个 8 × H200 节点的容量(8 × 141 GB = 1,128 GB)。NVIDIA 自己的 Kimi K3 配方是在 32 块 H200 上运行:每个节点的 8 块 GPU 之间用张量并行,4 个节点之间用流水线并行。总共有 4,512 GB,所以大部分显存留给了 KV cache。在 Blackwell Ultra 上,单个 8 × B300 节点(2,304 GB)足以单独容纳权重。

当模型太小时,问题就相反了。一个几十亿参数的模型无法让一块 H100 保持忙碌。MIG 可以将一块 GPU 分割成最多七个更小的、相互隔离的 GPU,每个拥有独立的显存份额。

7. 如何选择 GPU

五个快速步骤:

  • **权重:**Hugging Face 的经验法则是 “X 十亿参数在 bfloat16 下大约需要 2 * X GB 显存”。8-bit 减半,4-bit 取四分之一。

  • **开销:**Hugging Face Accelerate 的文档建议 “额外增加最多 20%”。

  • **KV cache:**至少留出 50% 的额外空间。

  • **速度:**权重大小 ÷ 显存带宽 = 单用户每个 token 的理论最佳速度。

  • **成本:**每小时价格,以及你能把它跑多满。忙碌的 GPU 会把每次访问显存的开销分摊到多个用户上。

以下是我在 2026 年 9 月底查看的 AWS 上 Hugging Face Inference Endpoints 价格:

  • **gpt-oss-120b(约 65 GB),最便宜方案:**1 × A100 80 GB,$2.50/小时。可以放得下,KV cache 约剩 15 GB。

  • **gpt-oss-120b,多用户场景:**1 × H200,$5/小时。141 − 65 = 76 GB 用于 KV cache,4.8 TB/s 的带宽使每个 token 的上限降至 5 GB ÷ 4.8 TB/s ≈ 1 毫秒。

  • **Kimi K3(约 1.56 TB):**太大了,无法放进列表上最大的实例——8 × H200,1,128 GB,$40/小时。你需要第 6 节中提到的多节点方案。

8. NVIDIA 之外

NVIDIA 领先,但它并非唯一。替代方案包括 AMD 的 Instinct GPU、AWS 的 Inferentia 和 Trainium、Google 的 TPU、Cerebras 的晶圆级芯片以及 Groq 基于 SRAM 的 LPU。最近有两个变化:AMD 已过渡到 MI400 系列,NVIDIA 授权了 Groq 的技术,NVIDIA Groq 3 LPX 现已全面量产。

每家公司都在赌一个优势:显存带宽(Cerebras、Groq)、能效(Furiosa、Qualcomm),或云端集成(Amazon、Google)。它们共同面临一个挑战:没有 CUDA,就必须重建整个软件栈。

**这意味着什么:**替代芯片在特定工作负载上可能更快或更便宜,但要先确认它对你的确切模型是否有软件支持。

结语

就我个人而言,我关注 LLM 的基础知识和一点 GPU 知识,这就足够有用到工作了。那些让你先学 CUDA 的人,是在把这个领域最后的百分之十描述成入口。

如果从本文中只保留一个习惯:在你租用任何东西之前,做两个除法。权重 ÷ 显存告诉你能不能装得下。激活权重 ÷ 带宽告诉你它能跑多快。

诚实的说明:我没有亲自对这些 GPU 做过基准测试,所以这里的速度都是根据规格表计算的。而且硬件事实更新很快:当我查阅资料时,仅仅几个月前的来源在 Apple、AMD 和 Groq 的信息上已经过时了。

感谢阅读。

关注 @kmeanskaran

相似文章

@snowboat84: https://x.com/snowboat84/status/2061962883651731602

X AI KOLs Timeline

本文是AI工程全景系列的上篇,从历史角度梳理了GPU从游戏显卡到AI加速器的演化、CUDA的豪赌、谷歌TPU的独立路径,以及英伟达为何最终胜出,详细剖析了芯片、供应链、网络、电力等AI基础设施的底层逻辑。