算力测试
测试项功能
算力测试通过构造矩阵乘“A(m,k)*B(k,n)”并执行一定次数的方式,根据运算量与执行多次矩阵乘所耗费时间来计算整卡或芯片中AI Core的算力值和满算力下芯片的实时功率。
注意事项
为了避免频繁输出日志影响测试结果,测试前确认Host和Device的日志级别设置为ERROR,确认及设置方法如下:
测试项参数查询
用户可任选以下指令之一查看算力测试命令的可用参数。
ascend-dmi -f -h
ascend-dmi -f --help
各参数解释如表2所示。
参数 |
说明 |
是否必填 |
---|---|---|
[-f, --flops] |
使用该参数测试整卡或芯片的算力。 |
是 |
[-t, --type] |
指定算子运算类型,可以为fp16或int8,若未指定则默认为fp16。 |
否 |
[-d, --device] |
指定需要测试算力的Device ID,Device ID是指昇腾芯片的ID,用户可以执行ascend-dmi --info命令,在显示界面表格中的Chip参数处获得芯片数量。比如一个Atlas 300I 推理卡配置4个昇腾芯片,则Device ID的取值范围为[0,3]。若不填写Device ID则默认返回Device 0的算力信息。
|
否 |
[-et, --et, --execute-times] |
指定芯片单个AI Core上运行矩阵乘法的执行次数。
|
否 |
[-fmt, --fmt, --format] |
指定输出格式,可以为normal或json。若未指定则默认为normal。 |
否 |

- 执行相同次数的矩阵乘情况下:在推理卡中,int8模式相比fp16模式算力会翻倍、执行时间会减半;但在训练卡中,int8模式为了将芯片数据填充满,使单个的矩阵乘size扩大了2倍,进而导致其执行时间与fp16相同,算力依旧翻倍。
- 如果需要长时间执行算力测试,请参考循环调用算力测试脚本,如果同时需要收集利用ascend-dmi -i命令查询在算力测试过程中AI Core利用率为100%时的结果,请参考设备实时状态查询脚本。
- ascend-dmi -f后使用-d,--et等多个二级参数时,可任意指定这些参数的排列顺序,不影响命令结果输出。例如:ascend-dmi -f -d 2 --et 60和ascend-dmi -f --et 60 -d 2输出结果相同。
- 因int8模式下使用的是整数运算,相比于fp16的浮点数运算,会减少一部分运算单元,因此最终呈现出的功耗值将偏低。
使用实例
- 推理服务器以测试Device 2,指定算子运算类型默认为fp16,执行次数为6千万的算力为例。
若返回如图1所示信息,表示工具运行正常。
- 推理服务器以测试Device 2,指定算子运算类型为int8,执行次数为6千万的算力为例。
ascend-dmi -f -t int8 -d 2 --et 60
若返回如图2所示信息,表示工具运行正常。
- 训练服务器以测试Device 3,执行次数为8百万的算力为例。
若返回如图3所示信息,表示工具运行正常。
上述图中各类服务器参数介绍如表3所示。
参数 |
说明 |
---|---|
Device |
Device ID。 |
Execute Times |
实际运算中执行矩阵乘的次数。
|
Duration(ms) |
执行多次矩阵乘所耗费的时间。 |
TFLOPS@FP16 |
FP16数据进行算力测试得到的算力值。 |
Power(W) |
满算力下芯片的实时功率。
说明:
用户无需关注算力测试时芯片的功率,因为功耗数据是按周期采集,且前后两次采集之间存在时间间隔,当算力测试时间过短时,会出现功耗数据波动。功耗测试请使用更具针对性的功耗测试选项进行。 |

为保证返回检测结果的正确性和准确性,算力测试需要单独执行。