1. 概述
mx-diagease(沐曦一键诊断工具)主要提供对单节点曦云®系列设备进行一键诊断的功能,诊断包括PCIe诊断,MetaXLink诊断(如有),内存诊断,电源功耗诊断和GPU压测。
mx-diagease还提供了一种辅助监控模式,工具在该模式下将持续收集多个电源及功耗相关数据,方便用户监测相关指标是否存在异常。
备注
在使用mx-diagease工具之前,需确认已加载曦云系列GPU驱动。驱动安装参见《曦云®系列通用计算GPU驱动安装指南》中“安装驱动”章节。
一键诊断时,请确保诊断程序单独运行在设备上,避免其他进程对诊断结果造成影响。可用
mx-smi –show-all-process查看是否有用户进程。mx-diagease工具目前不支持对虚拟化后的曦云系列GPU进行检测,也不支持sGPU切分后进行检测。
本文档中,输出结果均以曦云C500为示例。
2. 安装及使用方法
2.1. 安装与卸载
2.1.1. 安装
从MXMACA 2.27.0版本起,MXMACA SDK包安装过程中会默认安装mx-diagease工具。安装完成后,mx-diagease放置在 /opt/maca/bin/ 目录下,并会在 /usr/bin 目录下创建软链接。
2.1.2. 卸载
MXMACA SDK卸载后,mx-diagease工具会自动卸载。MXMACA SDK的卸载参见《曦云®系列通用计算GPU快速上手指南》中“卸载MXMACA编程环境”章节。
2.2. 使用参数说明
无参数时,则立即对所有板卡执行诊断。
2.2.1. mx-diagease参数说明
参数 |
描述 |
|---|---|
|
对指定板卡进行诊断。如果没有指定,默认诊断全部板卡。ID是从0开始的自然数,可以通过 |
|
设置mx-diagease日志级别。0:关闭日志打印;1:error;2:warn;3:info(默认值);4:debug。 |
|
进入监控模式,可持续监控板卡各指标状态,实时打印异常信息,Ctrl+C退出后汇总监测结果。 |
|
在监控模式下指定监控时长,支持传入格式为 例如: 持续监控100秒: 持续监控1小时22分35秒: |
|
生成默认的指标配置文件供诊断功能使用。 |
|
在使用诊断功能时,可指定json格式的指标配置文件来检测设备。 |
|
检查PCIe及MetaXLink速率,带宽及smp状态,传入 |
|
列出所有设备。 |
2.3. 日志文件
mx-diagease运行时的日志文件默认保存在运行目录 mxdiag-log/mxdiag_<date>.log 下。其中 <date> 表示程序启动时的时间。同一日期的日志不清除不覆盖,会追加。
3. 诊断模式
3.1. 诊断项目
诊断项目 |
内容 |
|---|---|
内存诊断 |
诊断设备内存的完整性,稳定性和可靠性。
|
PCIe诊断 |
诊断设备PCIe链路的完整性和稳定性。 包含H2D单向带宽诊断(MB/s),D2H单向带宽诊断(MB/s),HD双向带宽诊断(MB/s),设备间P2P诊断(MB/s)。 |
GPU Stress诊断 |
GPU压测,诊断GPU稳定性。诊断在高负载下整卡稳定性和AP稳定性。配置文件及结果对应 |
MetaXLink诊断 |
诊断设备MetaXLink链路的完整性和稳定性。 包含设备间单双向带宽诊断(MB/s)。 |
电源管理诊断 |
诊断设备功耗,温度及动态电源管理相关指标。 |
PCIe ACS检查 |
检查物理机PCIe ACS状态,建议为关闭状态。PCIe ACS 会强制让PCIe 流量经过RC,降低PCIe p2p性能。关闭PCIe ACS需要关闭IOMMU。若为开启状态,诊断时会打屏,且提供可参考的关闭方法。 |
IOMMU 检查 |
检查IOMMU状态,建议为关闭状态。开启IOMMU可能会影响部分多卡的性能测试。若为开启状态,诊断时会打屏,且提供可参考的关闭方法。 |
主机CPU工作模式检查 |
检查主机CPU工作模式,建议设置为 |
3.2. 诊断配置文件
执行以下命令,在当前目录生成默认配置文件 diagease-config.json,为后续诊断功能使用。
mx-diagease --generate-template
PCIe
speed单位为GT/s,PCIe带宽和MetaXLink带宽单位为MB/s。内存诊断共有11个种类,
test_indexes中可指定诊断类别,默认11种都诊断。0:[Address test, walking 1 bit]
1:[Address test, own address]
2:[Moving inversions, ones&zeros]
3:[Moving inversions, 8 bit pattern]
4:[Moving inversions, random pattern]
5:[Block move, 64 moves]
6:[Moving inversions, 32 bit pattern]
7:[Random number sequence]
8:[Modulo 20, random pattern]
9:[Bit fade test, 2 patterns]
10:[Memory stress]
诊断类别的详细介绍可参见 开发者社区 。
GPU Stress诊断的一个
iteration大概有3-5秒。如要进行12小时的压力测试,可将iteration的值设置为大于15000。
生成的文件如下:
{
"pcie": {
"speed": 32,
"width": 16,
"bw_h2d": 47000,
"bw_d2h": 52000,
"bw_h2d_d2h": 77000,
"bw_uni_p2p": 36000,
"bw_bi_p2p": 73000
},
"metaxlink": {
"bw_uni_p2p": 4900,
"bw_bi_p2p": 90000
},
"memorytest": {
"test_indexes": [0,1,2,3,4,5,6,7,8,9,10]
},
"stress": {
"iteration":100
}
}
3.3. 诊断命令
mx-diagease [--configfile]
执行命令需要sudo权限。
执行以上命令,输出所有沐曦设备Memory,PCIe,GPU Stress,MetaXLink,Power诊断信息。
可在mx-diagease运行目录下 mxdiag-log 文件夹中查看日志。
目前使用默认配置文件进行诊断,时间在25-40分钟左右。如用户使用自定义配置文件(基于以上 diagease-config.json 文件修改诊断项目,诊断时间和诊断目标等),可用 --configfile 传入。不传则系统按照程序默认配置(其中带宽相关诊断项无目标值,仅确保连通性)进行检测。
输出结果
监测结果若有一项显示FAIL,则最终结果为FAIL。显示如下所示:
MetaX Diagnostic tool Version: X.X.XX
Product : C500
Kmd version : X.X.X
Bios version : X.XX.X.X
Maca version : X.XX.X.X
+----------------+----------------+----------+
| Device Id | Test | Result |
+----------------+----------------+----------+
| x | memory | PASS |
| | pcie | FAIL |
| | stress | PASS |
| | Metaxlink | PASS |
| | power | PASS |
+----------------+----------------+----------+
##############################
# #
# Final Result: FAIL #
# #
##############################
4. 监控模式
4.1. 监控项目
监测类别 |
异常 |
异常日志信息 |
|---|---|---|
功耗监测 |
出现超功耗 |
Device (xxx) power exceeds limit. |
获取设备功耗失败 |
Device (xxx) get power failed. |
|
过温监测 |
出现过温 |
Device (xxx) vr temperature exceeds limit. Device (xxx) chip temperature exceeds limit. Device (xxx) board temperature exceeds limit. |
CTF |
Device (xxx) chip temperature fault. Device (xxx) board temperature fault. |
|
获取设备温度失败 |
Device (xxx) get temperature failed. |
|
PCC监测 |
出现PCC |
Device (xxx) warning Pcc Device (xxx) critical Pcc warning: 单位时间pcc counter占比不超过3%。 critical: 单位时间pcc counter占比超过3%。 |
操作counter失败 |
Device (xxx) set counter failed: Pcc Device (xxx) get counter failed: Pcc |
|
Counter计数异常清除 |
Device (xxx) cleared counter unexpectedly: Pcc |
|
Power brake监测 |
出现Power brake |
Device (xxx) warning Pwrbrk Device (xxx) critical Pwrbrk warning: 单位时间pwrbrk counter占比不超过3%。 critical: 单位时间pwrbrk counter占比超过3%。 |
操作counter失败 |
Device (xxx) set counter failed: Pwrbrk Device (xxx) get counter failed: Pwrbrk |
|
Counter计数异常清除 |
Device (xxx) cleared counter unexpectedly: Pwrbrk |
|
DI/DT监测 |
出现DI/DT |
Device (xxx) warning Didt Device (xxx) critical Didt warning: 单位时间counter占比不超过3%。 critical: 单位时间didt counter占比超过3%。 |
操作counter失败 |
Device (xxx) set counter failed: Didt Device (xxx) get counter failed: Didt |
|
Counter计数异常清除 |
Device (xxx) cleared counter unexpectedly: Didt |
|
Power state(deepsleep)监测 |
Power state异常 |
Device (xxx) critical power state error. |
获取设备时钟失败 |
Device (xxx) get clocks failed. |
4.2. 监控命令
mx-diagease -m -t <time>
执行命令需要sudo权限。
-t 指定监控时长,支持传入格式为 [seconds] 或 [hh:mm:ss],若未传入该参数默认持续进行,需 Ctrl+C 退出mx-diagease,显示汇总信息。
执行以上命令,持续监控板卡功耗模块,count数据等,如有异常,将实时打印异常指标信息。可在mx-diagease运行目录下 mxdiag-log 文件夹中查看日志。
输出结果
退出后若监测结果为健康,显示如下所示:
MetaX Diagnostic tool Version: X.X.XX Product : C500 Kmd version : X.X.X Bios version : X.XX.X.X Maca version : X.XX.X.X ^C ------------------ Result ----------------- Device xxx Device xxx is healthy
如有异常会实时打印,退出后显示汇总信息,如下所示:
MetaX Diagnostic tool Version: X.X.XX Product : C500 Kmd version : X.X.X Bios version : X.XX.X.X Maca version : X.XX.X.X ------------------ Result ----------------- Device 0 Device 0 is healthy Device 1 WARNING, power exceeds limit CAUTION, warning Didt CAUTION, get temperature info failed Device 2 CRITICAL, critical power state error
5. 无驱动检查
5.1. 无驱动检查设备信息
MXMACA 2.31.0及之后版本,在未加载驱动时,可以通过以下命令查看smp状态、PCIe/MetaXLink信息、固件版本及固件名称。
操作步骤
查看设备的
BDF ID。mx-diagease -L
通过指定
BDF ID,检查对应设备信息。mx-diagease --check <bdfid>
输出结果
结果显示如下所示:
Smp0 Init.All.Finish
PCIe link speed: Gen5
PCIe link width: x16
MetaX link4 speed: Gen5
MetaX link4 width: x16
MetaX link5 speed: Gen5
MetaX link5 width: x16
MetaX link6 speed: Gen5
MetaX link6 width: x16
Vbios Version: 1.23.0.0-7066
Vbios Binary Name: C500
6. 附录
6.1. 术语/缩略语
术语/缩略语 |
全称 |
描述 |
|---|---|---|
ACS |
Access Control Service |
访问控制服务 |
AP |
Accelerated Processor |
加速处理器 |
CTF |
Critical Temperature Fault |
临界温度故障 |
D2H |
Device-to-Host |
|
DI/DT |
电流变化率 |
|
H2D |
Host-to-Device |
|
MXMACA |
MetaX Advanced Compute Architecture |
沐曦推出的GPU软件栈,包含了沐曦GPU的底层驱动、编译器、数学库及整套软件工具套件 |
P2P |
Peer-to-Peer |
PCIe P2P是PCIe的一种特性,使两个PCIe设备之间可以直接传输数据 |
PCC |
Peak Current Control |
峰值电流控制 |
PCIe |
Peripheral Component Interconnect Express |
一种高速串行计算机扩展总线标准 |
IOMMU |
Input/Output Memory Management Unit |
输入/输出内存管理单元 |