整理 GPU 服务器运维常用的 NVIDIA 指令:用 nvidia-smi 与 nvidia-smi topo -m 查看设备状态与互联拓扑、判断是 SYS 还是 NVLink 连接,并结合 NUMA 亲和性与 CPU 绑定排查系统规模与拓扑完整性问题。
最典型的当然有 nvidia-smi 和 nvidia-smi topo -m。前者都非常熟悉了,这里对比下两台集群的 nvidia-smi topo -m 的输出:
1 | GPU0 GPU1 GPU2 GPU3 GPU4 GPU5 GPU6 GPU7 CPU Affinity NUMA Affinity GPU NUMA ID |
1 | GPU0 GPU1 GPU2 GPU3 GPU4 GPU5 GPU6 GPU7 CPU Affinity NUMA Affinity GPU NUMA ID |
通过对比这两个集群的拓扑信息,可以得出以下几个重要结论:
互联方式
第一个集群:所有 GPU 之间通过 PCIe 和 NUMA(Non-Uniform Memory Access,非一致性内存访问) 节点间的 SMP 互联(标记为 SYS)
第二个集群:所有 GPU 之间通过 18 条 NVLink 连接(标记为 NV18)
性能影响:第二个集群的 GPU 间通信性能显著优于第一个集群,因为 NVLink 的带宽和延迟都优于 PCIe+SMP 方案
NUMA 架构
两个集群都采用双 NUMA 节点设计:
GPU 通信:应尽量将相关任务分配到同一 NUMA 节点内的 GPU,以避免跨 NUMA 节点的频繁数据传输
CPU 核心分配:
系统规模
GPU 数量:两个集群都是 8 GPU 配置
CPU 核心总数:
拓扑完整性
每个 GPU 都与其他所有 GPU 直接相连
NVLINK 查询
1 | nvidia-smi nvlink --status -i 0 |
nvlink 查询结果
1 | GPU 0: NVIDIA H100 80GB HBM3 (UUID: GPU-5a10e6e5-95f7-2785-ed63-6f6147f304f7) |
可以分析看到一些对开发实用的特性:
- P2P(点对点)通信
- 系统内存访问
- P2P原子操作
- 系统内存原子操作
- SLI(多GPU并行)
- 完整的链路支持

