当前位置:首页> AI教程> NVIDIA-SMI系列命令详解:拓扑信息(TOPOLOGY)

NVIDIA-SMI系列命令详解:拓扑信息(TOPOLOGY)

释放双眼,带上耳机,听听看~!
本文详细介绍了NVIDIA-SMI命令中拓扑信息选项的各种参数及其使用方法,包括展示系统的GPUDirect通信矩阵和其他相关功能。适合对GPU设备和系统拓扑结构感兴趣的读者阅读。

我正在参加「掘金·启航计划」

拓扑信息(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

NVIDIA-SMI系列命令详解:拓扑信息(TOPOLOGY)

        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

NVIDIA-SMI系列命令详解:拓扑信息(TOPOLOGY)

        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

NVIDIA-SMI系列命令详解:拓扑信息(TOPOLOGY)

可以看到4和7之间最直接的遍历路径是PCIe主机桥接

-c 展示与特定 CPU 亲和的 GPU 设备列表

展示与特定 CPU 亲和的 GPU 设备列表

运行示例

查看与CPU 2、111亲和的GPU设备列表

nvidia-smi topo -c 2
nvidia-smi topo -c 111

NVIDIA-SMI系列命令详解:拓扑信息(TOPOLOGY)

可以看到

与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

NVIDIA-SMI系列命令详解:拓扑信息(TOPOLOGY)

可以看到,所有的 GPU 都与 GPU 4在PCIe 主机桥之间的 CPU 上互连链路互连。

-p 展示一对GPU设备之间的最直接路径遍历

展示一对GPU设备之间的最直接路径遍历

注意:

与 -i 一起使用,它必须是一对设备 ID。

运行示例

展示 0 和 5 这对GPU设备之间的最直接路径遍历

nvidia-smi topo -i 0,5 -p

NVIDIA-SMI系列命令详解:拓扑信息(TOPOLOGY)

可以看到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

NVIDIA-SMI系列命令详解:拓扑信息(TOPOLOGY)

可以看到读能力全支持。

查询GPU间写能力

nvidia-smi topo -p2p w

NVIDIA-SMI系列命令详解:拓扑信息(TOPOLOGY)

可以看到写能力全支持。

查询GPU间nvlink能力

nvidia-smi topo -p2p n

NVIDIA-SMI系列命令详解:拓扑信息(TOPOLOGY)

可以看到nvlink能力全支持。

查询GPU间原子能力

nvidia-smi topo -p2p a

NVIDIA-SMI系列命令详解:拓扑信息(TOPOLOGY)

可以看到原子能力全支持。

查询全GPU互连能力

nvidia-smi topo -p2p p

NVIDIA-SMI系列命令详解:拓扑信息(TOPOLOGY)

可以看到全GPU p2p互连能力不支持。

-h 打印帮助信息

运行示例

展示 nvidia-smi topo 的帮助信息

nvidia-smi topo -h

NVIDIA-SMI系列命令详解:拓扑信息(TOPOLOGY)

对应内容如下:

    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
本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

Punica系统:提升内容理解服务业务迭代效率和稳定性

2023-12-18 11:34:14

AI教程

AutoGPT: 使GPT4完全自主的开源项目

2023-12-18 11:39:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索