3. 命令介绍

mx-smi命令说明,可以通过在工作环境中执行 man mx-smi 获取。

3.1. 通用选项

mx-smi [-h|--help]

打印使用帮助信息。

mx-smi [-v|--version]

打印mx-smi的版本信息。

mx-smi [-j|--json]

以JSON格式显示板卡信息。

3.2. 归纳选项

mx-smi (直接回车)

mx-smi命令不添加任何选项和参数,默认归纳并按照Board显示GPU的主要信息,显示信息包括功耗,内存,温度,版本,使用率,GPU持久模式状态,sGPU模式状态及进程等。

若开启sGPU且已有新建的sGPU,则还会显示sGPU信息列表。

3.3. 查询选项

mx-smi --show-temperature

显示板卡上温度传感器读取的温度,单位是摄氏度。

mx-smi --show-version

显示BIOS,驱动和Firmware的版本信息。

mx-smi --show-hbm-bandwidth

显示显存的动态带宽信息。

mx-smi --show-pcie-bandwidth

显示PCIe动态带宽信息。

mx-smi --show-usage

显示GPU、VPU的使用率。使用率反应过去一段采样周期内硬件资源的使用情况。C588支持使用 --die 进行分die显示。

mx-smi --show-memory

显示存储资源的使用情况,包括板卡显存和板卡可以访问的系统内存。C588支持使用 --die 进行分die显示。驱动与固件会预留使用小于1GB的显存,所以在无进程时也会看到一部分显存已经被占用。

mx-smi --show-board-power

显示板卡当前的电压,电流和功耗信息。

mx-smi --show-pmbus-power

显示芯片内的电压,电流和功耗信息。C588支持使用 --die 进行分die显示。

mx-smi --show-eeprom

显示EEPROM记录的信息,包括板卡版本,板卡序列号等。

mx-smi --show-clock

显示板卡常用IP(如XCORE,MC等)的时钟信息。C588支持使用 --die 进行分die显示。

mx-smi --show-clocks all

显示板卡的时钟信息。C588支持使用 --die 进行分die显示。

mx-smi --show-dpm cur

显示当前的性能等级。C588支持使用 --die 进行分die显示。

mx-smi --show-dpm all

显示支持的性能等级及其对应的时钟和电压信息,为设置performance level做参考。

mx-smi --show-dpm-max

显示支持的性能等级的最高级别。

mx-smi --show-pcie

显示PCIe当前及最大带宽和速率。

mx-smi --show-sn

显示整板序列号和芯片序列号。

mx-smi --show-process

显示当前运行的占用设备的进程信息。C588支持使用 --die 进行分die显示。

mx-smi --show-all-process

显示当前运行的所有进程信息。C588支持使用 --die 进行分die显示。

mx-smi --kill-all-process

停止当前所有运行的进程。

mx-smi --show-power-mode

显示板卡的电源模式,分为普通模式和高功耗模式(增加电压),未用 -i 指定板卡时,默认显示所有板卡的电源模式信息。

mx-smi --show-persistence-mode

显示板卡的持久模式,可使板卡即使在没有活动进程调用时,也保持在高性能状态,而不会自动切换到低功耗模式。未用 -i 指定板卡时,默认为 Disable

mx-smi --show-event [aer_ue|aer_ce|synfld|dbe|mmio|all]

显示驱动关键事件信息,可指定显示相应pci错误类型或全部类型的关键事件信息,包括大小,次数,第一次发生时间,事件内容等。 未用 -i 指定板卡时,默认显示所有板卡的关键事件信息。详细信息参见表 3.1

表 3.1 KMD关键事件信息

事件类型

说明

aer_ue

PCIe AER uncorrectable error,仅PF模式支持查询。

aer_ce

PCIe AER correctable error,仅PF模式支持查询。

synfld

PCIe syncflood error,仅PF模式支持查询。

dbe

PCI device base error,仅PF模式支持查询。

mmio

PCI mmio invalid(disconnected),PF与VF模式均支持查询。

mx-smi --show-clk-tr

显示板卡降频原因信息。 Active 表示对应项为降频原因;全为 Not Active 表示当前未降频。未用 -i 指定板卡时,默认显示所有板卡的降频原因信息。

mx-smi --show-unavailable-reason

当使用 mx-smi -L 命令查看设备状态为 not available 时,可用以上命令查看具体不可用原因以及参考建议。

mx-smi --show-hwinfo

显示设备硬件汇总信息,包括产品名称,芯片系列,厂商信息,板卡SN,板卡PN,芯片序列号,Memory类型及容量。

mx-smi --show-sysinfo

显示设备系统汇总信息,包括驱动GPU id,Node id,Render id和Card id。

mx-smi --count-ecc

显示设备ECC错误及坏页的计数信息。ECC错误包括SRAM及DRAM的可纠正和不可纠正的ECC计数,数值会在重启后清零。坏页计数信息重启不清零。

-i <GPU-ID>, --index <GPU-ID>

显示指定板卡的信息。如果没有指定,默认显示全部板卡的信息。 GPU-ID 是从0开始的自然数,可以通过 -L--list 获取板卡的ID信息。可指定一个或多个 GPU-ID ,多个 GPU-ID 用“,”分隔,如“0,1,5”,“0-2”,“0-4,6”,“all”等。

-o, fileName, --output fileName

可以将命令输出写入csv格式的文件中,支持显示的命令有:

  • --show-temperature

  • --show-board-power

  • --show-version

  • --show-usage

  • --show-memory

  • --show-pcie

  • --show-dpm cur

  • --show-pmbus-power

  • --show-vpu

-l ms, --loop ms

以特定的间隔周期持续显示板卡信息,单位是毫秒。执行 Ctrl+C 可退出持续查询。

示例

以500ms周期持续显示所有卡的温度,功耗,使用率信息:

mx-smi --show-temperature --show-board-power --show-usage -l 500

以1s周期将GPU0 - GPU3的温度,功耗,使用率信息写文件:

mx-smi --show-temperature --show-board-power --show-usage -i 0-3 -l 1000 -o sample.csv

3.4. 控制选项

mx-smi [-u|--vbios-upgrade] <vbios_bin_file>

默认对所有板卡进行BIOS固件升级。需要root权限。当MMio地址空间不足时,会有相应提示,用户可选择继续升级(Y)或者不升级(N)。若继续升级有可能导致系统无法启动。

若当前Bar空间与要升级的BIOS需要的Bar空间不一致时,会分别列出需要的Bar空间。

需要对系统进行reboot或者warm reset以使新固件生效。

mx-smi [-r|--reset] -i <GPU-ID>

对指定的卡执行warm reset。必须使用 -i <GPU-ID>--index <GPU-ID> 选项以指定一个特定的板卡。

需要root权限。如果warm reset失败(设备无法恢复),需要重启服务器,对同一组使用MetaXLink连接的卡,只需做一次warm reset,详情参见《沐曦通用GPU Warm Reset使用指南》。

备注

warm reset功能目前仅在H3C UniServer R5300 G6服务器型号中经过验证,在未经验证的机型中使用warm reset功能可能会导致功能失效等不可预期的结果。

mx-smi --set-power-mode [0|1]

-i 指定板卡进行电源模式设置, 0Normal1High。C588支持使用 --die 进行分die设置。

mx-smi --set-persistence-mode [0|1]

-i 指定板卡进行GPU持久模式设置, 0 为关闭, 1 为打开。默认为关闭,重启后恢复默认值(关闭)。

mx-smi --set-dpm-max <IP,DpmLevel>

对指定的IP设置最大性能等级。必须使用 -i <GPU-ID>, --index <GPU-ID> 选项以指定一个特定的板卡。需要root权限。在设置前可先使用 --show-dpm-max 查看有哪些可设置的IP。

例如,执行以下命令,将板卡1的 xcore 模块的最大性能等级有效配置设置成level 7:

mx-smi --set-dpm-max xcore,7 -i 1

3.5. RAS选项

mx-smi ras子命令用于显示与芯片可靠性,可用性,安全性相关的信息。

可显示IP的错误统计。例如,执行以下命令,显示板卡0相关的corrected error和uncorrected error统计数目:

mx-smi ras --show-count -i 0

可显示IP的错误状态。例如,执行以下命令,显示板卡0相关的错误状态:

mx-smi ras --show-status -i 0

3.6. MXLK选项

mx-smi mxlk子命令用于显示与MetaXLink相关的信息。

mx-smi mxlk --show

显示沐曦通用GPU设备之间MetaXLink带宽和速率。

mx-smi mxlk --show-peer

显示通过MetaXLink与沐曦通用GPU设备相连的设备信息。

mx-smi mxlk --show-state

显示沐曦通用GPU设备之间MetaXLink连接的状态(启用/禁用)和各端口的状态( up/down )。

mx-smi mxlk --set-state [0|1]

启用/禁用MetaXLink连接,用于修复因训练失败等原因导致端口状态为 down 的情况。操作步骤为先禁用( 0 )再启用( 1 )。

mx-smi mxlk --show-aer

显示MetaXLink的错误统计。

mx-smi mxlk --show-traffic-stat

显示MetaXLink port的TX(发送数据)与RX(接收数据)字节总数。

3.7. 查询拓扑关系

mx-smi topo子命令用于查询主机上沐曦通用GPU设备之间的拓扑关系。

mx-smi topo [-m|--matrix]

显示沐曦通用GPU设备之间的连接方式,以及CPU亲和性、NUMA node亲和性等信息。

mx-smi topo [-d|--distance]

显示沐曦通用GPU设备之间连接的相对距离信息。

mx-smi topo [-t|--tree]

显示沐曦通用GPU设备拓扑树。

mx-smi topo [-n|--nic]

显示沐曦通用GPU设备与网卡之间的连接方式。

备注

MetaXLink相关命令已移动到mxlk子命令中,请参见 3.6 MXLK选项

3.8. VM虚拟化管理

mx-smi vm子命令用于GPU卡虚拟化管理。

备注

此命令仅支持在物理机中操作。

mx-smi vm --enable-vf <vf_num>

开启虚拟化,一张GPU卡可支持虚拟化的个数MXC500系列为1,2,4,8;MXC600系列及X302系列为1,2,4。

mx-smi vm --set-vf-num <vf_num> -i <PF_Device_id>

当开启虚拟化后,可调整某个PF卡的VF个数,单个服务器总共支持64个VF。

mx-smi vm --disable-vf

关闭虚拟化功能。

mx-smi vm --show-vf

显示虚拟化后的GPU信息。

3.9. 光模块信息(当前仅适用于C500X)

mx-smi om子命令用于显示光模块信息。

mx-smi om --show-status

显示光模块电压,温度,模块状态,线缆在位情况(0 表示不在位, 1 表示在位),通道状态及接收状态信息。

mx-smi om --show-info

显示光模块固件信息。

mx-smi om --show-rx-status

显示光模块接收的详细信息。

3.10. 轮询设备状态信息

mx-smi dmon子命令用于轮询显示设备状态信息,包括温度,功耗,VPUE,VPUD和GPU使用率,板卡显存及内存;时间间隔默认为1000ms。执行 Ctrl+C 可退出轮询。

支持轮询显示的命令有:

  • --show-temperature

  • --show-board-power

  • --show-usage

  • --show-memory

  • --total-memory

  • --show-index

  • --show-render

  • --show-bdf

  • --show-clock

-l ms, --loop ms

以特定的间隔周期持续显示板卡信息,单位是毫秒。执行 Ctrl+C 可退出持续查询。

[-c, --count] <count>

指定次数轮询信息。

例如,执行以下命令,可轮询100次板卡0的温度及功耗信息:

mx-smi dmon --show-temperature --show-board-power -i 0 -c 100

3.11. MISC

mx-smi misc子命令用于显示多种类的信息,如严重事件信息及日志级别等。

mx-smi misc --show-board-type

显示板卡类型。

mx-smi misc --show-critical-event

显示PCIe及MetaXLink严重错误信息。若有,会显示类型、连接状态、发生严重错误的原因和时间。

mx-smi misc --show-mmio-state

显示PCI MMIO状态;当状态异常时显示第一次发生异常的时间。

mx-smi misc --show-pcie-event [--detail]

显示PCIe计数不为0的历史事件,需使用root权限查看。 --detail 会显示所有PCIe事件。

mx-smi misc --clear-pcie-event -i <device id>

清除PCIe历史事件,需指定 device id 并使用root权限操作。

mx-smi misc --show-board-power-limit

查看设备功耗设置,包括默认值,当前值,上限及下限。(仅部分系列支持)

mx-smi misc --set-board-power-limit

设置设备当前功耗值,设置范围请参考上下限,不可超出范围。(仅部分系列支持)

mx-smi misc --show-fw-loglevel

显示Firmware(MXC500系列ip:smp0,smp1,ccx0,ccx1,ccx2,xcore;MXC600系列ip:smp0,smp1,xcore,eth)的日志级别。

mx-smi misc --set-fw-loglevel <ip>,<loglevel_number>

设置Firmware(MXC500系列ip:smp0,smp1,ccx0,ccx1,ccx2,xcore;MXC600系列ip:smp0,smp1,xcore,eth)的日志级别(5:debug,4:info,3:warn,2:error,1:fatal,0:none)。

mx-smi misc --show-ecc-state

显示设备显存ECC模式,默认为 Enable

mx-smi misc --show-power-state

显示设备各IP电源状态,如Xcore,显存,DMA及PCIe等。

mx-smi misc --show-vpu-bandwidth

显示视频处理单元编解码实时带宽,单位为MBytes/s。

mx-smi misc --show-update-toggle

显示vbios升级开关,默认允许在虚拟机或容器中升级VBIOS,为 Enable,在虚拟机或容器中可正常升级VBIOS。

mx-smi misc --set-update-toggle

设置vbios升级开关以用于控制在虚拟机或容器中是否可以升级VBIOS,允许升级为 Enable,不能升级为 Disnable。当为 Disnable 时升级VBIOS,会提示不支持。

mx-smi misc --collect-chip-sn

收集服务器上的芯片SN并存入当前执行路径下的 metax_chip_sns.txt 文件中。

mx-smi misc --show-op-mode

显示板卡的运维模式,默认为 Normal

mx-smi misc --set-op-mode

设置板卡的运维模式, 1 为维护模式, 0 为正常模式,进入维护模式后,不可运行程序。

3.12. ETH(仅部分系列支持)

mx-smi eth子命令用于显示ETH相关信息。

mx-smi eth --show-bandwidth

显示ETH动态带宽信息。

mx-smi eth --show-usage

显示ETH使用率。

mx-smi eth --show-mac-addr

显示ETH Mac信息。

mx-smi eth --show-ras-count

显示ETH IP的corrected error和uncorrected error统计数目。

mx-smi eth --show-ras-status

显示ETH IP的错误状态。

mx-smi eth --show-clock

显示ETH的时钟信息(需root权限)。

mx-smi eth --show-status

显示ETH使能状态(需root权限)。

-l ms, --loop ms

eth子命令中的命令支持以特定的间隔周期持续显示板卡信息,单位是毫秒。执行 Ctrl+C 可退出持续查询。

示例

以500ms周期持续显示所有卡的ETH 带宽及使用率,功耗,使用率信息:

mx-smi eth  --show-bandwidth --show-usage -l 500

3.13. sGPU切分选项

为了资源粒度可以灵活配置,sGPU(sliced GPU)功能可实现将一个父设备(物理设备)切分为多个子设备(sGPU),每个父设备最多可创建16个子设备(若按照默认配置显存 4GB,算力为父设备的5%创建,则由于显存大小的限制,无法创建出第16个子设备)。

表 3.2 不支持sGPU型号列表

GPU系列

不支持的型号

MXC500系列

C588

备注

  • 虚拟化模式不支持此功能。

  • 不支持sGPU的型号参见表 3.2

mx-smi sgpu -h

查看sGPU使用帮助信息。

mx-smi sgpu --enable -i <GPU-ID>

启用设备sGPU功能,须用 -i 指定设备(需root权限)。默认为禁用。

mx-smi sgpu --show-mode

查看设备sGPU功能是否启用,可用 -i 指定设备。

mx-smi sgpu --disable

禁用设备sGPU功能,须用 -i 指定设备(需root权限),当子设备正在被使用时,则无法禁用sGPU功能。

mx-smi sgpu -i <GPU-ID> --create

新建指定父设备的子设备,须用 -i 指定父设备。默认创建一个显存为4 GB,算力为父设备 5%的子设备,不创建别名。 若需创建多个可用 -n 传入数量;可用 --vram xxx --compute xxx --alias xxx 指定创建的子设备的显存大小、算力占比、别名等。具体资源设置方法参见表 3.3

表 3.3 创建子设备时资源设置项说明

可设置项

说明

--vram

分配给子设备的显存,粒度为1M。例如,可设置为128M、8G或5%

--compute

分配给子设备的父设备算力百分比,粒度为1%,单位为%,例如,可设置为22

--alias

分配给子设备的别名,最大长度为31字节,超出部分会被截断

mx-smi sgpu -i <GPU-ID> --set <SGPU-ID> --vram <vram_size> --compute [0-100] --alias <name>

修改已建子设备的显存配额,算力配额及别名。

mx-smi sgpu

可查看所有父设备下的子设备信息,包括父设备编号、时间片大小、调度策略、子设备 SGPU-IDMinorID 、优先级、显存配额、算力配额、子设备调度策略以及别名等。可用 -i 指定父设备查看该父设备下所有子设备的信息。

mx-smi sgpu --show-remain

查看父设备剩余可分配额度,可用 -i 指定父设备。

mx-smi sgpu --show-usage

查看子设备使用率,可用 -i 仅指定父设备或用 -i-s 指定父设备及子设备。

mx-smi sgpu --show-memory

查看子设备显存使用情况,可用 -i 仅指定父设备或用 -i-s 指定父设备及子设备。

mx-smi sgpu --show-latency

查看子设备调度延时统计信息,可用 -i 指定父设备。

mx-smi sgpu --show-timeslice

查看父设备时间片大小,可用 -i 指定父设备。默认为10ms。

mx-smi sgpu --set-timeslice xx -i <GPU-ID>

设置父设备时间片大小,单位为ms,须用 -i 指定父设备。

mx-smi sgpu --show-schedclass

查看调度策略,可用 -i 指定父设备。

表 3.4 子设备调度策略说明

调度类型

说明

0:(Best Effort)争抢模式

默认调度策略。各子设备不限算力,父设备上有剩余算力即可使用

1:(Fixed Share)固定配额

各子设备有固定的算力配额,无法超过固定配额使用

2:(Burst Share)保证配额加弹性

各子设备有固定的算力配额,父设备上还有空闲算力可被使用

mx-smi sgpu --set-sched-class [0|1|2] -i <GPU-ID>

设置调度策略(需root权限),须用 -i 指定设备。

mx-smi sgpu --remove <SGPU-ID> -i <GPU-ID>

移除指定父设备的指定子设备(需root权限),须用 -i 指定设备。当子设备正在被使用时,则无法关闭sGPU功能。

mx-smi sgpu --set-queue-priority [0|1] -s <SGPU-ID> -i <GPU-ID>

设置sGPU队列优先级(需root权限),须用 -i 指定父设备, -s 指定子设备。 0 表示 Normal1 表示 High,修改后可用 mx-smi sgpu 查看 Priority 列。