跳到主要内容

使用手册

摩尔线程 GPU 管理接口 (mthreads-gmi)

摩尔线程 GPU 管理接口 (mthreads-gmi) 是基于 GPU 管理中心 SDK 构建的命令行工具。 mthreads-gmi 旨在监控和管理摩尔线程 GPU。安装 GPU 驱动程序时会自动安装 mthreads-gmi。

支持的平台

mthreads-gmi v2.0.0 版本支持以下平台。

处理器处理器架构操作系统GPUMTBIOS版本
HygonX86_64UOS Desktop V20 Pros10, s30, s50
QUYUAN >= 3.4.8
CHUNXIAO >= 2.4.1
SUDI >= 1.2.0
HygonX86_64Kylin V10 SP1s10, s30, s50
ZhaoxinX86_64UOS Desktop V20 Pros10, s30, s50
ZhaoxinX86_64Kylin V10 SP1s10, s30, s50
PhytiumAArch64UOS Desktop V20 Pros10, s30, s50
PhytiumAArch64Kylin V10 SP1s10, s30, s50
LoongsonLoongArch64UOS Desktop V20 Pros10, s30, s50
LoongsonLoongArch64Kylin V10 SP1s10, s30, s50
IntelX86_64Ubuntu 22.04.1s80, s4000, s3000, s2000

命令参考

mthreads-gmi v2.0.0 版本支持以下命令。

GPU 命令

mthreads-gmi

显示所有物理 GPU 的概览和 GPU 上运行的进程级信息。虚拟 GPU 环境暂时不支持查询后者。

[可选项]

-i, --id=ID

按所选 ID(由 GPU 数量标识)显示单个指定 GPU 的数据。

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

查询索引为 0 的 GPU 信息。

mthreads-gmi -i 0
mthreads-gmi [--list-gpus | -L]

依次列出系统中每个摩尔线程 GPU 及其 UUID。

[可选项]

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

mthreads-gmi [--query | -q]

显示所有物理 GPU 的详细信息,包括名称、品牌、产品序列号、mtbios 的版本、pci 信息、内存、利用率、温度、风扇、电功率、时钟、显示接口、编码器统计信息和解码器统计信息。某些设备和环境不支持所有以上的信息。任何不支持的数据都会在输出显示为 "N/A "。

[可选项]

-i, --id=ID

按所选 ID(由 GPU 数量标识)显示单个指定 GPU 的数据。

-f FILE, --filename=FILE

将查询结果重定向到指定文件,而不是默认的 stdout 标准输出。

-d TYPE, --display=TYPE

允许调用者传递要查询的属性列表,属性值包括:MEMORY、UTILIZATION、TEMPERATURE、CLOCK、FAN、VIDEO、POWER、PAGE_RETIREMENT 和 PERFORMANCE。

-l SEC, --loop=SEC

按照指定的时间间隔持续报告查询数据,而不是默认的只报告一次。

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

--json

结果显示为 JSON 格式。

示例

查询索引为 0 的 GPU 的显存信息。

mthreads-gmi --query -i 0 -d MEMORY

每 10 秒钟查询一次所有 GPU 的属性,并将输出保存到日志文件中。

mthreads-gmi --query -l 10 -f log
mthreads-gmi [--help | -h]

打印 mthreads-gmi 支持的命令帮助信息。

[可选项]

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

mthreads-gmi [--reset | -r] [ --id | -i]

在无需重启机器情况下重置 GPU 硬件和软件状态。并不保证 GPU 重置在所有情况下都有效。目前不建议在生产环境中使用。

需要指定一个选项:

  • mthreads-gmi -r 0: 重置 GPU 子系统。
  • mthreads-gmi -r 1: 重置 GPU 子系统和硬件错误计数器。
  • mthreads-gmi -r 2: 重置整个设备,包括选项 0 和 1 中的内容。
mthreads-gmi [--process-monitor | -pm]

监控 GPU 上的活动进程信息。

[可选项]

-l SEC, --loop=SEC

按照指定的时间间隔持续报告查询数据,而不是默认的只报告一次。

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

mthreads-gmi [--ecc-config | -e]

启用或禁用 DDR ECC 模式。

需要指定一个选项:

  • mthreads-gmi -e 0: 关闭 DDR ECC 模式。
  • mthreads-gmi -e 1: 启用 DDR ECC 模式。

[可选项]

-i, --id=ID

按所选 ID(由 GPU 数量标识)显示单个指定 GPU 的数据。

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

mthreads-gmi [--query-retired-pages | -qrp]

以 CSV 格式显示详细的 DDR page retirement 信息。

可指定的选项包括:

  • timestamp:查询的时间戳,格式为 "YYYY/MM/DD HH:MM:SS.msec"。
  • gpu_uuid:GPU 的全局唯一不可变标识符。
  • retired_pages.address: page retirement 的地址
  • retired_pages.cause: page retirement 的原因,可能的值有:
    • Double Bit ECC: 表示由于双位 ECC 错误而停用。
    • Single Bit ECC: 表示由于多个单位 ECC 错误而停用。
  • retired_pages.timestamp: page retirement 的时间戳。

[可选项]

-i, --id=ID

按所选 ID(由 GPU 数量标识)显示单个指定 GPU 的数据。

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

mthreads-gmi [--concise-format | -cf]

显示所有物理 GPU 的概览和 GPU 上运行的进程级信息。虚拟 GPU 环境暂时不支持后者。

[可选项]

--list-gpus | -L

列出系统中每个摩尔线程 GPU 及其 UUID。

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

查询 GPU 信息,隐藏所有 MPC 实例实体。

mthreads-gmi -L -cf

MPC命令

mthreads-gmi mpc [-enable] [--id | -i]

为目标设备启用 MPC 模式。

[可选项]

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

为设备 0 启用 MPC 模式。

mthreads-gmi mpc -enable -i 0
mthreads-gmi mpc [--list-mpc-config | -lmc] [--id | -i]

查询支持的配置和配置文件。

[可选项]

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

查询设备 0 支持的配置和配置文件。

mthreads-gmi mpc -lmc -i 0
mthreads-gmi mpc [--config-mpc | -cm] [--id | -i]

使用指定 ConfigID 的配置为目标设备配置 MPC 模式。

[可选项]

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

使用配置 15 为设备 0 配置 MPC 模式。

mthreads-gmi mpc -cm 15 -i 0
mthreads-gmi mpc [--list-mpc-instances | -lmi]

列出已创建的所有 MPC 实例。

[可选项]

-i, --id=ID

按所选 ID(由 GPU 数量标识)显示单个指定 GPU 的数据。

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

mthreads-gmi mpc [-disable] [--id | -i]

禁用目标设备的 MPC 模式。

[可选项]

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

拓扑命令

列出系统中 GPU 的拓扑信息,包括它们的连接方式以及支持 RDMA 的合格网卡。

mthreads-gmi topo [--matrix | -m]

显示带有以下图例的可用 GPU 矩阵:

X = Self
SYS = Topology path in the system
NODE = Topology path connected to the same NUMA node but possibly multiple host bridges
HPB = Topology path connected to the same host bridge
MPB = Topology path that does not need to traverse a host bridge
SPS = Topology path that only needs to traverse a single PCIe switch
INT = Topology path within the same card, e.g. devices on the same S2000 card
MTx = Topology path that is a bonded set of x MTLinks

[可选项]

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

mthreads-gmi topo [--p2pstatus | -p2p]

显示给定 p2p 功能的 GPU 之间的 p2p 状态.

需要指定一个选项:

  • mthreads-gmi topo -p2p r: 指定获取 p2p 读取能力
  • mthreads-gmi topo -p2p w:指定获取 p2p 写入能力

[可选项]

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

查询 GPU 之间的 p2p 读取能力。

mthreads-gmi topo -p2p r
mthreads-gmi topo [--nearest-gpus | -n] [--id | -i]

显示通过给定遍历路径连接到目标设备的最近 GPU。

需要指定一个选项:

  • mthreads-gmi topo -n 0: 内部连接(例如 S2000)
  • mthreads-gmi topo -n 1: 单个 PCIe 交换机
  • mthreads-gmi topo -n 2: 多个 PCIe 交换机
  • mthreads-gmi topo -n 3: PCIe 主桥
  • mthreads-gmi topo -n 4: PCIe 主桥之间的 CPU 互联链路
  • mthreads-gmi topo -n 5: NUMA 节点之间的 SMP 互联链路

[可选项]

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

查询通过多个 PCIe 交换机连接到 GPU 0 的最近 GPU。

mthreads-gmi topo -n 2 -i 0
mthreads-gmi topo [--gpu-path | -p] [--id | -i]

显示一对 GPU 之间的最直接路径,其中 -i 必须指定一对设备 ID。

[可选项]

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

查询 GPU 0 与 GPU 1 之间最直接的遍历路径。

mthreads-gmi topo -p -i 0,1

查询 mtlink 状态。有效状态:LINK UP(链接启动)和 LINK DOWN(链接关闭)。

[可选项]

-i, --id=ID

显示单个指定 GPU 的数据。

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

查询所有 GPU 的 mtlink 状态。

mthreads-gmi mtlink -s

查询指定 GPU 所有 mtlink 的能力状态。

[可选项]

-i, --id=ID

显示单个指定 GPU 的数据。

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

查询所有 GPU mtlink 的能力状态。

mthreads-gmi mtlink -c

查询通过指定 GPU 的指定 mtlink 直接连接的远程设备。

[可选项]

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

查询通过 GPU 0 的 mtlink 1 连接的远程设备。

mthreads-gmi mtlink -r -i 0 -l 1

查询连接两个 GPU 的最短 mtlink 路径,其中 -i 必须指定一对设备 ID。

[可选项]

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

查询连接 GPU 0 和 GPU 1 的最短 mtlink 路径。

mthreads-gmi mtlink -la -i 0,1

支持查询mtlink每条链路出现的不同类别的错误计数信息。

[可选项]

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

查询连接 GPU 0 和 GPU 1 的最短 mtlink 路径。

mthreads-gmi mtlink -e -i 0 -l 0

vGPU 命令

mthreads-gmi vgpu [--support | -s]

显示每个设备支持的 vGPU 类型。

[可选项]

-i, --id=ID

显示单个指定 GPU 的数据。

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

mthreads-gmi vgpu [--created | -c]

显示每个设备上创建的 vGPU。

[可选项]

-i, --id=ID

显示单个指定 GPU 的数据。

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

mthreads-gmi vgpu [--encodersessions | -es]

以默认时间间隔(5 秒)显示活动编码器会话指标。

[可选项]

-i, --id=ID

显示单个指定 GPU 的数据。

-l SEC, --loop=SEC

以指定的时间间隔(秒)查询结果,直到按 Ctrl+C。

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

每秒查询 GPU 0 中的活动编码器会话指标。

mthreads-gmi vgpu -es -l 1 -i 0
mthreads-gmi vgpu [--decodersessions | -ds]

以默认时间间隔(5 秒)显示活动解码器会话指标。

[可选项]

-i, --id=ID

显示单个指定 GPU 的数据。

-l SEC, --loop=SEC

以指定的时间间隔(秒)查询结果,直到按 Ctrl+C。

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

每秒查询 GPU 0 中的活动解码器会话指标。

mthreads-gmi vgpu -ds -i 0 -l 1
mthreads-gmi vgpu [--utilization | -u]

在 vGPU 平台上查询从虚拟机系统收集的 GPU 和 VRAM 利用率数据。

[可选项]

-i, --id=ID

显示单个指定 GPU 的数据。

-l SEC, --loop=SEC

以指定的时间间隔(秒)查询结果,直到按 Ctrl+C。

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

查询从虚拟机系统收集到的 GPU 0 的 GPU 和 VRAM 利用率数据。

mthreads-gmi vgpu -u -i 0
mthreads-gmi vgpu [--query | -q]

查询与 vGPU 使用情况相关的信息,包括活动 vGPU 数量、虚拟机绑定信息、vGPU 详情、内存使用情况和利用率以及编码器统计信息。

[可选项]

-i, --id=ID

显示单个指定 GPU 的数据。

-l SEC, --loop=SEC

以指定的时间间隔(秒)查询结果,直到按 Ctrl+C。

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

查询 GPU 0 的 vGPU 信息。

mthreads-gmi vgpu -q -i 0

VPU 命令

mthreads-gmi [--encodersessions | -es]

以默认时间间隔(5 秒)显示活动编码器会话指标。

[可选项]

-i, --id=ID

显示单个指定 GPU 的数据。

-l SEC, --loop=SEC

以指定的时间间隔(秒)查询结果,直到按 Ctrl+C。

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

每 2 秒钟查询所有 GPU 的活动编码器会话指标。

mthreads-gmi -es -l 2
mthreads-gmi [--decodersessions | -ds]

以默认时间间隔(5 秒)显示活动解码器会话指标。

[可选项]

-i, --id=ID

显示单个指定 GPU 的数据。

-l SEC, --loop=SEC

以指定的时间间隔(秒)查询结果,直到按 Ctrl+C。

--debug=FILE

生成加密日志到指定文件,便于开发人员调试。

示例

每 2 秒钟查询 GPU 2 的活动解码器会话指标。

mthreads-gmi -ds -i 2 -l 2

变更日志

v1.14.0 的更改

  • 无更改。

v1.13.0 的更改

  • 支持 mthreads-gmi [--query | -q] 显示 P-States。
  • 新增 mthreads-gmi [--query | -q] [--display=PERFORMANCE] 显示 P-States。

v1.12.3 的更改

  • 已添加对 S3000E 和 X500 的支持。
  • S3000E 上不再显示最大时钟信息。

v1.12.2 的更改

  • 新增对 Linux guest 的支持。
    • 新增了对 mthreads-gmi 命令及其 [-i | --id] 和 [--debug] 组合的支持。
    • 新增了对 mthreads-gmi [-h |--help] 的支持。
    • 新增了对 mthreads-gmi [-v |--version] 的支持。
    • 新增了对 mthreads-gmi [-q |--query] 及其与 [-i |--id], [-l |--loop] 和 [--debug] 组合的支持。

v1.12.1 的更改

  • 支持 mthreads-gmi [-cf | -- concise-format] 以简洁模式显示 GPU 信息。

v1.12.0 的更改

  • 新增 mthreads-gmi -q 查询 DDR ECC 模式的功能。
  • 新增 mthreads-gmi -q 查询 page retirement 相关数据的功能。
  • 新增 mthreads-gmi [-e | --ecc-config] 设置 DDR ECC 模式。
  • 新增 [-d | --display] 支持 PAGE_RETIRMENT 属性选项。
  • 新增 [-qrp | --query-retired-pages] 以 CSV 格式打印 page retirement 的详细信息。
  • 支持 mthreads-gmi [-r|--reset] 选项设置 GPU 硬件和软件状态。

v1.11.0 的更改

  • 增强 mthreads-gmi topo -m 显示设备 NUMA 和 CPU Affinity 信息。
  • 增强 mthreads-gmi topo -m 显示直接连接的 GPU 设备的 mtlink 详情。
  • 新增 mthreads-gmi -q [-i | --id] [-d | --display=] -json 命令引入 JSON 导出功能,以简化数据管理。

v1.10.2 的更改

  • 新增 mthreads-gmi vgpu [-q|--query] 查询有关 Vgpu 使用情况的信息,包括活动的 vGPU 数量、虚拟机绑定、vGPU 详细信息、内存使用情况和利用率以及编码器统计信息。

v1.10.1 的更改

  • 无更改。

v1.10.0 的更改

  • 新增 mthreads-gmi vgpu [-u|--utilization] 查询从虚拟机系统收集的 GPU 和 VRAM 利用率数据。
  • 引入退出码,表示不同的退出情况。

v1.9.4 的更改

  • 纠正了在多卡环境中将 GPU 之间的拓扑级别错误识别为 "节点 "的可能性。

v1.9.3 的更改

  • 添加了对设备 X300 的支持。

v1.9.2 的更改

  • 解决了因错误识别驱动程序类型为 vGPU 主机而导致的潜在错误。

v1.9.1 的更改

  • 解决了存在多个 Mellanox 网卡时,输出数据编号可能出现不连续的问题。
  • 解决了拓扑命令日志创建失败的问题。

v1.9.0 的更改

  • mthreads-gmi [--query|-q] 的输出中添加了显示接口信息:物理 GPU(数量、类型、最大分辨率/刷新率)、MPC 父设备(数量、类型、最大分辨率/刷新率)。
  • mthreads-gmi [--query|-q] 的输出中添加了内存规格信息:物理 GPU(类型、供应商、带宽、总线宽度、速度)、MPC 父设备(类型、供应商、带宽、总线宽度、速度)。
  • mthreads-gmi [--query|-q] 的输出中添加了产品序列号打印。
  • mthreads-gmi [--query|-q] 的输出中添加了 PCIe 插槽 ID 打印,并在 mthreads-gmi [--query|-q] 的输出中分离了 PCIe 设备 ID 和供应商 ID。
  • mthreads-gmi vgpu [--support|-s] 的输出中添加了以下虚拟类型说明:虚拟显示接口的数量、虚拟显示接口支持的最大分辨率、分配的视频内存大小、硬件加速视频编解码并发会话的最大数量。

v1.8.2 的更改

  • 无更改。

v1.8.1 的更改

  • 解决了偶尔获得的编解码器分辨率值可能不正确的问题。

v1.8.0 的更改

  • 支持 mthreads-gmi mtlink [-s|--status] 来查询 mtlink 状态。
  • 支持 mthreads-gmi mtlink [-c|--capabilities] 来查询 mtlink 的能力状态。
  • 支持 mthreads-gmi mtlink [-r|--remotelinkinfo][-l|--link][-i|--id],以查询通过指定 GPU 的指定 mtlink 连接的远程设备。
  • 支持 mthreads-gmi mtlink [-la|--layout][-i|--id] 以查询连接两个 GPU 的最短 mtlink 路径。
  • 支持 mthreads-gmi [-pm|--process-monitor] 监控系统内安装的 GPU 上的活动进程。
  • mthreads-gmi topo [--nearest_gpus|-n] 改为 mthreads-gmi topo [--nearest-gpus|-n]
  • mthreads-gmi topo [--gpu_path|-p] 改为 mthreads-gmi topo [--gpu-path|-p]

v1.7.0 的更改

  • 支持 mthreads-gmi [-r|--reset][-i|--id],便于重置 GPU 硬件和软件状态,在这种情况下无需重启机器。
  • 将调试选项从 [-debug FILE] 更新为 [--debug=FILE]

v1.6.0 的更改

  • 支持 mthreads-gmi mpc [-enable] [-i|--id],为目标设备启用 MPC 模式。

  • 支持 mthreads-gmi mpc [-lmc|--list-mpc-config][-i|--id] 来查询支持的 MPC 配置和 MPC 实例配置文件。

  • 支持 mthreads-gmi mpc [-cm|--config-mpc][-i|--id],使用指定配置为目标设备配置 MPC 模式。

  • 支持 mthreads-gmi mpc [-lmi|--list-mpc-instances] 来列出所有已创建的 MPC 实例。

  • 支持 mthreads-gmi mpc [-disable][-i|--id],禁用目标设备的 MPC 模式。

  • 支持查询设备类型和 MPC 功能。

  • 以下列样式显示设备信息:

    • 按索引升序排列物理设备(MPC 父设备)。

    • 按索引升序排列从同一 MPC 父节点派生的 MPC 实例。

    • 在 MPC 父节点下缩进 MPC 实例。

v1.5.0 的更改

  • 支持 mthreads-gmi [-es|--encodersessions][-i|--id][-l|-loop] 来查询编码器会话指标。
  • 支持 mthreads-gmi [-ds|--decodersessions][-i|--id][-l|-loop]来查询解码器会话指标。
  • 支持 mthreads-gmi vgpu [-es|--encodersessions][-i|--id][-l|-loop] 在 vdi 环境中查询编码器会话指标。
  • 支持 mthreads-gmi vgpu [-ds|--decodersessions][-i|--id][-l|-loop] 在 vdi 环境中查询解码器会话指标。
  • 分别显示 vpu 编码器和解码器的使用情况。
  • mthreads-gmi -vgpu [-s|-support] 改为 mthreads-gmi vgpu [-s|-support]
  • mthreads-gmi -vgpu [-c|-created] 改为 mthreads-gmi vgpu [-c|-created]
  • mthreads-gmi -topo 更改为 mthreads-gmi topo

1.4.0 ~ 1.4.2 版之间的更改

  • 新增命令 mthreads-gmi [-d file | -debug FILE] : 将加密的调试信息记录到指定文件。
  • 添加了新命令 mthreads-gmi -topo :显示拓扑命令的帮助信息。
  • 新增命令 mthreads-gmi -topo [-m | --matrix] :显示系统的设备通信矩阵。
  • 新增了 mthreads-gmi -topo [-p2p | --p2pstatus] 命令:显示具有读取或写入 p2p 功能的 GPU 之间的 p2p 状态。
  • 新增命令 mthreads-gmi -topo [-n | --nearest_gpus] [-i | --id] : 显示指定遍历路径下最近的 GPU。
  • 新增命令 mthreads-gmi -topo [-p | --gpu_path] [-i | --id] : 显示一对 GPU 的最直接路径遍历。
  • mthreads-gmi -q 可以查询 QY 卡支持的电量使用情况。
  • mthreads-gmi -vgpu -s 可以查询最大 vgpu 实例。

v1.3.0 的更改

  • mthreads-gmi 支持 QY1 上 mthreads-gmi v1.3 用户手册中的所有命令。

v1.2.0 的更改

  • 支持查询风扇编号和风扇速度。
  • 支持查询虚拟 GPU 中视频编解码器的属性,包括视频编解码器的使用率、时钟、最大时钟、活动会话和平均 FPS。

v1.1.0 的更改

  • 支持查询在 mt-gpu 上运行的进程的 pid、进程名称和 gpu 内存使用情况。
  • 支持查询视频编解码器的属性,包括视频编解码器的使用率、时钟、最大时钟、活动会话和平均 FPS。
  • 支持查询每个设备支持的 vGPU 类型。
  • 支持查询在每个设备上创建的 vGPU。

v0.1.0 ~ v1.0.0 之间的更改

  • 添加了 mthreads-gmi [-i,--id] 命令行,以显示所有 GPU 的概览。
  • 添加了 mthreads-gmi [-L,--list-gpus] 命令行,以列出所有 GPU 及其相应的 UUID。
  • 新增 mthreads-gmi [-q,--query][-i,--id][-d,--display][-l,--loop][-f,--filename]命令行,用于查询 GPU 信息(时钟、利用率、pci、内存、风扇、电源、mtbios 等)。
  • 添加了 mthreads-gmi [-h,--help] 命令行以显示使用信息。