Resnet50云上报错(计算溢出)

  1. 定位异常算子。

    使用放开中断屏蔽的版本排查,定位到引入inf/NAN数据的算子,出错算子为MaxPoolGrad算子,报0x40000000000000错误。

  2. 定位异常指令。

    通过反编译.o,以及PC Start和Current PC,以及cce文件定位到出错的cce代码行,出错指令为vsub。

  3. 分析原因。

    排查vsub指令的参数取值,与搬入的数据量进行比对,发现源操作和vector计算量存在差异:搬入的数据是 49*32B,但是计算的数据量是8*128,两者不等。但是有没有mask操作,以及不对齐的部分没有填充默认值,这样不对齐部分的数据完全是不可预期的,可能是之前算子计算的数据类型都是int32,这样数据类型不匹配解析成NAN,导致AI Core报错。