使用 MTGMI v2.4.0
摩尔线程 GPU 管理接口 (mthreads-gmi)
摩尔线程 GPU 管理接口 (mthreads-gmi) 是基于 GPU 管理中心 SDK 构建的命令行工具,可用于监控、配置和管理摩尔线程 GPU。安装 GPU 驱动程序时会自动安装 mthreads-gmi。
核心能力
- 实时监控 GPU 利用率、温度、功耗、显存、时钟频率和 ECC 状态。
- 动态配置 MPC(Multi-Process Compute,多进程计算)模式。
- 提供 MTLink 高速互连拓扑和错误计数诊断。
- 管理 vGPU 生命周期并跟踪编解码会话。
- 提供 GPU 健康检查和性能配置文件功能。
- 支持在集群环境中使用 SLURM 工作负载管理器。
命令结构
mthreads-gmi [全局选项] <命令> [命令选项]
应用场景
- 新创服务器(UOS/Kylin + Phytium、Loongson、Zhaoxin 或 Hygon)。
- 国产 AI 训练和推理集群。
- 虚拟桌面(VDI)和云游戏平台。
- 使用 SLURM 工作负载管理器的高性能计算(HPC)集群。
支持的平台
mthreads-gmi v2.4.0 版本支持以下平台。
驱动要求:MUSA SDK 版本 >4.0.0;VGPU 版本 >=2.7.5。
本页的平台矩阵和驱动要求沿用 v2.4.0 版本说明。
| 处理器 | 处理器架构 | 操作系统 | GPU | MTBIOS版本 |
|---|---|---|---|---|
| Hygon | X86_64 | UOS Desktop V20 Pro | s10, s30, s50 | QUYUAN 3.4.8 CHUNXIAO 2.2.0 SUDI 1.5.1 |
| Hygon | X86_64 | Kylin V10 SP1 | s10, s30, s50 | |
| Zhaoxin | X86_64 | UOS Desktop V20 Pro | s10, s30, s50 | |
| Zhaoxin | X86_64 | Kylin V10 SP1 | s10, s30, s50 | |
| Phytium | AArch64 | UOS Desktop V20 Pro | s10, s30, s50 | |
| Phytium | AArch64 | Kylin V10 SP1 | s10, s30, s50 | |
| Loongson | LoongArch64 | UOS Desktop V20 Pro | s10, s30, s50 | |
| Loongson | LoongArch64 | Kylin V10 SP1 | s10, s30, s50 | |
| Intel | X86_64 | Ubuntu 20.04.1 | s80, s5000, s4000, s3000, s2000 |
命令参考
mthreads-gmi v2.4.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 "。v2.3.0 起,查询结果还包含当前功耗限制、用户请求的功耗限制、默认功耗限制以及功耗限制支持的上下限信息。
[可选项]
-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 [--query-gpu]
以 CSV 格式输出 GPU 查询结果。默认输出以下字段:
timestamp、driver version、device count、device name、device uuid、device index、memory.total、memory.used、memory.free、utilization.gpu、utilization.memory、temperature.gpu、clocks.current.graphics、clocks.current.memory、clocks.current.video 和 power。
字段含义如下:
| 字段 | 含义 |
|---|---|
timestamp | 查询结果的时间戳。 |
driver version | 驱动程序版本。 |
device count | GPU 设备数量。 |
device name | GPU 设备名称。 |
device uuid | GPU 设备 UUID。 |
device index | GPU 设备索引。 |
memory.total | GPU 总显存。 |
memory.used | GPU 已用显存。 |
memory.free | GPU 可用显存。 |
utilization.gpu | GPU 利用率。 |
utilization.memory | 显存利用率。 |
temperature.gpu | GPU 温度。 |
clocks.current.graphics | 当前图形时钟频率。 |
clocks.current.memory | 当前显存时钟频率。 |
clocks.current.video | 当前视频时钟频率。 |
power | GPU 功耗。 |
[可选项]
-i ID
指定要查询的设备 ID。
-l <频率>
指定刷新频率。
-lms <频率>
指定刷新频率。
示例
查询所有 GPU 的 CSV 信息:
mthreads-gmi --query-gpu
查询指定 GPU 的 CSV 信息:
mthreads-gmi --query-gpu -i <GPU_ID>
按指定刷新频率查询:
mthreads-gmi --query-gpu -l <频率>
或使用 -lms 指定刷新频率:
mthreads-gmi --query-gpu -lms <频率>
mthreads-gmi [--help-query-gpu]
查询 --query-gpu 的使用方式、支持的字段清单及各字段含义。
示例
mthreads-gmi --help-query-gpu
mthreads-gmi [--help | -h]
打印 mthreads-gmi 支持的命令帮助信息。
[可选项]
--debug=FILE
生成加密日志到指定文件,便于开发人员调试。
mthreads-gmi [--power-limit | -pl]
设置 GPU 功耗限制。该命令支持配置功耗相关设置。
[可选项]
-i, --id=ID
按 ID 指定目标 GPU。
--debug=FILE
生成加密日志到指定文件,便于开发人员调试。
示例
为索引为 0 的 GPU 设置功耗限制。
mthreads-gmi -pl -i 0
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 [--metrics-monitor | -mm]
采集功耗、频率、温度、过温次数和时间戳信息。v2.3.0 起,还支持显示当前功耗限制、用户请求的功耗限制、默认功耗限制以及功耗限制支持的上下限信息。
[可选项]
-i, --id=ID
按所选 ID(由 GPU 数量标识)显示单个指定 GPU 的数据。
-l SEC, --loop=SEC
按照指定的时间间隔持续报告查询数据,而不是默认的只报告一次。
--debug=FILE
生成加密日志到指定文件,便于开发人员调试。
示例
查询 GPU 指标信息。
mthreads-gmi -mm GpuId,Temp
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
生成加密日志到指定文件,便于开发人员调试。