功耗测试
测试项功能
功耗测试是通过运行单算子模型来检测整卡的功耗信息。
使用约束
- 功耗测试不支持在设备所在环境存在问题的场景下运行,例如高温、散热有问题的环境,否则会出现硬件设备掉卡、硬件设备故障等异常情况。
- 功耗测试不能用于温度测试,即试图测试硬件设备在不同温度下的散热情况,否则会出现硬件设备掉卡、硬件设备故障等异常情况。
- 为保证返回检测结果的正确性和准确性,功耗测试需要单独执行。
- 功耗跟MCU强相关,使用前请将MCU升级至配套版本,否则可能会有aicore利用率未满100%、调压异常等问题。
- 为了避免频繁输出日志影响测试结果,测试前确认Host和Device的日志级别设置为ERROR,确认及设置方法如下:
- 确认日志级别:
- Host侧:通过执行echo $GLOBAL_LOG_LEVEL命令查询,如果查询结果为非法值或者空,表示日志级别为缺省级别ERROR,对应数值3。
- Device侧:请参考《CANN 日志参考》“其他操作">"msnpureport工具使用”章节,查看全局日志级别、模块日志级别和是否开启Event日志。
- 如果日志级别不为ERROR,请参考《CANN 日志参考》中“其他操作">“设置日志级别”章节,设置Host和Device侧的日志级别。
- 确认日志级别:
测试项参数查询
用户可任选以下指令之一查看功耗测试命令的可用参数。
ascend-dmi -p -h
ascend-dmi -p --help
各参数解释如表1所示。
参数 |
说明 |
是否必填 |
---|---|---|
[-p, --power] |
使用该参数进行整卡的功耗测试。 |
是 |
[-t, --type] |
指定算子运算类型,可以为fp16或int8,若未指定则默认为fp16。 其中Atlas A2 训练系列产品只支持指定为fp16。 |
否 |
[-dur, --dur, --duration] |
指运行时间,若不填写运行时间则默认为600。 单位为秒,取值范围为[60,604800]。 |
否 |
[-it, --it, --interval-times] |
指屏幕信息打印刷新的间隔时间,若不填写间隔时间则默认为5。 单位为秒,取值范围为[1, 5]。 |
否 |
[--skip-check] |
传入此参数时会跳过设备健康状态检查。 不传入此参数,默认会进行设备健康状态检查。
说明:
仅6.0.RC2.2及以上版本支持传入此参数。 |
否 |
[-pm, --pm, --print-mode] |
屏幕输出的打印模式,若不填写打印模式则默认为refresh。 打印模式:
|
否 |
[-q, --quiet] |
指定该参数,将不再进行防呆提示,用户将默认允许该操作。
说明:
若不指定该参数,将进行防呆提示,用户需要输入Y或N(y或n)确认是否进行测试。 |
否 |

- 功耗数据是按周期采集,且前后两次采集之间存在时间间隔,因此小概率会出现未采集到实际功耗数据进而导致显示值偏低的情况。
- 功耗测试有启动时间和退出时间,因此第一次和最后一次的回显信息会存在误差,属于正常现象。
- 从运行成本考虑,功耗测试打印次数不一定与理论值相同。以功耗工具运行时间为60s,信息打印刷新的间隔为5s为例,理论上打印次数应为12次,实际次数会低于这个数值。
- ascend-dmi -p后使用--dur,--it等多个二级参数时,可任意指定这些参数的排列顺序,不影响命令结果输出。例如:ascend-dmi -p --dur 60 --it 5 --pm refresh和ascend-dmi -p --it 5 --dur 60 --pm refresh输出结果相同。
- 因int8模式下使用的是整数运算,相比于fp16的浮点数运算,会减少一部分运算单元,因此最终呈现出的功耗值将偏低。同时,硬件设备会预设性能阈值,fp16模式下容易达到阈值并触发主动降频、电压调节等保护机制,因此硬件设备功耗不会长时间超过阈值,int8模式下功耗偏低,未达到阈值情况下,不同硬件设备的功耗可能会出现明显差异。
使用实例
以下为各类服务器返回的功耗示例。
- 推理服务器
- 训练服务器
以执行时间为60s,信息的打印间隔信息为5s,屏幕的输出模式为清除历史记录为例。
ascend-dmi -p --dur 60 --it 5 --pm refresh
图3 功耗测试示例(训练服务器) - Atlas 300T 训练卡(型号 Pro-9000)
以执行时间为60s,信息的打印间隔信息为5s,屏幕的输出模式为清除历史记录为例。
ascend-dmi -p --dur 60 --it 5 --pm refresh
图4 功耗测试示例
上述图中各类服务器参数介绍如表2所示。