CABINET / The Physical Stack of AI / AI Infra
GPU
Physical Stack of AI 系列 · 第三章
上一章拆解了 CPU——串行架构、复杂控制逻辑、多层缓存,一切服务于”低延迟完成单个任务”。这一章看 GPU,它的逻辑是,牺牲单线程速度,换取大规模并行吞吐。
本篇的路线图:
§6 GPU 硬件架构:从芯片平面图开始(自顶向下拆解)
§7 硬件与软件的映射:从 SIMD 到 SIMT
§8 GPU 架构演进:从 Fermi 到 Blackwell(+ 产业史)
§9 显卡:GPU Die 之外的部分
§10 CPU-GPU 联动:Grace-Blackwell 架构
§6. GPU 硬件架构
理解 GPU,最好的方式是从一颗 Die 的俯瞰图开始,自顶向下拆解。我们以 NVIDIA 最新的 Blackwell 架构(2024)为主线,Hopper(2022)作为对比。
6.1 整体结构
先建立全局视角。以数据中心版 GB100 GPU Die(Blackwell 架构)为例:
GB100 GPU Die(Blackwell 架构)
├── GPC (Graphics Processing Cluster) × 8
│ └── TPC (Texture Processing Cluster) × 若干
│ └── SM (Streaming Multiprocessor) × 若干
├── L2 Cache
├── Memory Controller(连接 HBM3e)
├── NVLink 5.0 Controller
└── GigaThread Engine(全局线程调度器)

几个关键概念:
- GPC(Graphics Processing Cluster):名字源自图形渲染时代,但在 AI 计算中只是 SM 的物理分组层级。一颗 GB100 有 8 个 GPC。
- TPC(Texture Processing Cluster):同样是历史遗留命名。每个 TPC 包含若干 SM。
- SM(Streaming Multiprocessor):GPU 的基本计算单元,类似于 CPU 的”核心”,但内部结构和设计哲学完全不同。SM 是理解 GPU 的核心抽象层。

这些名词虽然暂时看起来陌生,不过有了CPU拆解的经验,我们可以想象,这些部件的底层也就是无数Transistors而已。
6.2 SM 内部结构
SM 是 GPU 的核心,我们来拆开它看看里面是什么。
Blackwell 架构 SM(以 GB100 数据中心版为例):
一个 Blackwell SM
├── Processing Block #0
│ ├── 统一 INT32/FP32 CUDA Cores
│ ├── 1 × Fifth-Gen Tensor Core(支持 FP4/FP6/FP8)
│ ├── SFU (Special Function Unit,计算 sin/cos/exp 等)
│ ├── 1 × Warp Scheduler + Dispatch Unit
│ └── Register File (64 KB)
├── Processing Block #1(同上)
├── Processing Block #2(同上)
├── Processing Block #3(同上)
└── Shared Memory / L1 Cache(4 个处理块共享)

每个 SM 包含 4 个 Processing Block(也叫 Quadrant / Sub-partition),是 SM 内部的独立调度单元。
6.2.1 CUDA Core
CUDA Core 是 GPU 最基本的计算单元,对应CPU里的ALU。
它的核心操作是 FMA(Fused Multiply-Add):
A × B + C → 一个时钟周期完成
每个 CUDA Core 每周期处理一个 32 位浮点数(FP32)或一个 32 位整数(INT32)的 FMA 运算。就这么简单,没有分支预测,没有乱序执行,没有推测执行。
CUDA Core 底层长什么样?和 CPU 的 ALU 像吗?
本质上,CUDA Core 和 CPU 的 ALU 一样,都是由逻辑门(AND、OR、NOT、XOR)组合而成的组合/时序电路。核心都是**加法器(Adder)和乘法器(Multiplier)**的晶体管级实现。在最底层——晶体管和逻辑门这一层——两者没有本质区别。
区别在于:
- CPU ALU 被包裹在一层厚厚的控制逻辑中:分支预测器(Branch Predictor)、乱序执行引擎(Out-of-Order Engine)、重排序缓冲区(ROB)、保留站(Reservation Station)……这些控制逻辑的晶体管数量可能是 ALU 本身的 5-10 倍。目的是让单个 ALU 尽可能快地、不间断地工作。
- CUDA Core 则几乎是”裸奔”的 ALU——没有分支预测,没有乱序执行,只有一个简单的 Warp Scheduler 告诉它”这个周期执行这条指令”。省下来的晶体管全部拿去复制更多的 ALU。
- CUDA Core 做的一个关键优化是 FMA(Fused Multiply-Add)硬件:将
A×B+C合并为一条指令、一个硬件单元完成,中间不做舍入——既快(1 个周期而非 2 个),又精确(只在最终结果处舍入一次)。这对Tensor Core里的矩阵运算至关重要。
整个 Blackwell B200(双 Die)拥有约 21,760 × 2 = 43,520 个 CUDA Cores(数据中心版)。消费级 GB202 有 24,576 个 CUDA Cores。对比一颗顶级桌面 CPU(如 i9-14900K)的 24 个核心,数量差距超过 1000 倍。
[!info] 在上图中,还可以看到SFU(Special Function Unit)这个模块,这是用来进行特殊运算的,比如MAX(), MIN(), 或者三角函数等。
上图没有显示,但还有一个重要的计算模块叫DPU(Double Precision Unit),它是用来进行双精度(FP64)运算的,而CUDA Core专门进行单精度(FP32)的计算。
图:Pascal GPU架构(2016),可以看到DPU
6.2.2 Tensor Core
CUDA Core 是通用浮点运算单元,对矩阵乘法并无特别优化。2017 年 Volta 架构首次引入 Tensor Core——一种专为矩阵乘加(Matrix Multiply-Accumulate)设计的硬件单元。
Tensor Core 的核心操作:
D = A × B + C
其中 A, B, C, D 是小矩阵块(如 4×4、8×8、16×16,取决于精度)
一个 Tensor Core 在一个时钟周期内完成整个矩阵块的乘加操作。如果用 CUDA Core 逐元素计算同样的 4×4 矩阵乘法,需要 64 次乘法和 48 次加法——数十个周期。Tensor Core 在矩阵运算场景下的效率是 CUDA Core 的数十倍。
Blackwell 第五代 Tensor Core 的关键升级:引入 FP4 和 FP6 精度支持,通过 Micro-Tensor Scaling 技术实现——在极低位宽下维持模型精度。
Blackwell 支持的完整数据格式表:
| 精度格式 | 位宽 | 说明 |
|---|---|---|
| FP64 | 64 bit | 双精度浮点,科学计算 |
| FP32 | 32 bit | 单精度浮点,通用计算 |
| TF32 | 19 bit | Tensor Float 32,Ampere 引入的折中格式 |
| BF16 | 16 bit | Brain Float 16,Google 提出,训练主流 |
| FP16 | 16 bit | 半精度浮点,推理常用 |
| FP8 (E4M3/E5M2) | 8 bit | Hopper 引入,训练/推理 |
| INT8 | 8 bit | 整数量化,推理 |
| FP6 | 6 bit | Blackwell 新增,推理优化 |
| FP4 | 4 bit | Blackwell 新增,极致量化推理 |
位宽减半,同样的硬件面积可以塞下两倍的计算。所以从 FP32 到 FP4,理论算力跃升约 8 倍。 在AI Infra那一章中,我们会再次回到这里(Quantization,量化)。
如果你对这些精度格式比较陌生,这里用一个具体例子直观感受一下。假设我们要表示数字 0.15625:
FP32(32 bit = 1 符号位 + 8 指数位 + 23 尾数位):
0 01111100 01000000000000000000000
→ 精确表示 0.15625
→ 32 bit 的"豪华房间",几乎不损失任何信息
FP16(16 bit = 1 + 5 + 10):
0 01100 0100000000
→ 仍然可以精确表示 0.15625
→ 但可表示的范围和精度大幅缩小
→ 最大值 ~65,504(FP32 是 ~3.4×10³⁸),极端值会溢出
BF16(16 bit = 1 + 8 + 7):
0 01111100 0100000
→ 保留了 FP32 的 8 位指数(范围和 FP32 一样大!)
→ 但尾数只有 7 位(精度比 FP16 低)
→ 训练中"范围比精度更重要",所以 BF16 成为训练主流
FP8 E4M3(8 bit = 1 + 4 + 3):
0 1100 010
→ 只有 3 位尾数,精度很粗糙
→ 但对于 inference 来说,模型权重本身有冗余,
8 bit 够用了——这就是"量化"的核心思想
FP4(4 bit = 1 + 2 + 1):
0 10 1
→ 整个数只有 4 bit,能表示的不同值只有 16 个
→ 必须配合 Micro-Tensor Scaling(每组数据共享一个缩放因子)
才能维持模型质量
核心 trade-off:位宽越低 → 算力越高(同样的硬件塞更多运算)+ 显存占用越少(同样的 HBM 装更大模型)→ 但精度越低 → 需要精巧的训练/推理技巧来弥补。这就是为什么”混合精度训练”和”量化推理”是 AI 工程的核心技能。
HGX B200 单 GPU 峰值算力:
| 精度 | Dense | Sparse (2:4 结构化稀疏) |
|---|---|---|
| FP4 Tensor Core | 9 petaFLOPS | 18 petaFLOPS |
| FP8 Tensor Core | 4.5 petaFLOPS | 9 petaFLOPS |
| FP16/BF16 Tensor Core | 2.25 petaFLOPS | 4.5 petaFLOPS |
| TF32 Tensor Core | 1.125 petaFLOPS | 2.25 petaFLOPS |
| FP32 (CUDA Core) | 75 teraFLOPS | — |
注意 FP4 Dense 算力(9 PFLOPS)是 FP32(75 TFLOPS)的 120 倍。这就是为什么”混合精度训练”和”量化推理”对 AI 如此重要——用更低的精度换取数量级的算力提升,同时通过 Micro-Tensor Scaling 等技术维持模型质量。
**HGX B300(Ultra)**进一步提升:FP4 达到 14 petaFLOPS(Dense)/ 18 petaFLOPS(Sparse)。
6.2.3 Ray Tracing Core
Blackwell 搭载了第四代 RT Core,从它的名字“光线追踪”可知,其主要服务于游戏和专业可视化场景。RT Core 是硬件加速的 BVH(Bounding Volume Hierarchy)遍历和光线-三角形求交单元,将实时光线追踪的计算从 CUDA Core 卸载到专用硬件上。
在 AI 计算场景中,RT Core 不参与工作——但它占据了消费级 GPU Die 的一部分面积。数据中心版 GPU(如 B200)通常不包含 RT Core。

6.3 存储与互联
6.3.1 存储与延时
GPU 也有存储层次结构,但和 CPU 呈现出明显的差别:

CPU GPU
┌─────────────┐ ┌──────────────────┐
最快/最小 │ 寄存器 │ │ 寄存器 (256KB/SM)│
│ (~数十个/核) │ │ │
├─────────────┤ ├──────────────────┤
│ L1 Cache │ │ Shared Mem/L1 │
│ (~64KB/核) │ │ (~256KB/SM) │
├─────────────┤ ├──────────────────┤
│ L2 Cache │ │ L2 Cache │
│ (~数MB) │ │ (50-65MB) │
├─────────────┤ ├──────────────────┤
最慢/最大 │ DRAM │ │ HBM / GDDR │
│ (~64GB/s) │ │ (数TB/s) │
└─────────────┘ └──────────────────┘
Register File(寄存器堆):每个 SM 有 256 KB 寄存器——这比一颗 CPU 核心的全部 Cache 还大!为什么?
因为 SM 需要同时维护 2,048 个活跃线程的状态。每个线程都有自己独占的一组寄存器。当线程切换时,不需要保存/恢复寄存器内容(CPU 的上下文切换需要这步),直接跳到另一组寄存器即可。这就是 GPU **零开销线程切换(Zero-Overhead Context Switch)**的硬件基础——也是 Latency Hiding 能工作的前提。
Latency Hiding(延迟隐藏):以向量加法为例
假设我们在 H100 上对一个长度为 65,536 的向量做
y[i] = a * x[i] + b。每个线程处理一个元素,共 2,048 个 Warp(65,536 / 32)。聚焦一个 SM(分配到 64 个 Warp = 2,048 个线程),看它的 Warp Scheduler 在做什么:真实延迟数据(H100 实测):
- HBM → Register 的全局内存访问延迟:~400 个时钟周期
- 一次 FMA 运算(
a * x[i] + b):4 个时钟周期(含流水线延迟)- Warp 切换开销:0 周期(寄存器已经分配好,调度器直接切换指针)
周期 0: Warp 0 发出 Load x[0..31] 请求 → 数据在 HBM,400 周期后回来 调度器:Warp 0 进入等待队列 → 切换到 Warp 1 周期 1: Warp 1 发出 Load x[32..63] 请求 → 进入等待 → 切换到 Warp 2 ...(每周期切换一个 Warp,连续发出内存请求) 周期 63: Warp 63 发出 Load 请求 → 进入等待 周期 64-399: 所有 64 个 Warp 都在等内存。 但 HBM 端正在并行处理这 64 个请求。 如果 Warp 不够多,这里 ALU 就会空闲——这就是 Occupancy 不足的场景。 周期 ~400: Warp 0 的数据到了!调度器立刻将 Warp 0 切回执行态 → 32 个 CUDA Core 同时执行 FMA(4 周期) 周期 ~401: Warp 1 的数据到了!→ 执行 FMA ... → 从周期 400 开始,每 1-4 个周期就有一个 Warp 的数据就绪 → ALU 几乎不再空闲,400 周期的内存延迟被 64 个 Warp 的流水"填满"了算一下需要多少个 Warp 才够:
- 内存延迟 400 周期,每个 Warp 的 FMA 计算 4 周期
- 要完全隐藏延迟:需要 400 / 4 = 100 个 Warp 同时驻留
- H100 每个 SM 最多 64 个 Warp(2,048 线程)——不够 100 个!
- 所以这个例子实际上是 memory-bound(算力闲置,瓶颈在内存带宽)
- 如果每个线程的计算量更大(比如矩阵乘法中每个线程做几百次 FMA),那 64 个 Warp 就绰绰有余了——这就是 compute-bound 的场景
这就是为什么 GPU 需要那么大的 Register File(256KB/SM)——它必须同时保存所有 64 个 Warp(2,048 个线程)的寄存器状态,才能在它们之间零开销瞬间切换。如果寄存器不够大,能同时驻留的 Warp 就少,一旦所有活跃 Warp 都在等内存,ALU 就会空闲——这叫做 Occupancy 不足,是 GPU 性能调优的核心指标之一。
关键对比:CPU 用复杂的硬件(乱序执行、预取器、大缓存)来减少延迟;GPU 用大量线程来隐藏延迟。两种策略,殊途同归,都是为了让 ALU 不要闲着。
Shared Memory(共享内存):SM 内部所有线程共享的高速 SRAM。
和 CPU 的 Cache 有一个根本区别:
- CPU Cache:由硬件自动管理(你写一段 C 代码,不需要考虑数据在 L1 还是 L2)
- GPU Shared Memory:由程序员显式控制(你需要手动写代码把数据从 HBM 搬到 Shared Memory)
这增加了编程难度,但给了高性能计算极大的优化空间。FlashAttention 的核心优化就在这里——通过重新设计 Shared Memory 的数据访问模式(tiling strategy),将 Attention 计算从 memory-bound 变为 compute-bound,实现了 2-4 倍的加速。
L2 Cache 是全芯片所有 SM 共享的缓存:
- Hopper (H100):50 MB,双分区设计(split into two partitions)
- Blackwell 消费级 (GB202):65 MB,单分区设计
- Blackwell 数据中心 (B200):更大容量
单分区 vs 双分区的区别:双分区设计中,某些访问模式可能导致跨分区流量,增加延迟。单分区设计消除了这个问题,访问更均匀。
Memory Controller 负责连接片外显存:
- 数据中心 GPU → 连接 HBM(High Bandwidth Memory)
- 消费级 GPU → 连接 GDDR
B200 通过多个 Memory Controller 连接 8 个 HBM3e Stack,实现 192-270 GB 容量和 7.7-8 TB/s 带宽。
6.3.2 调度与通讯
GigaThread Engine:GPU 的总调度,负责将 Thread Blocks(一组需要协作的线程)分配到各个 SM 上执行。
NVLink Controller:Blackwell 架构下的第五代NVLink
- 每 GPU 1.8 TB/s 双向带宽(Hopper 的 NVLink 4.0 是 900 GB/s)
- 通过 NVLink Switch 可扩展到 576 颗 GPU 互联
- 这是多 GPU 并行训练的基础互联——远超 PCIe 的带宽(详见 §10)
我们会在AI Infra讲GPU互联时详细看NVLink,这里先带过,知道其存在就好。
6.4 Blackwell架构的更新
参数变化
| Hopper (GH100) | Blackwell 消费级 (GB202) | Blackwell 数据中心 (GB100) | |
|---|---|---|---|
| FP32 CUDA Cores / SM | 128 | 128 | ~128 |
| INT32 Cores / SM | 64(独立管线) | 统一到 FP32 管线 | 统一到 FP32 管线 |
| Tensor Core 代 | 4th Gen | 5th Gen | 5th Gen |
| Tensor Core 新增精度 | FP8 | FP4, FP6 | FP4, FP6 |
| Shared Mem / L1 | 256 KB | ~128 KB L1, ~99 KB Shared | 更大 |
| Register File / SM | 256 KB | 256 KB | 256 KB |
| L2 Cache(全芯片) | 50 MB(双分区) | 65 MB(单分区) | 更大 |
| HBM 容量(旗舰) | 80 GB HBM3 | 32 GB GDDR7 (RTX 5090) | 192-270 GB HBM3e |
| HBM 带宽(旗舰) | 3.35 TB/s | 1.79 TB/s | 7.7-8 TB/s |
关键变化:Blackwell 将 INT32 和 FP32 执行管线统一。在 Hopper 中,INT32 和 FP32 有各自独立的 pipeline——当工作负载只需要浮点计算时,INT32 管线就闲置了。合并后,所有管线都能灵活执行 INT32 或 FP32,减少混合工作负载时的空闲周期。
Dual-Die设计
数据中心版 Blackwell GPU(如 B200)实际上是两颗 GB100 Die 通过 NV-HBI(High Bandwidth Interface)连接在一起的。 两颗 Die 合计约 2,080 亿个晶体管。
为什么要双 Die?因为单颗 Die 的面积已经逼近光刻极限(reticle limit)——TSMC 的 EUV 光刻机单次曝光面积上限约 858mm²,GB100 单 Die 面积已经非常接近这个极限。要继续堆更多计算单元,唯一的办法就是”两颗芯拼一颗用”。
NV-HBI 提供 10 TB/s 的 Die-to-Die 带宽,让两颗 GB100 对软件透明地呈现为一颗 GPU,程序员不需要感知底层是双 Die。
消费级则是另一条路线:最大的消费级 Die 是 GB202(用于 RTX 5090),面积约 750mm²,单 Die 设计,包含 24,576 个 CUDA Cores,不需要双 Die 也能在光刻极限内。
Binning
这里顺带讲一个半导体行业的生产知识。一块巨大的 Die(如 GA102,用于 RTX 30 系列)在生产时,部分 SM 不可避免会有缺陷。与其扔掉整颗 Die,不如屏蔽有缺陷的 SM,降级成低端产品:
GA102 Die(Ampere 消费级)的 Binning 策略:
RTX 3090 Ti ── 0 个有缺陷 SM ── 全部 SM 启用,最高频率
RTX 3090 ── 2 个有缺陷 SM ── 略微降低 SM 数量
RTX 3080 Ti ── 4 个有缺陷 SM ── 进一步降低
RTX 3080 ── 16 个有缺陷 SM ── 大幅屏蔽,入门旗舰
↑
同一颗 GA102 Die,但不同价格
频率也有差异——“体质好”的 Die 在更高电压下也能稳定运行,所以高端型号的 Boost Clock 更高。
Blackwell 的 GB202 也是如此:RTX 5090 使用完整的 GB202 Die(24,576 CUDA Cores 全部启用),而 RTX 5080 使用的是更小的 GB203 Die(不是 GB202 的屏蔽版,而是独立设计的较小 Die)。
Binning 让同一条生产线的产出覆盖从旗舰到中端的完整产品线,极大提高了晶圆利用率和利润率。这是半导体公司的核心定价策略之一。
§7. 硬件与软件的映射
理解了硬件结构,接下来看软件如何映射到硬件上。
7.1 CUDA结构和硬件结构的一一对应

一个具体的例子:假设你要做一个 1024×1024 的矩阵乘法。
- 你把结果矩阵划分成若干个 Tile(比如每个 Tile 是 32×32 = 1024 个元素)
- 每个 Tile 的计算对应一个 Block(包含 1024 个 Thread)
- Block 内部被自动划分为若干 Warp(每个 Warp 32 个 Thread)
- GigaThread Engine 把这些 Block 分配到各个 SM 上
- 每个 SM 内部,Warp Scheduler 按周期调度 Warp 执行
7.2 从 SIMD 到 SIMT
SIMD(Single Instruction, Multiple Data)
SIMD 指令(如 x86 的 AVX-512):
一条指令同时对 16 个 FP32 数据执行相同操作:
a₁ a₂ a₃ ... a₁₆ ← 16 个数据打包成一个向量
× b₁ b₂ b₃ ... b₁₆
─────────────────────────
= c₁ c₂ c₃ ... c₁₆ ← 一条指令完成 16 次乘法
SIMD 的限制:一个Warp内的所有数据必须执行完全相同的操作。如果其中某个元素需要走不同的分支,不行。数据必须严格对齐,逻辑必须完全一致。
SIMT(Single Instruction, Multiple Threads):GPU 的创新。
SIMT(GPU 的 Warp 执行模型):
一个 Warp = 32 个 Thread,通常执行同一条指令:
Thread 0: z₀ = a₀ × b₀ + c₀
Thread 1: z₁ = a₁ × b₁ + c₁
Thread 2: z₂ = a₂ × b₂ + c₂
...
Thread 31: z₃₁ = a₃₁ × b₃₁ + c₃₁
关键区别:每个 Thread 有独立的程序计数器(PC)和执行路径。
如果 Warp 内出现分支分歧(Warp Divergence):
if (thread_id < 16) {
path_A(); // Thread 0-15 走这条路
} else {
path_B(); // Thread 16-31 走这条路
}
GPU 的处理方式:
Step 1: 执行 path_A()
Thread 0-15: ✅ 活跃执行
Thread 16-31: 🔇 被 mask 掉(空等)
Step 2: 执行 path_B()
Thread 0-15: 🔇 被 mask 掉(空等)
Thread 16-31: ✅ 活跃执行
→ 两个分支串行执行,效率降低 50%,但不会出错!只是慢了。
在 SIMD 中,你根本无法在一个向量内做条件分支。SIMT 允许分支,只是性能会下降。
历史演进:
- 2016 年之前:Warp 内线程严格 Lockstep(步调完全一致),分支 diverge 后必须在同一点重新汇合
- **Volta 架构(2017)**之后:引入 Independent Thread Scheduling,每个线程有独立的 PC 和调用栈,允许更灵活的执行模式(比如 Warp 内不同线程执行不同的循环次数)
7.3 GPU并行架构的具体应用
让我们用一个图形渲染的具体例子来说明为什么GPU叫Graphics Processing Unit.
场景:你在游戏中放置了一个 3D 物体模型,假设是一个最简单的单位正方体。3D意味着物体是在一个三维直角坐标系中,由数个**顶点(Vertices)**组成,每个顶点有一个 (x, y, z) 坐标。顶点之间连接自然成了三角形(Mesh)。
但问题是,这些坐标定义在**模型空间(Model Space)**中——即模型自己的局部坐标系。假设这个单位正方体的一个顶点在原点上,那就可以知道这个正方体别的顶点在哪里,比如(0,0,1),(1,1,1)

但问题是,在游戏里,我不是只有一个正方体,而是有无数个物体,物体之间还有空间关系,我还会四处移动,从不同角度去看物体。所以,要把模型放进游戏世界,需要经过以下变换:
Model Space (模型空间)
│
│ ① 模型变换 (Model Transform)
│ 平移 (Translation) + 旋转 (Rotation) + 缩放 (Scale)
↓
World Space (世界空间)
│
│ ② 视图变换 (View Transform)
│ Camera 的位置和朝向
↓
Camera Space (相机空间)
│
│ ③ 投影变换 (Projection Transform)
│ 透视投影 → 近大远小
↓
Screen Space (屏幕空间)
│
│ ④ 深度测试 (Depth/Z-Buffer Test)
│ Camera 知道哪个物体在前、哪个在后
↓
最终 2D 画面

这些变换的本质是什么?矩阵乘法。
对每个顶点 v = (x, y, z, 1):
v_world = M_model × v ← 4×4 矩阵 × 4×1 向量
v_camera = M_view × v_world
v_screen = M_proj × v_camera
或者合并为一步:
v_screen = M_proj × M_view × M_model × v = M_MVP × v
关键洞察:
- 每个顶点的变换是独立的——顶点 A 的新坐标不依赖顶点 B 的结果
- 每个顶点执行的指令完全相同——都是乘同一个变换矩阵 $M_{\text{MVP}}$
- 一个模型可能有 10,000+ 个顶点,一个场景可能有数百个模型
这是 embarrassingly parallel(令人尴尬的并行)——并行化如此自然,以至于不做并行反而不合理。
一个 Warp 同时处理 32 个顶点的变换:
Thread 0: v_screen_0 = M_MVP × v₀
Thread 1: v_screen_1 = M_MVP × v₁
Thread 2: v_screen_2 = M_MVP × v₂
...
Thread 31: v_screen_31 = M_MVP × v₃₁
→ 同一指令(矩阵乘法),不同数据(不同顶点)
→ SIMT 的完美场景,0% Warp Divergence
这就是为什么 GPU 最初为图形渲染而设计,但天然适合所有”对大量数据执行相同操作”的任务——包括深度学习中的矩阵乘法、卷积运算等。 架构上的匹配不是巧合,而是同一种计算模式的不同应用。
§8. GPU 编年史
8.1 NVIDIA GPU 架构代际总览
这张表是 NVIDIA GPU 十五年架构演进的全景图。
| 架构 | 年份 | 核心代号 | 代表产品(数据中心) | 代表产品(消费级) | 工艺 | 晶体管数 | SM 数 | CUDA Cores 总数 | Tensor Core 代 | 显存类型 | 旗舰显存容量 | 显存带宽 | TDP | NVLink 代/带宽 | 关键创新 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Fermi | 2010 | GF100 | Tesla M2050/M2070 | GTX 480 | 40nm | 30 亿 | 16 | 512 | — | GDDR5 | 6 GB | 177 GB/s | 250W | — | 首个完整 GPU 计算架构,统一 Shader |
| Kepler | 2012 | GK110 | Tesla K80 | GTX 680 / Titan | 28nm | 71 亿 | 15 | 2,880 | — | GDDR5 | 12 GB (K80 双芯) | 480 GB/s | 235W | — | Dynamic Parallelism, GPU Boost, SMX |
| Maxwell | 2014 | GM200 | Tesla M40 | GTX 980 / Titan X | 28nm | 80 亿 | 24 | 3,072 | — | GDDR5 | 12 GB | 336 GB/s | 250W | — | 能效比大幅提升,SMM 架构 |
| Pascal | 2016 | GP100 | Tesla P100 | GTX 1080 | 16nm | 153 亿 | 56 | 3,584 | — | HBM2 | 16 GB | 720 GB/s | 300W | NVLink 1.0 (160 GB/s) | 首次引入 HBM2 + NVLink,统一内存 |
| Volta | 2017 | GV100 | Tesla V100 | Titan V | 12nm | 211 亿 | 80 | 5,120 | 1st Gen (640) | HBM2 | 32 GB | 900 GB/s | 300W | NVLink 2.0 (300 GB/s) | ⭐ 首次引入 Tensor Core,Independent Thread Scheduling |
| Turing | 2018 | TU102 | — | RTX 2080 Ti | 12nm | 186 亿 | 72 | 4,608 | 2nd Gen | GDDR6 | 11 GB | 616 GB/s | 250W | — | ⭐ 首次引入 RT Core,INT32+FP32 并行管线 |
| Ampere | 2020 | GA100 | A100 | RTX 3090 | 7nm (TSMC) / 8nm (Samsung) | 542 亿 | 108 | 6,912 | 3rd Gen | HBM2e | 80 GB | 2.0 TB/s | 400W | NVLink 3.0 (600 GB/s) | TF32 精度,结构化稀疏 2:4,MIG 多实例 |
| Hopper | 2022 | GH100 | H100 | — | 4nm (TSMC) | 800 亿 | 132 | 16,896 | 4th Gen | HBM3 | 80 GB | 3.35 TB/s | 700W | NVLink 4.0 (900 GB/s) | FP8 支持,Transformer Engine,DPX 指令 |
| Ada Lovelace | 2022 | AD102 | — | RTX 4090 | 4nm (TSMC) | 763 亿 | 144 | 18,432 | 4th Gen | GDDR6X | 24 GB | 1.01 TB/s | 450W | — | DLSS 3 Frame Generation,4th Gen RT Core |
| Blackwell | 2024 | GB100 / GB202 | B200 / B300 | RTX 5090 | 4NP (TSMC) | 2,080 亿 (双 Die) | ~160 (每 Die) | ~21,760 (每 Die) | 5th Gen | HBM3e | 192-270 GB | 7.7-8 TB/s | 1,000-1,100W | NVLink 5.0 (1.8 TB/s) | ⭐ 双 Die NV-HBI,FP4/FP6,2nd Gen Transformer Engine,Decompression Engine |
注:消费级 GB202 有 24,576 CUDA Cores,比 AD102 的 18,432 多 28.5%。
几个关键趋势从表中清晰可见:
- 晶体管数量:从 30 亿(Fermi)到 2,080 亿(Blackwell),15 年增长约 70 倍
- 显存带宽:从 177 GB/s 到 8 TB/s,增长约 45 倍——但跟不上算力的增长速度,“存储墙”在加剧
- 功耗:从 250W 到 1,000W+,液冷从”可选”变为标配
- Tensor Core 是分水岭:Volta(2017)之前是通用 GPU 计算时代,之后是 AI 专用加速时代
- 精度不断降低:FP32 → FP16 → BF16 → FP8 → FP4,每降一级算力近乎翻倍
8.2 GPU 的产业历史
GPU 的历史远不止 NVIDIA 一家。让我们回溯完整的产业演化。
早期(1990s - 2000s)
1996 3dfx 发布 Voodoo ── 开创消费级 3D 加速时代
1997 3dfx Voodoo 2 统治市场,《Quake》等游戏推动 3D 需求爆发
1999 NVIDIA GeForce 256 ── 自称"世界第一款 GPU"
集成 T&L 硬件加速,2D + 3D 一体化
2000 NVIDIA 以 ~1.5 亿美元收购 3dfx
同期其他玩家:
├── ATI Technologies(Rage → Radeon 系列)
├── S3 Graphics(Savage 系列)
├── Matrox(专业可视化市场)
└── PowerVR(移动 GPU 架构 IP)
为什么 3dfx 输了? 3dfx 坚持垂直整合(自己设计+自己制造),而 NVIDIA 选择 Fabless 模式(只设计,TSMC 代工)。Fabless 模式让 NVIDIA 可以把所有资源投入设计和软件,同时享受代工厂的规模经济。这是商业模式的胜利。
NVIDIA VS AMD(2006 - 至今)
2006 年,AMD 以 54 亿美元收购 ATI Technologies,从此形成了 NVIDIA vs AMD 的双寡头格局。
| 维度 | NVIDIA | AMD |
|---|---|---|
| 消费级 GPU 架构 | GeForce(Ada Lovelace / Blackwell) | Radeon(RDNA 架构) |
| 数据中心 GPU 架构 | Tesla / A100 / H100 / B200 | Instinct(CDNA 架构) |
| 软件生态 | CUDA(2007 年至今,15+ 年积累) | ROCm + HIP(追赶中) |
| AI 市场份额 | ~80-90%(事实上的垄断) | ~5-10%(快速增长中) |
| 核心优势 | CUDA 生态 + 全栈平台 | 性价比 + 开放标准 |
NVIDIA 通过 CUDA 生态在 AI 计算领域建立了几乎垄断地位——不是因为硬件碾压(AMD MI300X 的 HBM 容量甚至更大),而是因为 15 年的软件生态积累:cuBLAS、cuDNN、TensorRT、NCCL、Triton……几乎所有 AI 框架和库都优先优化 CUDA。
数据中心 GPU / AI 加速器竞争格局
| 厂商 | 产品 | 架构特点 | 显存容量 | 显存带宽 | 软件生态 |
|---|---|---|---|---|---|
| NVIDIA | B200 / B300 | Blackwell, Tensor Core | 192-270 GB HBM3e | 7.7-8 TB/s | CUDA(事实标准) |
| AMD | MI300X | CDNA 3, 多 Chiplet | 192 GB HBM3 | 5.3 TB/s | ROCm(PyTorch 已支持) |
| AMD | MI325X | CDNA 3 改进 | 256 GB HBM3e | 6.0 TB/s | ROCm |
| TPU v5p | 脉动阵列(Systolic Array) | HBM | 高 | JAX / XLA | |
| Intel | Gaudi 3 | 独立加速器架构 | HBM2e | — | OneAPI / PyTorch 插件 |
| 寒武纪 | 思元 590 | 自研 IPU 架构 | — | — | Neuware |
| 沐曦 | 曦云 C500 | 通用 GPU 路线 | — | — | 兼容 ROCm |
| 华为 | 昇腾 910B | Da Vinci 架构 | HBM | — | CANN + MindSpore |
判断国产 GPU 能否替代 NVIDIA,需要看三个层: 算力差距(1-2 代)+ 软件生态(CUDA 壁垒)+ 先进制造能力(EUV 受限)。三层都不能有短板。
§9. GPU之外的显卡
到目前为止,我们一直在讨论 GPU Die 本身。但一张完整的显卡(Graphics Card / Board)上,GPU Die 只是核心——PCB 上还有一系列关键组件协同工作。
以一张 RTX 3090(GA102 Die)为参考,拆解显卡的完整组成:

9.1 显存芯片(Graphics Memory)
显存是 GPU Die 之外最重要的组件,GPU 的所有数据(模型权重、激活值、纹理等)都存在这里。
GDDR
GDDR(Graphics Double Data Rate)是专为图形/计算优化的同步 DRAM。主要供应商包括 Micron、Samsung、SK Hynix。
| 代 | 年份 | 信号编码 | 代表显卡 | 关键升级 |
|---|---|---|---|---|
| GDDR5 | 2008 | NRZ (0/1 二电平) | GTX 480 ~ GTX 1080 | 标准长达近十年 |
| GDDR5X | 2016 | NRZ | GTX 1080 Ti | 位宽加大 |
| GDDR6 | 2018 | NRZ | RTX 2080 | 双通道架构 |
| GDDR6X | 2020 | PAM-4 (四电平) | RTX 3090 | 每时钟传 2 bit → 带宽翻倍 |
| GDDR7 | 2024 | PAM-3 (三电平) | RTX 5090 | 信号完整性优于 PAM-4 |
解释一下PAM-3和PAM-4:在CPU一章里我们讲到0和1在电路上就是高压和低压,但除了二分之外,其实还可以多分。PAM-4 就像在一根电线上用 4 种电压等级(而不是传统的 2 种)来编码数据——每个时钟周期传输 2 bit 而非 1 bit。GDDR7 的 PAM-3 使用 3 种电平,虽然每周期传输略少于 PAM-4,但信号更干净、误码率更低,实际频率可以拉得更高。
RTX 3090 的显存配置:
- 24 GB GDDR6X(Micron 制造)
- 384-bit 总线位宽
- 带宽 ~936 GB/s(OC 可达 ~1.15 TB/s)
[!info] Bus Width 和 Bandwidth:从电路层面理解
Bus Width(总线位宽)= 同时有多少根数据线在并行传输。
在物理层面,GPU 和显存之间的连接就是 PCB 上的一组铜走线(traces)——每根线在一个时钟周期内传输 1 bit。所谓”384-bit bus width”,就是 GPU 和显存芯片之间有 384 根数据线并排走,每个时钟周期可以同时传输 384 bit 的数据。
GPU Die 显存芯片(12颗) ┌──────┐ ┌─ 线 1 ──────────────────────┐ ┌──────┐ │ │ ├─ 线 2 ──────────────────────┤ │ Chip │ │ │ ├─ 线 3 ──────────────────────┤ │ #1 │ │ │ │ ...(每颗芯片 32 根线) │ │(32b) │ │ │ ├─ 线 32 ──────────────────────┤ └──────┘ │ │ │ │ │ │ ├─ 线 33 ──────────────────────┤ ┌──────┐ │ │ │ ... │ │ Chip │ │ │ ├─ 线 64 ──────────────────────┤ │ #2 │ │ │ │ │ │(32b) │ │ │ │ ... │ └──────┘ │ │ │ │ │ │ ├─ 线 353 ─────────────────────┤ ┌──────┐ │ │ │ ... │ │ Chip │ │ │ └─ 线 384 ─────────────────────┘ │ #12 │ └──────┘ │(32b) │ └──────┘ 12 颗芯片 × 32 bit/颗 = 384-bit bus widthRTX 3090 的 PCB 上有 12 颗 Micron GDDR6X 芯片(就是上面照片里 GPU 周围那一圈黑色小方块),每颗提供 32-bit 的数据通道,合计 12 × 32 = 384 bit。这就是为什么显卡 PCB 的布线如此复杂——384 根高速信号线要从 GPU 精确走到 12 颗芯片,长度差异不能超过几毫米(否则信号不同步)。
Bandwidth(带宽)= Bus Width × 时钟频率 × 每周期传输次数。
Bandwidth = Bus Width × Clock Speed × Data Rate per Clock RTX 3090 GDDR6X: = 384 bit × 1.219 GHz × 16(GDDR6X 每周期传 16 次,PAM-4 × 4-pump) = 384 × 1.219 × 16 / 8(换算成 Byte) ≈ 936 GB/s所以提升带宽有三条路:
- 加宽总线(更多根线)—— 但 PCB 面积和布线复杂度限制了上限
- 提高频率(线上信号切换更快)—— 但频率越高,信号完整性越差
- 每周期塞更多数据(PAM-4/PAM-3 编码)—— GDDR6X/GDDR7 走的就是这条路
对比 DDR5 内存:64-bit bus width × ~4.8 GHz × 2(DDR = Double Data Rate)≈ 50-60 GB/s。GPU 的 384-bit 位宽是 CPU 内存 64-bit 的 6 倍,再加上更高的等效频率,最终带宽差距达到 15-20 倍。
而 HBM 更激进:通过 TSV 硅通孔实现 1024-bit 甚至更宽的总线,虽然时钟频率比 GDDR 低得多,但靠极宽的位宽照样实现数 TB/s 级带宽。“条条大路通罗马”——GDDR 走高频窄线路,HBM 走低频宽线路。
对比 CPU 内存:DDR5 只有 64-bit 总线位宽,带宽约 50-64 GB/s——GPU 显存带宽是 CPU 内存的 15-20 倍。这是因为 GPU 需要同时喂饱数千个计算单元。
HBM
HBM(High Bandwidth Memory)采用完全不同的物理架构来实现极致带宽:

传统的GDDR,如显卡平面图中所示,GPU和记忆之间通过电线连接,而HBM 通过硅通线和GPU连接。 **TSV(Through-Silicon Via,硅通孔)**垂直堆叠 8-12 层 DRAM Die。每层都有数千个微小的硅通孔穿过 Die,形成极宽的数据总线——数千 bit 位宽(对比 GDDR6X 的 384-bit 和 DDR5 的 64-bit)。
HBM 不是靠更高的时钟频率,而是靠极宽的并行数据通路实现高带宽。
HBM3e(最新一代):
- 每 Stack 容量:36 GB
- 每 Stack 带宽:~1.2 TB/s
- 三大供应商:SK Hynix(市场份额最大,NVIDIA 首选供应商)、Samsung、Micron
B200 配备 8 个 HBM3e Stack = 192-270 GB 总容量,7.7-8 TB/s 总带宽。
数据流动全景:从 SSD 到 CUDA Core
以游戏加载一个场景为例:
SSD/硬盘(存储)
│ ① 读取游戏资源文件(纹理、模型)
↓
系统内存 / CPU DRAM
│ ② CPU 解压、预处理
│ ③ 通过 PCIe 总线传输(~64 GB/s)
↓
显存 / HBM(GPU 外部)
│ ④ GPU 从显存读取数据
│ ⑤ 进入 L2 Cache(~65 MB)
↓
L1 Cache / Shared Memory(SM 内部)
│ ⑥ CUDA Core / Tensor Core 从这里读取计算
↓
Register File(最快,零延迟)
瓶颈在哪? 通常在步骤 ③——PCIe 的 ~64 GB/s 远远低于 HBM 的数 TB/s 带宽。这就是为什么 NVIDIA 要搞 NVLink-C2C 来绕过 PCIe 瓶颈(详见 §10)。
9.2 供电模块(VRM - Voltage Regulator Module)
GPU 核心工作在约 0.8-1.1V 的低电压下,但主板(通过 PCIe 供电和外接 12V 电源线)提供的是 12V 直流。VRM 负责这个电压转换。
VRM 由 MOSFET + 电感 + 电容 组成多相供电电路。RTX 3090 有 20 相供电——相数越多,供电越稳、纹波越小、效率越高。
为什么 VRM 重要?因为 GPU 的瞬态电流变化极大——从空闲到满载,电流可能在微秒内从几安培飙升到数百安培。VRM 必须在这种剧烈波动下维持电压稳定。如果供电不稳,GPU 要么降频(性能损失),要么蓝屏。
9.3 PCIe 接口
PCIe(Peripheral Component Interconnect Express)是连接 CPU 和 GPU 的标准总线。
| PCIe 版本 | 每通道带宽(单向) | x16 总带宽(双向) |
|---|---|---|
| Gen 3 (2010) | ~1 GB/s | ~32 GB/s |
| Gen 4 (2017) | ~2 GB/s | ~64 GB/s |
| Gen 5 (2019) | ~4 GB/s | ~128 GB/s |
| Gen 6 (2025) | ~8 GB/s | ~256 GB/s |
当前主流消费级显卡使用 PCIe Gen 4 x16。Blackwell GB300 NVL72 首次引入 PCIe Gen 6 支持。
痛点:即使 PCIe Gen 5 x16 的 128 GB/s 双向带宽,对比 HBM3e 的 8 TB/s 也只有 1/60。CPU → GPU 的数据传输通道(PCIe)远远慢于 GPU 内部的数据供应能力——这就是 §10 中 Grace-Blackwell 用 NVLink-C2C 替代 PCIe 的根本原因。
9.4 视频输出接口(I/O)
消费级显卡提供视频输出接口:DisplayPort(主流)和 HDMI。RTX 5090 支持 DP 2.1 和 HDMI 2.1a。
数据中心 GPU(如 B200 SXM)通常没有视频输出接口——它们通过网络将计算结果传回,无需直接连接显示器。
9.5 散热方案
GPU 是一台计算机中发热量最大的组件:
| 类型 | 散热方案 | 典型功耗 | 代表产品 |
|---|---|---|---|
| 消费级 | 风冷(散热片 + 2-3 个风扇) | 250-575W | RTX 5090 |
| 数据中心(上一代) | 被动风冷(服务器风道) | 400-700W | A100 / H100 SXM |
| 数据中心(当代) | 液冷(冷板 + 循环水冷) | 1,000-1,100W | B200 / B300(标配液冷) |
从 Blackwell 开始,数据中心 GPU 的功耗突破 1,000W,液冷已从”可选”变为标配。这对数据中心的基础设施(冷却管路、泵站)提出了全新要求。
§10. CPU-GPU 联动:Grace-Blackwell 架构
10.1 为什么需要 CPU-GPU 联动?
一个常见误解是”GPU 独立完成所有计算”。事实上,GPU 不能独立工作——它需要 CPU 作为”指挥官”:
CPU 的角色: GPU 的角色:
├── 启动和管理操作系统 ├── 执行大规模并行计算
├── 分配 GPU 任务 ├── 矩阵乘法、卷积等
├── 管理内存编排 ├── 训练 / 推理的核心运算
├── 处理网络 I/O └── 结果写回显存
├── 文件系统操作
└── 预处理 / 后处理数据
传统方式中,CPU 和 GPU 通过 PCIe 连接。我们已经看到了问题:
PCIe Gen 5 x16: ~128 GB/s(双向)
HBM3e 带宽: ~8,000 GB/s
→ PCIe 带宽只有 HBM 的 1/60
→ CPU-GPU 之间的数据搬运成为严重瓶颈
在大模型时代,模型参数可能有数百 GB,需要频繁在 CPU 和 GPU 之间传输——PCIe 的瓶颈越来越不可接受。
10.2 NVIDIA Grace CPU:从 GPU 公司到全栈平台
NVIDIA Grace 是 NVIDIA 自研的服务器 CPU:
| 规格 | Grace CPU |
|---|---|
| 架构 | ARM Neoverse V2(注意:不是 x86!) |
| 核心数 | 72 |
| 内存 | LPDDR5X |
| 内存带宽 | 546 GB/s |
| 互联 | NVLink-C2C(连接 GPU) |
战略意义:NVIDIA 自研 CPU 的决定,标志着它从”GPU 公司”转型为”完整计算平台公司”。选择 ARM(而非 x86)有几个原因:(1) ARM 授权模式允许高度定制;(2) ARM 在能效比上有优势;(3) 避免依赖 Intel 的 x86 授权。
10.3 Grace-Blackwell Superchip
**Grace-Blackwell Superchip(GB200 / GB300)**是 NVIDIA 的杀手级产品——将 CPU 和 GPU 深度集成:
关键数据:
- 1 颗 Grace CPU + 2 颗 Blackwell GPU
- CPU 和 GPU 之间通过 **NVLink-C2C(Chip-to-Chip)**连接
- NVLink-C2C 带宽:900 GB/s(双向)—— 对比 PCIe Gen 5 x16 的 128 GB/s,快了 7 倍
- 这意味着 CPU-GPU 之间的数据传输不再是瓶颈
两个版本:
| 型号 | 配置 | 定位 |
|---|---|---|
| GB200 | Grace + 2× Blackwell GPU | NVL72 机架的基础单元 |
| GB300 | Grace + 2× Blackwell Ultra GPU | NVL72 机架的升级版 |
10.4 NVL72 Rack-Scale 系统:整个机架就是一颗 GPU
NVL72 是 NVIDIA 最激进的系统架构——把 72 颗 GPU + 36 颗 Grace CPU 装进一个标准机架,通过 NVLink Switch 全互联:
┌─────────────────────────────────────────────────────────────┐
│ NVL72 Rack │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ GB200/ │ │ GB200/ │ │ GB200/ │ ··· │ GB200/ │ │
│ │ GB300 │ │ GB300 │ │ GB300 │ │ GB300 │ │
│ │ #1 │ │ #2 │ │ #3 │ │ #36 │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │
│ │ │ │ │ │
│ ═════╧═══════════╧═══════════╧═════════════════╧══════ │
│ NVLink Switch Fabric │
│ (每 GPU 1.8 TB/s, 全互联, 非阻塞) │
│ │
│ 总计:72 GPU + 36 Grace CPU │
│ 整个机架对外表现为一个巨型 GPU │
└─────────────────────────────────────────────────────────────┘
GB300 NVL72 的关键规格:
| 指标 | GB200 NVL72 | GB300 NVL72 |
|---|---|---|
| FP4 算力(Dense/Sparse) | 720 / 1,440 petaFLOPS | 1,080 / 1,440 petaFLOPS |
| HBM3e 总容量 | 13.5 TB | 20 TB |
| HBM 总带宽 | — | 576 TB/s |
| GPU 间互联 | NVLink 5.0 | NVLink 5.0 |
| CPU-GPU 互联 | NVLink-C2C | NVLink-C2C |
| 外部互联 | PCIe Gen 5 | PCIe Gen 6(首次引入) |
| 功耗(整机架) | ~120 kW | ~120 kW |
| 散热 | 液冷 | 液冷 |
直觉:一个 GB300 NVL72 机架的 FP4 算力达到 1.44 ExaFLOPS(稀疏)——这已经超过了几年前整个国家级超算中心的峰值算力。而且这 72 颗 GPU 通过 NVLink 全互联,可以像一颗巨型 GPU 一样协同工作。
这才是 NVIDIA 真正的护城河——不只在单颗 GPU,而在于从芯片到机架到集群的全栈系统能力——Grace CPU + Blackwell GPU + NVLink + NVSwitch + 液冷,全部自研、深度集成。
本章到此结束。我们自顶向下拆解了 GPU 的完整图景:从 SM、CUDA Core、Tensor Core 的硬件结构,到 CUDA/SIMT 的软件映射,到 Fermi 至 Blackwell 的十五年架构演进,再到显卡上 GPU Die 之外的存储、供电、散热,最后到 Grace-Blackwell 这样的 CPU-GPU 联动系统。半导体产业链(芯片如何被制造出来)在 CPU 一章的第二部分已经展开过。
但单颗 GPU(甚至单个 NVL72 机架)的能力仍然是有限的。训练一个万亿参数的大模型,需要数千张 GPU 卡跨机架协同工作。数据如何在 GPU 之间高效传输?模型如何切分到多颗 GPU 上?推理时如何优化延迟和吞吐?下一章 AI Infra 将聚焦这些问题:
- 系统互联:NVLink 与 InfiniBand 的分工,RDMA,GPUDirect
- 软件栈:CUDA 到底是什么?为什么说它是 NVIDIA 70% 的护城河?
- 分布式训练:数据并行 vs 模型并行 vs 流水线并行
- 推理优化:vLLM、量化、KV Cache、PagedAttention
参考资料:
- NVIDIA Technical Blog. Inside NVIDIA Blackwell Ultra: The Chip Powering the AI Factory Era.
- NVIDIA. NVIDIA RTX Blackwell GPU Architecture(PDF).
- Micron Technology. High-Bandwidth Memory (HBM).
- NVIDIA. Multi-Node NVLink Systems Tuning Guide.
- 知乎专栏. GPU 架构与显卡技术解析.
- Luo, Y. et al. Dissecting the NVIDIA Blackwell Architecture with Microbenchmarks. arXiv, 2025.
