3. 诊断模式

3.1. 诊断项目

表 3.1 mx-diagease诊断项目

诊断项目

内容

内存诊断

诊断设备内存的完整性,稳定性和可靠性。

  • 在错误诊断方面,可发现并定位硬件问题,如坏页,位错误等。

  • 在功能诊断方面,可在高负载下验证设备的稳定性和可靠性。

PCIe诊断

诊断设备PCIe链路的完整性和稳定性。

包含H2D单向带宽诊断(MB/s),D2H单向带宽诊断(MB/s),HD双向带宽诊断(MB/s),设备间P2P诊断(MB/s)。

GPU Stress诊断

GPU及CPU压测,诊断GPU稳定性。诊断在高负载下整卡稳定性和AP稳定性。可在配置文件中设置 cpu_stress_enable0 关闭CPU压测,只做GPU压测。配置文件及结果对应 stress 项。

MetaXLink诊断

诊断设备MetaXLink链路的完整性和稳定性。

包含设备间单双向带宽诊断(MB/s)。

电源管理诊断

诊断设备功耗,温度及动态电源管理相关指标。

PCIe ACS检查

检查物理机PCIe ACS状态,建议为关闭状态。PCIe ACS 会强制让PCIe 流量经过RC,降低PCIe p2p性能。关闭PCIe ACS需要关闭IOMMU。若为开启状态,诊断时会打屏,且提供可参考的关闭方法。

IOMMU 检查

检查IOMMU状态,建议为关闭状态。开启IOMMU可能会影响部分多卡的性能测试。若为开启状态,诊断时会打屏,且提供可参考的关闭方法。

主机CPU工作模式检查

检查主机CPU工作模式,建议设置为 performance 模式, powersave 模式下CPU很难达到较高频率,可能对性能测试产生负面影响。若诊断过程中发现有一个及以上CPU不是 performance 模式,会随机选择其中一个打屏,并且提供可参考的设置方法。

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诊断中 runtime 默认为300秒

  • Memory诊断中 mc_stress_cycles 可用于设置循环次数,为 0 时关闭MC压测。

生成的文件如下:

{
   "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": 49000,
      "bw_bi_p2p": 90000
   },
   "memorytest": {
      "test_indexes": [0,1,2,3,4,5,6,7,8,9,10],
      "mc_stress_cycles": 20
   },
   "stress": {
      "runtime":300,
      "cpu_stress_enable":1
   }
}

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     #
#                            #
##############################