现象
部分算子在错误的输入下可能会报错,例如Gather算子,获取执行下标的数据,如果下标越界,算子访存越界会执行失败。
思路
框架默认会开启海思的异常dump,但其支持的算子有限,执行失败后可以先查看当前目录下是否有extra-info目录,如果有数据,即可找海思同事定位。
如果没有数据,需要开启框架的异常Dump保存报错算子输入,查看输入是否异常。
配置
- 配置项:“op_debug_mode”: 4
- 相关配置:不支持指定step(iteration字段不生效),不支持指定算子(kernels字段不生效),不支持执行统计信息/Tensor(saved_data默认为Tensor),不支持异步。
{
"common_dump_settings": {
"op_debug_mode": 4,
"dump_mode": 0,
"path": "/absolute_path",
"net_name": "ResNet50",
"iteration": "all",
"saved_data": "tensor",
"input_output": 0,
"kernels": ["Default/Conv-op12"],
"support_device": [0,1,2,3,4,5,6,7]
},
"e2e_dump_settings": {
"enable": true,
"trans_flag": true
}
}
性能
性能膨胀约2倍
资源占用
磁盘
只存异常算子输出,占用少
显存
理论上不会增加显存占用