算力测试

测试项功能

算力测试通过构造矩阵乘“A(m,k)*B(k,n)”并执行一定次数的方式,根据运算量与执行多次矩阵乘所耗费时间来计算整卡或芯片中AI Core的算力值和满算力下实时的功率。其中Atlas A2训练系列产品的算力测试包含运算量与执行多次矩阵乘和向量乘所耗费时间来计算整卡或芯片中AI Core的算力值和满算力下实时的功率。

设计的参数如表1表2所示。
表1 矩阵乘参数

算子运算类型

参数

说明

取值

fp16模式(推理和训练服务器)

int8模式(Atlas 200/300/500 推理产品)

m

A矩阵行

256

k

A矩阵列,B矩阵行

32

n

B矩阵列

128

int8模式(Atlas 200/500 A2推理产品)

int8模式(训练服务器)

hf32模式(Atlas A2训练系列产品)

m

A矩阵行

256

k

A矩阵列,B矩阵行

64

n

B矩阵列

128

fp32模式(Atlas A2训练系列产品)

m

A矩阵行

128

k

A矩阵列,B矩阵行

32

n

B矩阵列

64

表2 向量乘参数

算子运算类型

参数

说明

取值

fp16模式

n

向量长度

32760

fp32和hf32模式

n

向量长度

16380

注意事项

测试项参数查询

用户可任选以下指令之一查看算力测试命令的可用参数。

ascend-dmi -f -h

ascend-dmi -f --help

各参数解释如表3所示。

表3 参数说明

参数

说明

是否必填

[-f, --flops]

使用该参数测试整卡或芯片的算力。

[-t, --type]

指定算子运算类型,可以为fp16、fp32、hf32和int8,若未指定则默认为fp16。

需要注意的是:

  • ascend-dmi工具在Atlas A2训练系列产品上不支持进行int8类型的算力测试。
  • fp32和hf32类型只支持Atlas A2训练系列产品指定。

[-d, --device]

指定需要测试算力的Device ID,Device ID是指昇腾芯片的ID,用户可以执行ascend-dmi --info命令,在显示界面表格中的Chip参数处获得芯片数量。比如一个推理卡配置4个昇腾芯片,则Device ID的取值范围为[0,3]。若不填写Device ID则默认返回Device 0的算力信息。

  • 训练场景:执行该Device ID对应芯片的算力测试。
  • 推理场景:执行该Device ID所在整卡的算力测试。

[-et, --et, --execute-times]

指定芯片单个AI Core上运行矩阵乘法的执行次数。

  • 训练场景:若不填写执行次数则默认为60。训练场景单位为十万,参数范围为[10,80]。
  • 推理场景:若不填写执行次数则默认为10。推理场景单位为百万,参数范围为[10,80]。

[-fmt, --fmt, --format]

指定输出格式,可以为normal或json。若未指定则默认为normal。

  • 执行相同次数的矩阵乘情况下:在推理卡中,int8模式相比fp16模式算力会翻倍、执行时间会减半;但在训练卡和Atlas 200/500 A2推理产品中,int8模式为了将芯片数据填充满,使单个的矩阵乘size扩大了2倍,进而导致其执行时间与fp16相同,算力依旧翻倍。
  • 如果需要长时间执行算力测试,请参考循环调用算力测试脚本,如果同时需要收集利用ascend-dmi -i命令查询在算力测试过程中AI Core利用率为100%时的结果,请参考设备实时状态查询脚本
  • ascend-dmi -f后使用-d,--et等多个二级参数时,可任意指定这些参数的排列顺序,不影响命令结果输出。例如:ascend-dmi -f -d 2 --et 60ascend-dmi -f --et 60 -d 2输出结果相同。
  • 因int8模式下使用的是整数运算,相比于fp16的浮点数运算,会减少一部分运算单元,因此最终呈现出的功耗值将偏低。

使用实例

上述图中各类服务器参数介绍如表4所示。

表4 显示界面参数说明

参数

说明

Device

Device ID。

Execute Times

  • 训练场景:
    • Atlas A2训练系列产品上,Execute Times为单个AI Core执行矩阵乘的次数乘以AI Core的个数与单个Vector Core执行向量乘的次数乘以Vector Core的个数相加计算所得。
    • Atlas训练系列产品的Execute Times为单个AI Core执行矩阵乘的次数乘以AI Core的个数计算所得。
  • 推理场景:Execute Times为执行矩阵乘的次数乘以AI Core的个数,再乘以芯片的个数计算所得。

Duration(ms)

执行多次矩阵乘所耗费的时间。

TFLOPS@FP16

FP16数据进行算力测试得到的算力值。FP16根据指定的算子运行类型变更。

Power(W)

满算力下的实时功率。

说明:

用户无需关注算力测试时芯片的功率,因为功耗数据是按周期采集,且前后两次采集之间存在时间间隔,当算力测试时间过短时,会出现功耗数据波动。功耗测试请使用更具针对性的功耗测试选项进行。

  • 为保证返回检测结果的正确性和准确性,算力测试需要单独执行。
  • 若需要测试整个集群的物理算力,可使用集群算力测试工具。如无权限访问该工具,请联系技术支持加入“Ascend”组织下的“ascend-toolbox”群组。