PCIe 拓扑距离等级
$ nvidia-smi topo -m
GPU0 GPU1 GPU2 GPU3 GPU4 GPU5 GPU6 GPU7 NIC0 NIC1 NIC2 CPU Affinity NUMA Affinity GPU NUMA ID
GPU0 X NODE NODE NODE SYS SYS SYS SYS NODE NODE SYS 0-79,160-239 0 N/A
GPU1 NODE X NODE NODE SYS SYS SYS SYS PHB PHB SYS 0-79,160-239 0 N/A
GPU2 NODE NODE X NODE SYS SYS SYS SYS NODE NODE SYS 0-79,160-239 0 N/A
GPU3 NODE NODE NODE X SYS SYS SYS SYS NODE NODE SYS 0-79,160-239 0 N/A
GPU4 SYS SYS SYS SYS X NODE NODE NODE SYS SYS NODE 80-159,240-319 1 N/A
GPU5 SYS SYS SYS SYS NODE X NODE NODE SYS SYS NODE 80-159,240-319 1 N/A
GPU6 SYS SYS SYS SYS NODE NODE X NODE SYS SYS PHB 80-159,240-319 1 N/A
GPU7 SYS SYS SYS SYS NODE NODE NODE X SYS SYS NODE 80-159,240-319 1 N/A
NIC0 NODE PHB NODE NODE SYS SYS SYS SYS X PIX SYS
NIC1 NODE PHB NODE NODE SYS SYS SYS SYS PIX X SYS
NIC2 SYS SYS SYS SYS NODE NODE PHB NODE SYS SYS X
Legend:
X = Self
SYS = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
PHB = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
PXB = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
PIX = Connection traversing at most a single PCIe bridge
NV# = Connection traversing a bonded set of # NVLinks
NIC Legend:
NIC0: mlx5_0
NIC1: mlx5_1
NIC2: mlx5_2
X
X(自身):设备和自己的连接,对角线上的占位符,无意义。
NODE
NODE(同 NUMA node 内,跨 PCIe Host Bridge):
Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
两个设备在同一个 NUMA node,但各自挂在不同的 PCIe Host Bridge(即 CPU 不同的 root port)上,通信要经过 CPU 内部互联(如 Ring Bus/Mesh)做转发,不跨 socket。
上图中对应:
- GPU0-1、GPU0-2、GPU0-3、GPU1-2、GPU1-3、GPU2-3(NUMA0 内部互相)
- GPU4-5、GPU4-6、GPU4-7、GPU5-6、GPU5-7、GPU6-7(NUMA1 内部互相)
- 部分 GPU-NIC 连接,比如 GPU0-NIC0、GPU2-NIC0 等
PHB
PHB(经过 PCIe Host Bridge(通常指同一个 host bridge 下)):
Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
两个设备共享同一个 PCIe Host Bridge,通信只需要经过这一个 host bridge 做转发,比 NODE 少绕了 CPU 内部互联那一段,所以比 NODE 快一点。
在你的表里对应:
- GPU1-NIC0、GPU1-NIC1(GPU1 和 NUMA0 的两张网卡共享同一个 host bridge)
- GPU6-NIC2(GPU6 和 NUMA1 的网卡共享同一个 host bridge)
这也说明 GPU1 和 GPU6 在各自 NUMA 里,物理位置上跟本地网卡“更近”,如果要做 GPUDirect RDMA,优先选 GPU1 配 NIC0/NIC1、GPU6 配 NIC2,delay 会比同 NUMA 里其他卡更低。
SYS
SYS(跨 NUMA node,经过 UPI/QPI):
Connection traversing PCIe as well as the SMP interconnect between NUMA nodes
两个设备分属不同 NUMA node(不同 CPU socket),通信要多走一段 UPI/QPI 跨 CPU 互联,是全表里最慢的一级。
在你的表里对应:
- 所有 GPU0-3 与 GPU4-7 之间的连接(跨两个 NUMA 分组的全部 16 条连接)
- 所有 NIC0/NIC1(NUMA0)与 GPU4-7 的连接
- NIC2(NUMA1)与 GPU0-3 的连接
PIX
PIX(经过最多一个PCIe bridge(同一 PCIe switch下)):
Connection traversing at most a single PCIe bridge
两个设备挂在同一个 PCIe switch 下面,只需经过这一级 bridge,不需要碰 CPU host bridge,是除 NVLink 外最快的 PCIe 级别连接。
在你的表里唯一对应:NIC0-NIC1(两张网卡共享同一个 PCIe switch 芯片,这也印证了 NUMA0 这两张卡确实是接在同一个下游 switch 端口上,只是 GPU 没有共享这个 switch)
其他
- PXB(经过多个 bridge 但不过 host bridge):没出现,说明没有多级 PCIe switch 级联的情况
- NV#(NVLink):完全没出现,前面已经确认过,这台机器 GPU 间没有 NVLink

浙公网安备 33010602011771号