# mx-smi 用户手册 ## **概述** mx-smi(MOFFETT System Management Interface)是一款基于 MOFFETT Management Library (MXML) 开发的命令行工具,旨在实现对墨芯 AI 计算卡的高效管理与精准监控。您只需通过这一便捷工具,即可轻松查询墨芯 AI 计算卡的实时状态,并在具备相应权限的条件下,对设备的部分状态及设置进行灵活调整。 ## 前提条件 在主机上安装 SOLA。具体的步骤,请参见[SOLA Toolkit 安装指南](https://docs.moffettai.com/moffett_docs/macs-1.7/installation/sola-toolkit-installation-guide.html)。 安装 SOLA 后,mx-smi 的二进制文件位于`/usr/bin` 目录下。 ## 命令说明 ### 命令格式 ```Bash $ mx-smi [选项] [子命令] ``` ### 基本命令 执行 `mx-smi --help` 获取 mx-smi 命令的使用方法: ```Bash $ mx-smi --help Moffett System Management Interface Application v2.8.0 Usage: mx-smi [OPTIONS] [SUBCOMMAND] Options: -h,--help Print this help message and exit --version Display program version information and exit -l,--loop INT:INT in [1 - 3600] [default: 5] Probe until Ctrl+C at specified second interval. Subcommands: list Draw chart to show summary of devices. query Display devices details. select Print properties you explicit specified. reboot Reboot device ``` ### **子命令** mx-smi 提供多种子命令查看或操作设备,子命令使用说明详见下文。 #### **子命令 list** 以设备 (Device) 为单位输出概览信息,若是单卡多设备的产品(例如 S30),会标注位于同一张卡的设备。选项列表如下: - <无选项> : 默认输出所有设备的概览信息,包括设备索引、频率、功耗、内存使用、进程等信息。 - -i, --index : 用于输出指定设备 id 的概览信息。可使用以下格式输入: - 空格分隔,例如 -i 0 1 2 - 花括号中用逗号分隔 ,例如 -i {0,1,2} - -l, --loop : 以指定时间间隔(单位:秒)不断输出命令结果,默认时间间隔是 5 秒,如需停止打印结果,请按`Ctrl+C` #### **子命令** **query** 输出设备详细信息。选项列表如下: - <无选项> : 默认输出所有设备的详细信息。 - -i, --index : 用于指定设备 id 的详细信息。可使用以下格式输入: - 空格分隔,例如 -i 0 1 2 - 花括号中用逗号分隔,例如 -i {0,1,2} - -d, --display : 用于查询设备的指定信息。可接受的参数不限定大小写,参数列表如下: | **参数** | **说明** | | ----------- | ----------------------- | | MEMORY | 设备内存信息 | | UTILIZATION | 设备使用率信息 | | TEMPERATURE | 设备的温度信息 | | POWER | 设备的功耗信息 | | FREQUENCY | 设备的频率信息 | | VOLTAGE | 设备的电压信息 | | PIDS | 执行中任务的系统进程 ID | | ECC | ECC 信息 | 可使用以下格式输入: - 空格分隔,例如 -d MEMORY POWER - 花括号中用逗号分隔,例如-d {MEMORY,POWER} - -l, --loop : 以指定时间间隔(单位:秒)不断输出命令结果,默认时间间隔是 5 秒,如需停止打印结果,请按`Ctrl+C` #### **子命令 select** 按指定的内容和顺序,输出设备的属性信息。 > **注意**: > > - *必须指定查询的 field:`--field` 或者 `--board-field`。* > - *`--index`指定查询的设备 id,与`--field`一起使用。* > - *`--board`指定查询的板卡 id,与`--board-field`一起使用。* - -f, --field : **必选项**,用于指定需要输出的设备信息类型,并按指定的顺序输出。可接受的参数不限定大小写,参数列表如下: | **参数** | **说明** | | ---------------------------------------------- | ----------------------------------------------------------- | | timestamp | 输出当前时间戳。例如 “2024-01-02 15:04:05” | | driver_version | 驱动的版本 | | sola_version | SOLA 版本 | | count | 检测到的设备(Devices)数量 | | index | 设备 ID (根据 Bus ID 生成) | | name | 设备名称(产品名称) | | cores | 设备核心数量 | | firmware_version | 固件版本 | | mcu_version | MCU 版本 | | serial | 序列号(同一张卡拥有相同序列号,不同卡的序列号不同) | | uuid | UUID (每个设备全局唯一 ID) | | board | 板卡 ID | | pci.bus | 16 进制输出 PCI bus | | pci.device | 16 进制输出 PCI device | | pci.domain | 16 进制输出 PCI domain | | pci.bus_id | 16 进制输出 PCI bus id,格式为 “domain:bus:device.function” | | pci.device_id | 16 进制输出 PCI vendor device id | | pci.sub_device_id | 16 进制输出 PCI Sub System id | | memory.total | SPU 总内存(单位:MiB) | | memory.reserved | SPU 预留内存(单位:MiB) | | memory.used | SPU 已使用内存(单位:MiB) | | memory.free | SPU 总空闲内存(单位:MiB) | | utilization | 使用率(各核心上的平均使用率) | | ecc.errors.corrected.volatile.device_memory | 已纠正的易失性设备内存错误数量 | | ecc.errors.corrected.aggregate.device_memory | 已纠正的聚合设备内存错误数量 | | ecc.errors.uncorrected.volatile.device_memory | 未纠正的易失性设备内存错误数量 | | ecc.errors.uncorrected.aggregate.device_memory | 未纠正的聚合设备内存错误数量 | | temperature | 设备的温度,单位为摄氏度(℃) | | power.draw | 设备的当前功率 | | power.limit | 设备的最大功率,单位为瓦特(W) | | frequency | 设备的频率,单位为兆赫兹(MHz) | | voltage | 设备的电压,单位为毫伏(mV) | 您可使用以下格式输入: - 空格分隔,例如-f index pci.bus_id - 花括号中用逗号分隔,例如-f {index,pci.bus_id} - -i, --index : 用于指定设备 id (device index),可使用以下格式输入: - 空格分隔,例如 -i 0 1 2 - 花括号中用逗号分隔,例如 -i {0,1,2} - --board-field : 用于指定需要输出的板卡(Card)信息类型,并按指定的顺序输出。可接受的参数不限定大小写,参数列表如下: | **参数** | **说明** | | ----------- | -------------------------------- | | board | 板卡 ID | | board.power | 板卡功率或卡上所有设备的功率总和 | - -b,--board : 用于指定板卡 ID (Board ID) - –-noheader : 不输出属性名表头 - -l, --loop : 以指定时间间隔(单位:秒)不断输出命令结果,默认时间间隔是 5 秒,如需停止打印结果,请按`Ctrl+C` #### **子命令 reboot** 重启指定的设备并加载固件,操作记录保存在`/var/log/moffett/sola/smi.log`中。 > **注意**:*执行 reboot 命令需要获取 sudo 权限。* 选项列表如下: | **选项** | **说明** | | ---------- | ------------------------------------------------------------ | | –all | 重启所有设备。 | | -i, –index | 通过指定设备的 index 来重启指定的设备。输入格式示例如下:空格分隔 : -i 0 1 2花括号中用逗号分隔 ,例如 -i {0,1,2} | ## 命令示例 ### 显示摘要信息 以 SPU 卡为单位显示摘要信息。 ```Bash $ mx-smi Thu Apr 3 14:19:12 2025 ╭────────────────────────────────────────────────────────────────────────────────────╮ │MOFFETT-SMI 2.8.0 Driver Version 3.11.0 SOLA Version 3.11.0 │ ╰────────────────────────────────────────────────────────────────────────────────────╯ Card ┌────────────────────────────────────────────────────────────────────────────────────┐ │Index Name Freq. Voltage Temp. Pwr Util Bus ID Memory-Usage SN │ ├────────────────────────────────────────────────────────────────────────────────────┤ │Card0 00S30-00A 700MHz 925mV 21C 3W 0% 0:67:00.0 0MiB/61440MiB 2024083080112│ └────────────────────────────────────────────────────────────────────────────────────┘ Processes ┌────────────────────────────────────────────────────────────────────────────────────┐ │Index PID Process Name Memory Usage│ ├────────────────────────────────────────────────────────────────────────────────────┤ │ [No running processes found] │ └────────────────────────────────────────────────────────────────────────────────────┘ ``` - Card (卡信息) **注意**:*以卡为单位展示时,Index/Name/SN 同一张卡的值相同。Pwr 默认展示板卡功率,若不支持获取板卡功率,则展示卡中所有设备的功率总和,Memory-Usage,展示的值为卡中所有设备的总和。其他项均展示卡中 Bus ID 最低的设备对应的信息。* | **参数** | **说明** | | ------------ | ------------------------------------------------------------ | | Index | 卡的索引 | | Name | 产品名 (同一张卡一样) | | Freq. | 卡的频率 | | Voltage | 卡的电压 | | Temp. | 卡的温度 | | Pwr | power,板卡功率,对不支持获取板卡功率的卡则展示为卡上设备总功率 | | Util | 卡的使用率 (负载) | | Bus ID | 总线 ID,格式为 “domain:bus:device.function” | | Memory-Usage | 卡的内存使用情况,格式为 “usage / total” ,即(已使用内存 / 内存总量) | | SN | 卡的序列号,是卡的唯一标识 。 | - Processes (进程信息) | **参数** | **说明** | | ------------ | ------------------------------------------------------------ | | index | 运行该进程的卡编号以及对应的设备 ID,输出格式为:(卡编号:设备 ID) | | PID | 进程 ID。 | | Process Name | 进程名,最大展示长度为 32 个字符,超出长度后以 … 省略开头的字符 | | Memory Usage | 进程占用的内存大小 | ### 显示工具版本 ```Bash $ mx-smi --version 2.8.0 ``` ### 显示设备列表 ```Bash $ mx-smi list -i {0,1,2} Thu Apr 3 14:19:59 2025 ╭────────────────────────────────────────────────────────────────────────────────────╮ │MOFFETT-SMI 2.8.0 Driver Version 3.11.0 SOLA Version 3.11.0 │ ╰────────────────────────────────────────────────────────────────────────────────────╯ Devices ┌────────────────────────────────────────────────────────────────────────────────────┐ │Index Name Freq. Voltage Temp. Pwr Util Bus ID Memory-Usage SN │ ├────────────────────────────────────────────────────────────────────────────────────┤ │ + 00S30-00A 3W 2024083080112│ │ 0 700MHz 925mV 20C 1W 0% 0:67:00.0 0MiB/20480MiB │ │ 1 700MHz 935mV 21C 1W 0% 0:68:00.0 0MiB/20480MiB │ │ 2 700MHz 925mV 22C 1W 0% 0:69:00.0 0MiB/20480MiB │ └────────────────────────────────────────────────────────────────────────────────────┘ Processes ┌────────────────────────────────────────────────────────────────────────────────────┐ │Index PID Process Name Memory Usage│ ├────────────────────────────────────────────────────────────────────────────────────┤ │ [No running processes found] │ └────────────────────────────────────────────────────────────────────────────────────┘ ``` > **注意**:*以设备为单位展示时,每张卡上的设备位于统一区域,并展示该卡的卡名、板卡功率和 SN。对于不支持获取板卡功率的卡,则相应位置展示卡上设备总功率。* - Devices (设备信息) | **参数** | **说明** | | ------------ | ------------------------------------------------------------ | | Index | 设备的索引 | | Name | 产品名 | | Freq. | 设备的频率 | | Voltage | 设备的电压 | | Temp. | 设备的温度 | | Pwr | power,设备的功率(设备行) 或 板卡功率(卡名行) | | Util | 设备的使用率 (负载) | | Bus ID | 总线 ID,格式为 “domain:bus:device.function” | | Memory-Usage | 设备的内存使用情况,格式为 “usage / total” (已使用 / 总量) | | SN | 卡的序列号,是卡的唯一标识 。 | - Processes (进程信息) | **参数** | **说明** | | ------------ | ------------------------------------------------------------ | | index | 运行该进程的设备 ID | | PID | 进程 ID | | Process Name | 进程名称,最大展示长度为 32 个字符,超出长度后以 … 省略开头的字符 | | Memory Usage | 进程占用的内存大小 | ### 显示指定设备的信息 ```Bash $ mx-smi list -i 0 Thu Apr 3 14:20:39 2025 ╭────────────────────────────────────────────────────────────────────────────────────╮ │MOFFETT-SMI 2.8.0 Driver Version 3.11.0 SOLA Version 3.11.0 │ ╰────────────────────────────────────────────────────────────────────────────────────╯ Devices ┌────────────────────────────────────────────────────────────────────────────────────┐ │Index Name Freq. Voltage Temp. Pwr Util Bus ID Memory-Usage SN │ ├────────────────────────────────────────────────────────────────────────────────────┤ │ + 00S30-00A 1W 2024083080112│ │ 0 700MHz 925mV 21C 1W 0% 0:67:00.0 0MiB/20480MiB │ └────────────────────────────────────────────────────────────────────────────────────┘ Processes ┌────────────────────────────────────────────────────────────────────────────────────┐ │Index PID Process Name Memory Usage│ ├────────────────────────────────────────────────────────────────────────────────────┤ │ [No running processes found] │ └────────────────────────────────────────────────────────────────────────────────────┘ ``` ### **查询**设备的详细信息 ```Bash $ mx-smi query -i 0 Timestamp : Thu Apr 3 14:21:05 2025 Driver Version : 3.11.0 SOLA Version : 3.11.0 Attached Devices : 3 Device 0 Product Name : 00S30-00A SPU Cores Number : 4 FW Version : 1.0.17 MCU Version : 4X011 Serial Number : 2024083080112 UUID : 0201000000-0000-0000-0000-00AKK6950980 Board Id : 0x000 PCI Bus : 0x67 Device : 0x00 Domain : 0x0000 Bus Id : 0:67:00.0 Device Id : 0x70301f36 Sub System Id : 0x70001f36 Memory Usage Total : 20480 MiB Reserved : 4484 MiB Used : 0 MiB Free : 15996 MiB Utilization Core 0 : 0 % Core 1 : 0 % Core 2 : 0 % Core 3 : 0 % Max : 0 % Min : 0 % Avg : 0 % ECC Errors Volatile Device Memory Corrected : 0 Device Memory Uncorrected : 0 Aggregate Device Memory Corrected : 11 Device Memory Uncorrected : 0 Temperature : 21 C Power Power Draw : 1 W Power Limit : 83 W Frequency : 700 MHz Voltage : 925 mV Processes ``` ### 查询设备的指定信息 默认第一行展示输出的属性名。后续每一行为用户指定的设备的属性信息。 ```Bash $ mx-smi select -f {index,pci.bus_id,board} -i 2 1 0 index, pci.bus_id, board 2, 0:69:00.0, 0 1, 0:68:00.0, 0 0, 0:67:00.0, 0 ``` ### 查询板卡的指定信息 ```Bash $ mx-smi select --board-field board board.power -b 0 1 2 board, board.power 0, 7 W 1, 3 W 2, 4 W ``` ### 循环输出设备的指定信息 **注意**:*使用 `-l `参数时会以指定时间间隔(单位:秒)不断输出命令结果,默认时间间隔是 5 秒,如需停止打印结果,请按`Ctrl+C`。* ```Bash $ mx-smi list -l 2 Thu Apr 3 14:25:26 2025 ╭────────────────────────────────────────────────────────────────────────────────────╮ │MOFFETT-SMI 2.8.0 Driver Version 3.11.0 SOLA Version 3.11.0 │ ╰────────────────────────────────────────────────────────────────────────────────────╯ Devices ┌────────────────────────────────────────────────────────────────────────────────────┐ │Index Name Freq. Voltage Temp. Pwr Util Bus ID Memory-Usage SN │ ├────────────────────────────────────────────────────────────────────────────────────┤ │ + 00S30-00A 3W 2024083080112│ │ 0 700MHz 925mV 20C 1W 0% 0:67:00.0 0MiB/20480MiB │ │ 1 700MHz 935mV 21C 1W 0% 0:68:00.0 0MiB/20480MiB │ │ 2 700MHz 925mV 22C 1W 0% 0:69:00.0 0MiB/20480MiB │ └────────────────────────────────────────────────────────────────────────────────────┘ Processes ┌────────────────────────────────────────────────────────────────────────────────────┐ │Index PID Process Name Memory Usage│ ├────────────────────────────────────────────────────────────────────────────────────┤ │ [No running processes found] │ └────────────────────────────────────────────────────────────────────────────────────┘ Thu Apr 3 14:25:28 2025 ╭────────────────────────────────────────────────────────────────────────────────────╮ │MOFFETT-SMI 2.8.0 Driver Version 3.11.0 SOLA Version 3.11.0 │ ╰────────────────────────────────────────────────────────────────────────────────────╯ Devices ┌────────────────────────────────────────────────────────────────────────────────────┐ │Index Name Freq. Voltage Temp. Pwr Util Bus ID Memory-Usage SN │ ├────────────────────────────────────────────────────────────────────────────────────┤ │ + 00S30-00A 3W 2024083080112│ │ 0 700MHz 925mV 21C 1W 0% 0:67:00.0 0MiB/20480MiB │ │ 1 700MHz 935mV 21C 1W 0% 0:68:00.0 0MiB/20480MiB │ │ 2 700MHz 925mV 22C 1W 0% 0:69:00.0 0MiB/20480MiB │ └────────────────────────────────────────────────────────────────────────────────────┘ Processes ┌────────────────────────────────────────────────────────────────────────────────────┐ │Index PID Process Name Memory Usage│ ├────────────────────────────────────────────────────────────────────────────────────┤ │ [No running processes found] │ └────────────────────────────────────────────────────────────────────────────────────┘ ``` ### 重启设备 在 SPU 设备状态异常时,您可以尝试复位设备。复位 SPU 所有设备的命令示例如下: > **注意**: > > - *重启指定的设备并加载固件,需要获取 sudo 权限。* > - *同一时间仅能执行一个重启操作。* > - *操作记录保存在`/var/log/moffett/sola/smi.log`中。* ```Bash $ sudo mx-smi reboot --all check devices status... wait devices rebooting... package boot image version info: version: V3.110 build time: Mar 31 2025 17:50:40 reboot finished: success 3, failed 0, skip 0 ```