我正在参加「掘金·启航计划」
拓扑信息(TOPOLOGY)
本文为NVIDIA-SMI系列命令详解第十四篇-拓扑信息,介绍和演示了nvidia-smi 命令的拓扑信息选项topo及其附加参数,命令如下:
nvidia-smi topo
该命令用于展示设备或者系统的拓扑结构。
拓扑信息选项,支持的参数列表如下:
[-m | --matrix]: 展示系统的 GPUDirect 通信矩阵
[-mp | --matrix_pci]: 展示系统的 GPUDirect 通信矩阵(仅包含pci链接)
[-i | --id]: 驱动程序返回的自然枚举中 GPU 的从 0 开始的索引、
GPU 的板序列号、GPU 的 UUID 或 GPU 的 PCI 总线 ID。
如果需要指定多个设备,可以使用逗号","将不同的id隔开。
必须和 -n 、-p 参数联合使用。
[-c | --cpu]: 展示与特定 CPU 亲和的 GPU 设备列表。
[-n | --nearest_gpus]: 展示对于给定遍历路径最近的 GPU 列表,支持的路径列表如下:
0 = 双GPU板上的单个PCIe交换机(例如Tesla K80)
1 = 单个PCIe交换机
2 = 多个PCIe交换机
3 = 单个PCIe主机桥
4 = PCIe 主机桥之间的 CPU 上互连链路
5 = NUMA 节点之间的 SMP 互连链路
必须与 -i 参数联合使用,且只能指定单个设备ID。
[-p | --gpu_path]: 展示一对GPU设备之间的最直接路径遍历,与 -i 一起使用,它必须是一对设备 ID。
[-p2p | --p2pstatus]: 显示给定 p2p 能力的 GPU 之间的 p2p 状态
r - p2p 读能力
w - p2p 写能力
n - p2p nvlink能力
a - p2p 原子能力
p - p2p 仅当所有 gpus 都支持 p2p 时才设置 p2p 属性
[-h | --help]: 展示帮助信息
各参数详解
-m 展示系统的 GPUDirect 通信矩阵
展示系统的 GPUDirect 通信矩阵
运行示例
查看系统的 GPUDirect 通信矩阵
nvidia-smi topo -m
GPU0 GPU1 GPU2 GPU3 GPU4 GPU5 GPU6 GPU7 mlx5_1 mlx5_2 mlx5_3 mlx5_4 CPU Affinity NUMA Affinity
GPU0 X NV12 NV12 NV12 NV12 NV12 NV12 NV12 PIX NODE SYS SYS 0-55 0
GPU1 NV12 X NV12 NV12 NV12 NV12 NV12 NV12 PIX NODE SYS SYS 0-55 0
GPU2 NV12 NV12 X NV12 NV12 NV12 NV12 NV12 NODE PIX SYS SYS 0-55 0
GPU3 NV12 NV12 NV12 X NV12 NV12 NV12 NV12 NODE PIX SYS SYS 0-55 0
GPU4 NV12 NV12 NV12 NV12 X NV12 NV12 NV12 SYS SYS PIX NODE 56-111 1
GPU5 NV12 NV12 NV12 NV12 NV12 X NV12 NV12 SYS SYS PIX NODE 56-111 1
GPU6 NV12 NV12 NV12 NV12 NV12 NV12 X NV12 SYS SYS NODE PIX 56-111 1
GPU7 NV12 NV12 NV12 NV12 NV12 NV12 NV12 X SYS SYS NODE PIX 56-111 1
mlx5_1 PIX PIX NODE NODE SYS SYS SYS SYS X NODE SYS SYS
mlx5_2 NODE NODE PIX PIX SYS SYS SYS SYS NODE X SYS SYS
mlx5_3 SYS SYS SYS SYS PIX PIX NODE NODE SYS SYS X NODE
mlx5_4 SYS SYS SYS SYS NODE NODE PIX PIX SYS SYS NODE 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
-
X: 自身
-
SYS:通过 PCIe 的连接以及 NUMA 节点之间的 SMP 互连(例如,QPI/UPI)
-
NODE:通过 PCIe 的连接以及 NUMA 节点内 PCIe 主机桥之间的互连
-
PHB:通过 PCIe 和 PCIe 主机桥(通常是 CPU)的连接
-
PXB:通过多个 PCIe 桥互连(不跨 PCIe 主机桥)
-
PIX:通过最多一个 PCIe 桥互连
-
NV# :通过数量为n组的 NVLinks 互连
-mp 展示系统的 GPUDirect 通信矩阵(仅PCI连接)
展示系统的 GPUDirect 通信矩阵(仅PCI连接)
运行示例
查看系统的 GPUDirect 通信矩阵(仅PCI连接)
nvidia-smi topo -mp
GPU0 GPU1 GPU2 GPU3 GPU4 GPU5 GPU6 GPU7 CPU Affinity NUMA Affinity
GPU0 X PHB PHB PHB PHB PHB PHB PHB 0-127 0-1
GPU1 PHB X PHB PHB PHB PHB PHB PHB 0-127 0-1
GPU2 PHB PHB X PHB PHB PHB PHB PHB 0-127 0-1
GPU3 PHB PHB PHB X PHB PHB PHB PHB 0-127 0-1
GPU4 PHB PHB PHB PHB X PHB PHB PHB 0-127 0-1
GPU5 PHB PHB PHB PHB PHB X PHB PHB 0-127 0-1
GPU6 PHB PHB PHB PHB PHB PHB X PHB 0-127 0-1
GPU7 PHB PHB PHB PHB PHB PHB PHB X 0-127 0-1
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
-i 指定GPU
id是驱动程序返回的自然枚举中 GPU 的从 0 开始的索引、GPU 的板序列号、GPU 的 UUID 或 GPU 的 PCI 总线 ID。 如果需要指定多个设备,可以使用逗号”,”将不同的id隔开。必须与 -n 或者 -p 配合使用
运行示例
查看设备id为4和7的GPU之间的最直接路径遍历
nvidia-smi topo -i 4,7 -p
可以看到4和7之间最直接的遍历路径是PCIe主机桥接
-c 展示与特定 CPU 亲和的 GPU 设备列表
展示与特定 CPU 亲和的 GPU 设备列表
运行示例
查看与CPU 2、111亲和的GPU设备列表
nvidia-smi topo -c 2
nvidia-smi topo -c 111
可以看到
与CPU 2 亲和的GPU设备列表为0、1、2、3
与CPU 2 亲和的GPU设备列表为4、5、6、7
-n 展示对于给定遍历路径最近的 GPU 列表
展示对于给定遍历路径最近的 GPU 列表,支持的路径列表如下:
-
0 = 双GPU板上的单个PCIe交换机(例如Tesla K80)
-
1 = 单个PCIe交换机
-
2 = 多个PCIe交换机
-
3 = 单个PCIe主机桥
-
4 = PCIe 主机桥之间的 CPU 上互连链路
-
5 = NUMA 节点之间的 SMP 互连链路
注意:
必须与 -i 参数联合使用,且只能指定单个设备ID。
运行示例
展示与GPU设备4在 PCIe 主机桥之间的 CPU 上互连链路上最近的 GPU 列表
nvidia-smi topo -i 4 -n 4
可以看到,所有的 GPU 都与 GPU 4在PCIe 主机桥之间的 CPU 上互连链路互连。
-p 展示一对GPU设备之间的最直接路径遍历
展示一对GPU设备之间的最直接路径遍历
注意:
与 -i 一起使用,它必须是一对设备 ID。
运行示例
展示 0 和 5 这对GPU设备之间的最直接路径遍历
nvidia-smi topo -i 0,5 -p
可以看到GPU 0 和 5之间通过NUMA节点之间的SMP互连。
-p2p 显示给定 p2p 能力的 GPU 之间的 p2p 状态
支持参数如下:
-
r – p2p 读能力
-
w – p2p 写能力
-
n – p2p nvlink能力
-
a – p2p 原子能力
-
p – p2p 仅当所有 gpus 都支持 p2p 时才设置 p2p 属性
运行示例
查询 GPU 之间的读能力
nvidia-smi topo -p2p r
可以看到读能力全支持。
查询GPU间写能力
nvidia-smi topo -p2p w
可以看到写能力全支持。
查询GPU间nvlink能力
nvidia-smi topo -p2p n
可以看到nvlink能力全支持。
查询GPU间原子能力
nvidia-smi topo -p2p a
可以看到原子能力全支持。
查询全GPU互连能力
nvidia-smi topo -p2p p
可以看到全GPU p2p互连能力不支持。
-h 打印帮助信息
运行示例
展示 nvidia-smi topo 的帮助信息
nvidia-smi topo -h
对应内容如下:
topo -- Display topological information about the system.
Usage: nvidia-smi topo [options]
Options include:
[-m | --matrix]: Display the GPUDirect communication matrix for the system.
[-mp | --matrix_pci]: Display the GPUDirect communication matrix for the system (PCI Only).
[-i | --id]: Enumeration index, PCI bus ID or UUID. Provide comma
separated values for more than one device
Must be used in conjuction with -n or -p.
[-c | --cpu]: CPU number for which to display all GPUs with an affinity.
[-n | --nearest_gpus]: Display the nearest GPUs for a given traversal path.
0 = a single PCIe switch on a dual GPU board
1 = a single PCIe switch
2 = multiple PCIe switches
3 = a PCIe host bridge
4 = an on-CPU interconnect link between PCIe host bridges
5 = an SMP interconnect link between NUMA nodes
Used in conjunction with -i which must be a single device ID.
[-p | --gpu_path]: Display the most direct path traversal for a pair of GPUs.
Used in conjunction with -i which must be a pair of device IDs.
[-p2p | --p2pstatus]: Displays the p2p status between the GPUs of a given p2p capability
r - p2p read capabiity
w - p2p write capability
n - p2p nvlink capability
a - p2p atomics capability
p - p2p prop capability
[-h | --help]: Display help information