Closed
[Bug|算子缺陷]: aclnnAddLayerNormQuantV2 normal_precheck 压测发现 是bug(CANN版本问题:aivec UB越界提单) #182
Alice_zhouAdd on 23 days agoClosed at 22 days ago
Alice_zhou
23 days ago Comments:
23 days ago Comments:
📎 复现附件下载(aclnnAddLayerNormQuantV2 normal_precheck 场景:执行步骤说明 + 压测 CPP + plog + 执行日志 + 分析报告):
aclnnAddLayerNormQuantV2_normal_precheck.zip
附件已存放在 Alice_zhou/issue 仓,点击上方链接直接下载(原结果服务器附件链接因服务器网络故障不可用,已改用本仓托管)。


Sun
23 days ago Comments:
23 days ago Comments:
错误原因分析:
1.aivec UB 越界
- V2 static welford kernel 在
IS_BIAS_ELEWISE || IS_BIAS_BROADCAST时按BUFFER_NUM(=2)份申请biasQueue_,每份colsPerLoopAlign*sizeof(X1)。 - V2 tiling 在 welford 预算里只对
ELEWISE_BIAS计入 bias(elewiseSliceNums += (biasType_ == ELEWISE_BIAS) ? ... : 0),BROADCAST bias 完全没进预算。
> 属于A5自己的代码问题。
- dynamic outScales契约矛盾
outScales 形状契约在 L2 校验与内部实现之间互斥,ViewCopy 失败返回 nullptr → 561103。
- L2接口 校验要求
outScales = x1 去掉最后一维(x1DimNums == 1 + reduceDimNum)。

- l0接口 实际按
outScales = x1 去掉 gamma 的全部尾维(x1DimNum - gammaDimNum)分配并送去 ViewCopy。

当gamma rank=2时,两次校验互斥,ViewCopy时要求两个shape一致,而传入的不一致,导致报错。

> 属于A2/A3实现的aclnn接口已有的问题。
- shape guard
fuzz CPP 自身资源保护:x1Size > 1048576时直接goto ERROR,未调用 API,不是 ops-nn 的 shape 校验。
> 属于测试框架使用的问题。


Alice_zhou
22 days ago Comments:
22 days ago Comments:
DTS2026102324200,DTS2026102324231


22 days ago Close issue
Alice_zhou
9 days ago Comments:
9 days ago Comments:
复测验证 OK(2026-11-04,CANN 9.3.0):normal_precheck 1000 条压测,aivec/kernel_name 出现 0 次(原 20 条 aivec UB 越界已消除)。


一、问题描述(必填)
aclnnAddLayerNormQuantV2;测试场景:normal_precheck;压测日期:2026-10-21;执行卡号:0二、问题复现步骤(必填)
(本场景 cpp 目录:rm -rf aclnnAPI_fuzz/src/op/* # 将附件 aclnnAddLayerNormQuantV2.cpp 放入 aclnnAPI_fuzz/src/op/ 下aclnnAPI_fuzz/src/op/)cd aclnnAPI_fuzz/ ; makecd out ; ./aclnnAPI_fuzz aclnnAddLayerNormQuantV2_fuzz 1000三、附件与证据(必填)
💡 存在的问题(选填)
该问题由 fuzz 自动化压测平台发现(每日自动统计当天判定为 bug 的记录并提单);如需更多上下文(完整打屏日志/plog/覆盖度报告),请下载上方附件压缩件。