PCIe在GPU服务器中的作用
PCIe(Peripheral Component Interconnect Express)在GPU服务器中是连接GPU与服务器其他核心部件(特别是CPU和系统内存)的“高速公路”,其存在于主板之上,它的带宽、延迟和拓扑结构直接决定了GPU能否高效地工作。
PCIe在GPU服务器中的几个关键作用,按重要性排序:
1)数据通道:在GPU显存和系统内存之间传输数据。这是PCIe最核心、最基础的作用。
数据输入:在进行计算或训练之前,海量的训练数据、模型参数需要从服务器的系统内存(或通过NVMe SSD)通过PCIe总线传输到GPU的高速显存(HBM)中。
数据输出:计算完成后,结果数据需要从GPU显存通过PCIe总线传回系统内存,以供后续处理或存储。
瓶颈所在:如果PCIe的带宽不足(例如,使用PCIe 3.0 x16而不是PCIe 4.0/5.0 x16),数据传输就会花费更多时间,导致强大的GPU计算单元等待数据,利用率下降,从而影响整体的性能和效率。
2)控制通道:CPU对GPU的指令下达。CPU作为系统的“大脑”,需要向作为“加速器”的GPU下达命令。
发送指令:CPU通过PCIe向GPU发送计算任务、配置参数、同步信号等。
高延迟的代价:虽然指令本身数据量不大,但对延迟敏感。PCIe的延迟远高于GPU内部或NVLink(另一种GPU之间的超高速公路)的延迟。在高性能计算中,频繁的小规模任务提交会放大PCIe延迟的影响。
3)决定GPU的扩展能力和拓扑结构。PCIe的通道数(Lanes)和版本决定了服务器能搭载的GPU数量以及它们与CPU的连接方式。
GPU数量:一颗服务器CPU通常提供有限数量的PCIe通道(如64条)。一条PCIe x16插槽需要占用16条通道。因此,理论上单CPU最多支持4个全速x16的GPU。双路CPU系统则可以支持更多(如8个)。
连接拓扑:GPU如何连接到CPU至关重要。
-
理想情况:每个 GPU都通过x16链路直接连接到CPU,享受最大带宽和最低延迟。 -
实际情况:在多 GPU配置下,由于PCIe通道数有限,GPU可能通过PCIe交换机共享上行链路到CPU,或者连接到不同的CPU上。这种非对称的连接会导致GPU间通信和GPU访问远端NUMA节点内存的性能差异。
4)为GPU间通信提供基础(NVLink出现前的主流方案)。在NVLink技术普及之前,多GPU之间的通信完全依赖于PCIe。
PCIe Peer-to-Peer (P2P):允许一块GPU直接访问另一块GPU的显存,而无需先将数据拷贝到CPU内存中转,显著降低了延迟和带宽消耗。
当前地位:即使在拥有更高速NVLink的服务器中,PCIe P2P仍然是基础功能。对于没有直接NVLink互连的GPU(例如,连接到不同CPU的GPU),它们之间的通信仍然要走PCIe总线。
总结,PCIe在GPU服务器中的作用是基础性的和可能成为瓶颈的:
-
其是数据输入的“生命线” -
其是 CPU控制GPU的“指令通道” -
其决定了服务器的 GPU扩展能力和布局 -
其是 GPU间通信的基础方案(在无NVLink或跨节点时)。
因此,在选择或配置GPU服务器时,PCIe的版本(3.0/4.0/5.0)、每个GPU分配的通道数(x8/x16)、以及PCIe的拓扑结构(如何连接到CPU) 都是需要重点关注的核心指标,它们直接影响了整个系统的投资效率和最终性能。
GPU高速公路PCIe vs. NVLink
在现代GPU服务器(尤其是NVIDIA DGX等AI服务器)中,经常会听到另一个高速互联技术:NVLink。PCIe与NVLink在设计目标、带宽、拓扑、角色方面,对比如下:
|
|
|
|
|---|---|---|
|
|
CPU和所有主板外设(GPU、网卡、SSD等) |
GPU到GPU通信设计 |
|
|
PCIe 5.0 x16 ≈ 128 GB/s |
NVLink 4.0 可达900 GB/s(双向) |
|
|
Root Complex的树形结构 |
|
|
|
GPU和系统其他部分 |
GPU与GPU |
协作关系:在现代服务器中,PCIe和NVLink是共存的。
-
NVLink负责在多个GPU之间建立超高速数据通道,极大加速模型训练(All-Reduce等集合通信操作)和推理。 -
PCIe仍然负责GPU与CPU/内存/网络/存储之间的数据交换和控制流。
如果NVLink是连接各个计算单元(GPU)的城际高速铁路,那么PCIe就是连接计算单元与中心城市(CPU)、货运站(内存)和港口(网络/存储)的必不可少的高速公路网。
PCIe的物理规格与版本
PCIe物理规格
PCIe作为一种高速串行计算机扩展总线标准,由英特尔在2001年提出。物理规格主要指PCIe插槽和连接器的物理尺寸和引脚定义,它决定了插在插槽中的卡的长度、高度以及所能提供的最大通道数。物理规格中,最重要的是 “通道数” 和 “尺寸”。
1)按通道数 (Lane Width) 划分:
PCIe链路由若干“通道”组成,每个通道包含两对差分信号线(一发一收)。通道数越多,带宽越高。常见的插槽规格有:
-
x1: 最小规格,通常用于低速设备,如网卡、声卡、USB扩展卡等。 -
x4: 用于中等带宽设备,如某些SSD、企业级网卡。 -
x8: 用于高性能设备,如企业级SSD、高速网卡或中端GPU。 -
x16: 最常用于GPU的规格。提供最多的通道数,以实现最大带宽。这也是主板上最长的PCIe插槽。主板上为什么找不到
PCIe x4插槽?其实它以M.2接口的形式出现。与PCIe x8插槽一样,PCIe x4为了兼容性,多数情况下也被做成PCIe x16插槽形式,或扩展为M.2接口,用于安装M.2 SSD、M.2无线网卡或其他M.2接口设备,其余扩展卡则留给PCIe x1插槽负责。
关键点:
-
物理兼容性: 一个物理尺寸更大的卡可以插入尺寸更小的插槽中(例如, x16的GPU可以插入x8的插槽,但通常会被固定件挡住,需要开放式插槽),反之则不行(x1的卡可插入x16插槽)。 -
电气性能: 设备实际运行的速率取决于插槽提供的电气通道数。一个 x16的GPU如果插入仅提供x8电气连接的插槽,它将以x8的速度运行,带宽减半。
2)按尺寸 (Size) 划分:
这主要针对Add-in Card(附加卡)的标准。
-
全高/全长 ( Full-Height, Full-Length,Standard GPU): 传统标准,尺寸较大,常见于台式机和服务器GPU。 -
半高 ( Half-Height,Compact GPU): 高度减半,用于刀片服务器或小型化工作站。 -
矮版 ( Low-Profile): 更短的版本,用于超小型PC。
PCIe延长线
PCIe延长线(PCIe Riser Cable)是一种用于延长PCIe设备(如GPU、固态硬盘等)与主板插槽之间连接距离的线缆。它通常由高质量的电缆和两端的连接器组成,一端连接主板的PCIe插槽,另一端连接PCIe设备。
PCIe延长线通过电缆传输PCIe规范的串行数据信号。数据以数据包形式传输,这种设计本身抗干扰能力较强,但延长线的质量(如材质、屏蔽、工艺)会直接影响信号完整性,从而影响传输效率和稳定性。
PCIe延长线在以下场景中特别有用:改善散热与风道、特殊机箱布局、硬件展示与美观、多显卡扩展与特殊应用
使用PCIe延长线时,需要注意兼容性匹配,确保延长线支持的PCIe版本与主板插槽和PCIe设备兼容,同时延长线不宜过长,避免更大的信号衰减和潜在的性能风险。
PCIe版本
PCIe版本定义了每一代的技术标准,包括速率、编码方案和电气特性。版本是带宽提升的主要方式。
|
|
|
|
|
|
x16
|
|---|---|---|---|---|---|
PCIe 1.0 |
2003 |
2.5 GT/s |
8b/10b |
500 MB/s |
8 GB/s |
PCIe 2.0 |
2007 |
5.0 GT/s |
8b/10b |
1 GB/s |
16 GB/s |
PCIe 3.0 |
2010 |
8.0 GT/s |
128b/130b |
~1.97 GB/s |
~31.5 GB/s |
PCIe 4.0 |
2017 |
16.0 GT/s |
128b/130b |
~3.94 GB/s |
~63 GB/s |
PCIe 5.0 |
2019 |
32.0 GT/s |
128b/130b |
~7.88 GB/s |
~126 GB/s |
PCIe 6.0 |
2022 |
64.0 GT/s |
PAM4 & FEC |
~15.75 GB/s |
~252 GB/s |
PCIe 7.0速率提升至128 GT/s(128 Gbps/每通道),比PCIe 6.0再翻倍,或将支持光互连,而不仅限于铜线。主要面向超大规模数据中心(如800G以太网)、高性能计算、军工航天与汽车应用,预计2028年推出产品(标准发布后12–18个月)。由于成本高,可能不会很快进入PC级市场。
PCIe 8.0的研发已启动,预计再次翻倍PCIe 7.0速率,可能仍基于PAM4 + Flit,但铜线或无法支撑,需采用光互连,或引入PAM8(每信号3比特),这要求更强的信噪比检测与纠错能力。
展望未来,PCIe在v8.0之后有望冲击单通道1 Tbps(约125 GB/s),可能依赖PAM16(每信号4比特)以及光学互连技术。
版本关键点解读:
1)向后兼容: PCIe版本是向后兼容的。一张PCIe 4.0的GPU可以插入PCIe 3.0的主板,但会以PCIe 3.0的速度运行。反之亦然。
2)编码方案:
-
8b/10b (PCIe 1.0/2.0): 每10位传输信号中只有8位是有效数据,开销为20%。 -
128b/130b (PCIe 3.0/4.0/5.0): 每130位传输信号中有128位是有效数据,开销仅为~1.5%,显著提升了有效带宽。 -
PAM4 & FEC (PCIe 6.0): 采用更先进的脉冲幅度调制和前向纠错,在高速下保证信号完整性。
3)GT/s vs GB/s:
-
GT/s (Giga Transfers per second): 表示原始数据传输速率。 -
GB/s (GigaBytes per second): 表示有效数据带宽,需要经过编码开销和双向计算。 -
换算公式: 带宽 ( GB/s) = (速率 (GT/s) 编码效率 通道数 *2 [双向]) /8(字节位转换)
物理规格与版本的结合——带宽计算
物理规格是“路宽”(x1、x4、x8、x16是车道数),而版本是“路速”(3.0、4.0、5.0是限速标准)。最终的“运输能力”(带宽)由“路宽”和“路速”共同决定。为GPU选择正确的“路宽”和“路速”至关重要。
总带宽 = 版本速率 编码效率 通道数 * 2 (双向)
举例 :
一张PCIe 4.0 x16的GPU,其理论最大带宽为:
-
速率: 16.0 GT/s -
编码效率: 128/130 ≈ 0.9846 -
通道数: 16 -
双向: 2
计算:
(16.0 GT/s * 0.9846 * 16 * 2) / 8 ≈ 63 GB/s
对GPU服务器的实际意义
1)避免瓶颈: 必须为高性能GPU配备足够高版本和足够多通道的PCIe插槽。将一块PCIe 5.0的GPU插入PCIe 3.0 x16的插槽,其可用带宽将从~126 GB/s暴跌至~31.5 GB/s,成为严重的性能瓶颈。
2)选择主板/平台: 选择服务器主板时,必须关注:
-
CPU支持的PCIe版本和通道总数(如Intel至强可扩展处理器通常提供64条PCIe通道)。 -
主板 PCIe插槽的电气通道分配(是x16还是x8?是直接连接CPU还是通过芯片组?)。
3)面向人工智能市场需求: PCIe 5.0和6.0主要面向GPU、高速网卡(400GbE+)、以及CXL(Compute Express Link)内存扩展技术,是构建下一代高性能计算和AI服务器的基石。