@kmeanskaran: https://x.com/kmeanskaran/status/2105635344385450151
摘要
一篇面向 AI 工程师的 GPU 深度解析,涵盖 GPU 架构(SM、Tensor Core、CUDA kernel)、训练与推理的差异、GPU 各代产品与定价、NVIDIA 的竞争对手,以及在本地运行 gpt-oss-120b 和 Kimi K3 所需的显存与算力实操计算。
查看缓存全文
缓存时间: 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
相似文章
@liao_lucas: https://x.com/liao_lucas/status/2097149853499588971
本文介绍了在AI推理和性能工程背景下的GPU内核,解释了它们的定义、使用方法以及自定义内核在优化中的优势。
@akshay_pachaar: https://x.com/akshay_pachaar/status/2087928032904523980
一条科普帖,讲解GPU的工作原理,重点在于主导LLM服务性能的内存-计算不对称性,并说明量化、投机解码和连续批处理等技术如何从这一根本约束出发。
@akshay_pachaar:GPU架构详解。普遍的假设是,更快的GPU意味着更强的计算能力,所以一款每秒能执行更多操作的芯片应该每秒能生成更多token……
本文以NVIDIA H100为例,阐明了GPU在AI推理中的性能受限于内存带宽而非算力,并解释了GPU架构及其对token生成速率的影响。
@akshay_pachaar: https://x.com/akshay_pachaar/status/2084992645966016757
一份技术指南,演示如何使用开源工具在单个 GPU 上部署五个专用的小型模型(SLM、OCR、NER、重排序器、目标检测器),涵盖内存管理、批处理以及 Superlinked Inference Engine。
@snowboat84: https://x.com/snowboat84/status/2061962883651731602
本文是AI工程全景系列的上篇,从历史角度梳理了GPU从游戏显卡到AI加速器的演化、CUDA的豪赌、谷歌TPU的独立路径,以及英伟达为何最终胜出,详细剖析了芯片、供应链、网络、电力等AI基础设施的底层逻辑。