GPU 拓扑怎么查
nvidia-smi topo -m 用一张表看清卡与卡、卡与网卡之间的连接方式:带 NV 前缀的表示 NVLink 直连并给出链路数,PIX 与 PXB 表示处于同一 PCIe 交换树,PHB 表示经主机桥,SYS 表示跨 NUMA 插槽。它是多卡部署时选卡、排布进程与调优通信的输入依据。
基本信息
| 命令 | nvidia-smi topo -m |
|---|---|
| 输出内容 | 卡与卡、卡与网卡之间的连接类型矩阵 |
| 常见标记 | NV#(NVLink 链路数)、PIX、PXB、PHB、SYS |
| 权限要求 | 普通用户即可查看 |
| 时效性 | 换机器、改卡槽或调整网卡后需要重新查看 |
典型使用场景
- 多卡张量并行选卡:优先选 NVLink 直连的卡组
- 排查多卡通信慢:先看拓扑是否存在跨 NUMA 或跨交换机的低效路径
- 多机部署:看网卡与各卡的亲和关系,安排进程与网卡的对应
- 新机器验收:确认插槽排布与预期一致,避免两台机器配置不对称
- 问题归因:吞吐异常时用拓扑排除硬件互联因素
查看拓扑
查看拓扑
nvidia-smi topo -m
# 输出为对称矩阵:行与列都是设备(GPU 与网卡)
# 看三个地方:卡与卡、卡与网卡、以及是否出现 SYS结果解读
结果解读
NV4 4 条 NVLink 连接(卡间高速)
PIX 同一 PCIe 交换机下
PXB 经 PCIe 桥(可 P2P)
PHB 经 PCIe 主机桥
SYS 跨 NUMA/插槽(通信较慢)标记与影响
| 标记 | 含义 | 对性能的影响 |
|---|---|---|
| NV# | NVLink 直连,数字为链路数 | 卡间带宽最高,适合张量并行 |
| PIX / PXB | 同一 PCIe 交换树内 | 可做 P2P,带宽低于 NVLink |
| PHB | 经主机桥 | 带宽与延迟均劣于同交换树 |
| SYS | 跨 NUMA 或插槽 | 通信代价最高,尽量避免跨用 |
张量并行的组卡优先选 NVLink 直连:跨 NUMA 的卡参与通信时,吞吐通常明显下滑,规划阶段排除比事后调优更省事。
拓扑表里也包含网卡行:多机部署时让网卡尽量贴近实际使用它的卡,可以减少跨 NUMA 的数据搬运。
记录习惯:把拓扑输出与机器序列号一起归档,后续扩容或换卡时可以对比,避免只凭记忆判断哪几块卡是直连的。