跳到主要内容

PCIe

PCIe 在 AI 系统里扮演的通用总线角色及其带宽演进

核心要点

  • AI 服务器中连接 CPU / GPU / NIC 的通用高速总线
  • PCIe 5.0 x16 单向 63 GB/s / 双向 126 GB/s
  • 是 GPUDirect RDMA / GPUDirect Storage 的物理基础
  • 无 NVLink 时承担 GPU-GPU 兜底通信,带宽仅为 NVLink 的 1/7-1/14
  • CXL 1.x / 2.0 复用 PCIe 5.0 物理层;CXL 3.0 复用 PCIe 6.0

代际带宽怎么演进的?

每代带宽翻倍,4 代覆盖了 2010-2022,规格见 @tbl-hw-pcie-gen

版本发布年单 Lane 带宽 (双向)x16 双向总带宽主要应用场景
PCIe 3.02010~2 GB/s~31.5 GB/sV100 PCIe,旧 GPU
PCIe 4.02017~4 GB/s~63 GB/sA100 PCIe,H20,ConnectX-6
PCIe 5.02019~8 GB/s~126 GB/sH100 PCIe,B200 PCIe,ConnectX-7
PCIe 6.02022~16 GB/s~256 GB/s下一代 (规范已定,待商用)

@tbl-hw-pcie-gen PCIe 代际带宽

带宽数字为理论峰值双向,实际可用带宽因协议开销约低 2-5%。x16 指 16 条 Lane 并行。

PCIe 在 AI 系统中承担哪几类角色?

CPU↔GPU 数据搬运、GPU↔NIC RDMA 直传、GPU↔GPU 兜底三大类。

CPU ↔ GPU 数据传输

主机内存 (DRAM) 到 GPU 显存 (HBM) 的搬运必须经 PCIe。典型操作:模型权重首次加载、输入 batch 传输、KV Cache 换出。

关键约束:PCIe 带宽 (63-126 GB/s) 远低于 HBM 带宽 (3-6 TB/s),推理场景下"首 Token 前的权重加载"和"KV Cache 卸载到 CPU 内存"是主要延迟来源。

GPU ↔ NIC (GPUDirect RDMA)

GPUDirect RDMA 让 NIC 直接读写 GPU 显存,数据不经 CPU 和系统内存。但 DMA 传输仍走 PCIe 总线,PCIe 带宽是 GPUDirect RDMA 实际吞吐的上界。

H100 配 ConnectX-7 (PCIe 5.0) 时,GPUDirect RDMA 单端口吞吐可接近 400 Gbps (~50 GB/s),此时 PCIe 5.0 的 126 GB/s 留有充足余量。

无 NVLink/NVSwitch 配置 (如 H100 PCIe 版 8 卡通过 PCIe Switch 连接) 时:

GPU A → PCIe Switch → GPU B

AllReduce 带宽受限于 PCIe Switch 上行/下行带宽之和,实测 8 卡 PCIe 配置下 AllReduce BusBW 约为 NVLink 方案的 1/8-1/10。

NVLink 5.0 比 PCIe 5.0 快 14×。对比见 @tbl-hw-pcie-vs-nvlink

互联方式双向带宽 (每 GPU)典型单跳延迟适用场景
PCIe 5.0 x16126 GB/s~1-3 usCPU-GPU,GPU-NIC,无 NVLink 时的 GPU-GPU
PCIe 4.0 x1663 GB/s~1-3 usA100 PCIe,老一代 GPU-NIC
NVLink 3.0 (A100)600 GB/s~1-2 usDGX A100 节点内
NVLink 4.0 (H100)900 GB/s~1-2 usDGX H100 节点内
NVLink 5.0 (B200)1800 GB/s<1 usNVL72 节点内

@tbl-hw-pcie-vs-nvlink NVLink vs PCIe 带宽对比

关键推论:NVLink 4.0 是 PCIe 5.0 的 7×,NVLink 5.0 是 14×。这一差距直接决定 TP (张量并行) 性能上界 — TP 组必须落在 NVLink 域内才能发挥应有效率。

GPUDirect 是怎么省 CPU 中转的?

通过 PCIe 对等传输 (Peer-to-Peer DMA) 让 NIC 或 SSD 直接访问 GPU 显存,省去两次 CPU 内存拷贝。

GPUDirect RDMA:

  • 传统路径:GPU 显存 → CPU 内存 (PCIe) → NIC DMA (PCIe) → 网络
  • GPUDirect 路径:GPU 显存 → NIC DMA (PCIe,直接对等) → 网络

实现条件:NIC 和 GPU 需在同一 PCIe Root Complex (或通过支持 ACS 的 PCIe Switch 互联)。延迟优势在小消息时尤为明显 (省去 CPU 软中断和内存拷贝的固定开销)。

GPUDirect Storage:类似机制,NVMe SSD 控制器直接向 GPU 显存 DMA,用于大模型权重从本地存储直接加载。

CXL 跟 PCIe 是什么关系?

CXL 基于 PCIe 物理层,但叠加了一致性协议。CXL 1.x/2.0 复用 PCIe 5.0,CXL 3.0 复用 PCIe 6.0。版本能力见 @tbl-hw-pcie-cxl

三个子协议:

  • CXL.io:功能等同 PCIe,用于设备发现和配置
  • CXL.cache:加速器对主机内存的缓存一致性访问
  • CXL.mem:主机对加速器本地内存 (HBM) 的直接内存语义访问
CXL 版本物理基础关键能力AI 相关性
CXL 1.xPCIe 5.0CPU-加速器一致性互联简化数据共享,减少显式拷贝
CXL 2.0PCIe 5.0内存池化、Switch 拓扑GPU 显存扩展 (HBM 不足时接 CXL 内存池)
CXL 3.0PCIe 6.0多层 Switch、P2P多 GPU 共享内存池 (研究阶段)

@tbl-hw-pcie-cxl CXL 版本能力

CXL 在 AI 互联中仍处早期落地阶段,主要价值在解决单 GPU 显存容量瓶颈,而非替代 NVLink 做高带宽 GPU-GPU 通信。详见 1.12 CXL

PCIe 在大模型训练中的核心局限是什么?

AllReduce 带宽瓶颈 + TP 规模受限

AllReduce 瓶颈 (8 卡无 NVSwitch 服务器)

典型拓扑:8 卡 GPU 通过 2 个 PCIe Switch 分两组,两 Switch 再通过 PCIe Retimer 或 PLX 上联。跨组 GPU AllReduce 带宽受限于 Switch 上行口,实测 BusBW 约 30-50 GB/s (vs NVLink 的 400-900 GB/s)。

TP 规模限制

PCIe 配置下 TP 通常只能在 4 卡内有效 (TP=8 时 AllReduce 耗时过长)。更大规模 TP 依赖 NVLink 域。

解决思路

  • 节点内:NVLink + NVSwitch 替代 PCIe 做 GPU-GPU 通信,PCIe 仅保留 CPU-GPU 通路
  • 节点间:IB 或 RoCE 承担跨节点 AllReduce,避开 PCIe 上行瓶颈
  • 模型分配:TP 组约束在 NVLink 域内,DP/PP 跨 PCIe/IB

Takeaway

知识点核心结论
代际带宽PCIe 5.0 x16 双向 126 GB/s,PCIe 6.0 翻倍到 256 GB/s
AI 系统角色CPU↔GPU 搬运 / GPU↔NIC GPUDirect RDMA / GPU↔GPU 兜底
vs NVLinkNVLink 5.0 比 PCIe 5.0 快 14×,TP 必须落在 NVLink 域
GPUDirectP2P DMA 直通显存,省 CPU 中转,延迟优势在小消息明显
CXL 关系CXL 复用 PCIe 物理层,叠加一致性协议;解决显存容量而非带宽
训练瓶颈8 卡 PCIe AllReduce BusBW 约为 NVLink 的 1/8-1/10