H20服务器硬件配置排查:NVLink与PCIe带宽对比及拓扑链路瓶颈定位

H20 硬件配置排查:NVLink 与 PCIe 互联方式对比。

H20采购清单(北京卓优云智科技有限公司,20250418)

查看GPU情况

确认服务器GPU、CUDA驱动:nvidia-smi

结论先行:NVIDIA H200 141GB 显卡的 NVLink 速度高达 900GB/s,而标准的 PCIe Gen5 带宽为 128GB/s。NVLink 的传输速率大约是 PCIe 的 7 倍

查看NVLink连接状况

查看NVLink连接状况:nvidia-smi nvlink --status

查看主板上的PCI插槽:PCIe 5.0 x16 插槽:17 个、PCIe 5.0 x4 插槽:8 个、PCIe 5.0 x8 插槽:1 个

查看主板上的PCI插槽:dmidecode | grep --color "PCI"

PCIe(PCI Express)的传输速率:PCIe 是双向传输通道。这意味着 x16 接口在 PCIe 3.0 下不仅拥有 16 GB/s 的下行速度,同时还能拥有 16 GB/s 的上行速度,总吞吐量可达 32 GB/s。

GT/s(GigaTransfers per second)表示每秒千兆传输,它指物理层上的原始传输速率;而 GB/s(Gigabytes per second)指实际扣除数据编码损耗(如 8b/10b 或 128b/130b)后用户可获得的实际字节带宽

PCIe 吞吐量(可用带宽)计算方法:吞吐量 = 传输速率 * 编码方案

例如:PCIe 5.0 协议支持 32 GT/s,即每一条Lane上支持每秒钟内传输32G个Bit,但PCIe 5.0 的物理层协议中使用的是128b/130b的编码方案。即每传输128个Bit,需要发送130个Bit;这多出的2个Bit并不是对上层有意义的信息。

则PCIe 5.0协议的每一条Lane支持 32* 128 / 130 = 31.5 Gbps = 3938.4 MB/s 的速率,以一个PCIe 5.0 x16的通道为例,x16的可用带宽为 31.5 * 32 = 1008 Gbps = 126 GB/s。

查看vendor id和device id:lspci -n | grep -i 06:00.0

Linux 使用 Class ID + Vendor ID + Device ID 来代表装置,如刚刚的 0680: 10de:22a3 所代表装置名称为 (Class ID = 0680 , Vendor ID = 10de, Device ID = 22a3)

查看指定设备的PCIe信息:sudo lspci -vvv -s 06:00.0 | grep -i "LnkCap\|LnkSta"

查询目标 PCIe 设备自身的链路规格,设备硬件支持 PCIe4.0 x2,设备直连链路协商速率显示 16GT/s

查看内核日志中的PCIe信息:sudo dmesg | grep -i "PCIe bandwidth"

内核日志给出完整 PCIe 拓扑的真实带宽瓶颈——CPU 侧根端口仅 PCIe3.0,因此该设备实际有效带宽只有 PCIe3.0 x2,无法跑满设备本身支持的 PCIe4.0 性能

为什么 lspci 显示 16GT/s,但 dmesg 说是 8GT/s 瓶颈?

  • LnkCap,16GT/s = PCIe 4.0 单通道速率;该设备硬件上限:PCIe4.0 x2
  • LnkSta是设备与直连交换机 / 桥之间的协商速率,当前实际跑满了该设备自身支持的上限 PCIe4.0 x2
  • 而整个 PCIe 拓扑中更上游的 Root Port(CPU 侧端口 00:1a.0)只支持 PCIe3.0,整个链路的带宽由最慢一段决定。内核 dmesg 给出的是系统全局有效带宽瓶颈。

实际情况:

  • 设备硬件支持:PCIe Gen4,理论有效带宽 ≈3.94 GB/s
  • 当前整机受主板 / CPU 根端口限制,实际只能跑 PCIe Gen3,有效带宽 ≈1.97 GB/s

设备硬件能力:PCIe 4.0 x2 (16GT/s);系统实际瓶颈:上游 Root Port 只有 PCIe 3.0 x2 (8GT/s)

设备自身最大支持(PCIe 4.0 x2),x2 总带宽:2 × 16 × (128/130) / 8 ≈ 3.94 GB/s,当前系统实际可跑(被上游限制 PCIe 3.0 x2),x2 总带宽:2 × 8 × (128/130) / 8 ≈ 1.97 GB/s

本文结束 感谢您的阅读