PCIe 总线在 AI 系统中的角色
PCIe(Peripheral Component Interconnect Express)是 AI 服务器中连接处理器、加速器和网卡的通用高速总线。它既是 GPU 与主机 CPU 通信的唯一标准路径,也是 NVLink、CXL 等专用互联的底层物理层基础。在无高速专用互联的配置中,PCIe 同时承担 GPU 间通信的兜底角色,但带宽远低于 NVLink,是大规模训练场景下最常见的性能瓶颈之一。
代际带宽演进
| 版本 | 发布年 | 单 Lane 带宽(双向) | x16 双向总带宽 | 主要应用场景 |
|---|---|---|---|---|
| PCIe 3.0 | 2010 | ~2 GB/s | ~31.5 GB/s | V100 PCIe,旧世代 GPU |
| PCIe 4.0 | 2017 | ~4 GB/s | ~63 GB/s | A100 PCIe,H20,ConnectX-6 NIC |
| PCIe 5.0 | 2019 | ~8 GB/s | ~126 GB/s | H100 PCIe,B200 PCIe,ConnectX-7 NIC |
| PCIe 6.0 | 2022 | ~16 GB/s | ~256 GB/s | 下一代(规范已定,待商用) |
注:带宽数字为理论峰值双向,实际可用带宽因协议开销约低 2-5%。x16 指 16 条 Lane 并行。
在 AI 系统中的位置
PCIe 在 AI 服务器中承担以下几类角色:
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(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 留有充足余量。
GPU ↔ GPU(无专用互联时的兜底路径)
无 NVLink/NVSwitch 配置(如 H100 PCIe 版 8 卡服务器通过 PCIe Switch 连接)时,GPU 间通信经由 PCIe Switch 路由:
GPU A -> PCIe Switch -> GPU B
此时 AllReduce 可用带宽受限于 PCIe Switch 上行/下行带宽之和,远低于 NVLink 方案。实测 8 卡 PCIe 配置下的 AllReduce BusBW 约为 NVLink 方案的 1/8 到 1/10。
NVLink vs PCIe 带宽对比
| 互联方式 | 双向带宽(每 GPU) | 典型单跳延迟 | 适用场景 |
|---|---|---|---|
| PCIe 5.0 x16 | 126 GB/s | ~1-3 us | CPU-GPU,GPU-NIC,无 NVLink 时的 GPU 间 |
| PCIe 4.0 x16 | 63 GB/s | ~1-3 us | A100 PCIe,老一代 GPU-NIC |
| NVLink 3.0(A100) | 600 GB/s | ~1-2 us | 节点内 GPU-GPU(DGX A100) |
| NVLink 4.0(H100) | 900 GB/s | ~1-2 us | 节点内 GPU-GPU(DGX H100) |
| NVLink 5.0(B200) | 1800 GB/s | <1 us | 节点内 GPU-GPU(NVL72) |
带宽倍数关系:NVLink 4.0 带宽约为 PCIe 5.0 的 7 倍;NVLink 5.0 约为 PCIe 5.0 的 14 倍。这一差距直接决定了 TP(张量并行)的性能上界——TP 组必须落在 NVLink 域内才能发挥应有效率。
GPUDirect 技术
GPUDirect RDMA
GPUDirect RDMA 使 NIC 通过 PCIe 对等传输(Peer-to-Peer DMA)直接访问 GPU 显存,消除了传统路径中的两次 CPU 内存拷贝:
- 传统路径: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,用于大模型权重从本地存储直接加载,绕过 CPU。
CXL(Compute Express Link)
CXL 是基于 PCIe 5.0 物理层构建的新型高一致性互联协议,分三个子协议:
- CXL.io:功能等同于 PCIe,用于设备发现和配置
- CXL.cache:加速器对主机内存的缓存一致性访问
- CXL.mem:主机对加速器本地内存(如 HBM)的直接内存语义访问
| CXL 版本 | 物理基础 | 关键能力 | AI 相关性 |
|---|---|---|---|
| CXL 1.x | PCIe 5.0 | CPU-加速器一致性互联 | 简化数据共享,减少显式拷贝 |
| CXL 2.0 | PCIe 5.0 | 内存池化、Switch 拓扑 | GPU 显存容量扩展(HBM 不足时接 CXL 内存池) |
| CXL 3.0 | PCIe 6.0 | 多层 Switch、P2P | 多 GPU 共享内存池(研究阶段) |
CXL 在 AI 互联中目前仍处于早期落地阶段,主要价值在于解决单 GPU 显存容量瓶颈,而非替代 NVLink 做高带宽 GPU-GPU 通信。
在大模型训练中的局限
PCIe 在训练系统中的核心局限体现在以下场景:
AllReduce 瓶颈(8 卡无 NVSwitch 服务器)
典型拓扑:8 卡 GPU 通过 2 个 PCIe Switch 分为两组,两个 Switch 再通过 PCIe Retimer 或 PLX 芯片上联。跨组 GPU 间 AllReduce 的可用带宽受限于 Switch 上行口,远低于 NVLink。实测 AllReduce BusBW 约 30-50 GB/s(vs NVLink 的 400-900 GB/s)。
TP 规模限制
由于带宽不足,PCIe 配置下 TP 通常只能在 4 卡以内有效(TP=8 时 AllReduce 耗时过长)。更大规模的张量并行依赖 NVLink 域。
解决思路
- 节点内:用 NVLink + NVSwitch 替代 PCIe 做 GPU-GPU 通信(PCIe 仅保留 CPU-GPU 通路)
- 节点间:用 InfiniBand 或 RoCE 承担跨节点 AllReduce,避开 PCIe 上行带宽瓶颈
- 模型分配:将 TP 组约束在 NVLink 域内,DP/PP 跨 PCIe/IB 运行