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 Create

一、问题描述(必填)

  • 接口名:aclnnAddLayerNormQuantV2;测试场景:normal_precheck;压测日期:2026-10-21;执行卡号:0
  • 压测结果:总条数 1000 / 实际成功 973 / 实际失败 27
  • bug 判定:是bug(CANN版本问题:aivec UB越界提单)(经 执行日志+plog+资料 三方交叉分析,详见判定依据)
  • 是否存在 aicore_error:是(aivec UB out of bounds, kernel=AddLayerNormQuantV2, 20条)
  • 失败原因摘要:20条aivec UB越界(static全后缀gamma大shape); 5条shape guard; 2条tiling; 探针另证实2处接口矛盾(perTensor[1]路径/dynamic首维>1)

二、问题复现步骤(必填)

  1. 下载测试框架:https://gitcode.com/Alice_zhou/Vector_fuzz_cpp_testing/tree/main/turing_sec/aclnnAPI_fuzz/
  2. 环境准备(清除原有内容,将附件 cpp 放入对应目录下):
    rm -rf aclnnAPI_fuzz/src/op/*
    # 将附件 aclnnAddLayerNormQuantV2.cpp 放入 aclnnAPI_fuzz/src/op/ 下
    
    (本场景 cpp 目录:aclnnAPI_fuzz/src/op/)
  3. 编译:
    cd aclnnAPI_fuzz/ ; make
    
  4. 执行:
    cd out ; ./aclnnAPI_fuzz aclnnAddLayerNormQuantV2_fuzz 1000
    

三、附件与证据(必填)

💡 存在的问题(选填)
该问题由 fuzz 自动化压测平台发现(每日自动统计当天判定为 bug 的记录并提单);如需更多上下文(完整打屏日志/plog/覆盖度报告),请下载上方附件压缩件。


迁移说明:本 issue 由 fuzz 自动化压测平台于 2026-10-21 自 cann/ops-nn#7014 迁移至长尾责任仓(责任人维护仓)。原 issue 将关闭并指向本单。

likedislike
Alice_zhou
23 days ago Comments:

📎 复现附件下载(aclnnAddLayerNormQuantV2 normal_precheck 场景:执行步骤说明 + 压测 CPP + plog + 执行日志 + 分析报告):

aclnnAddLayerNormQuantV2_normal_precheck.zip

附件已存放在 Alice_zhou/issue 仓,点击上方链接直接下载(原结果服务器附件链接因服务器网络故障不可用,已改用本仓托管)。

likedislike
Sun
Sun
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自己的代码问题。
  1. dynamic outScales契约矛盾
    outScales 形状契约在 L2 校验与内部实现之间互斥,ViewCopy 失败返回 nullptr → 561103。
  • L2接口 校验要求 outScales = x1 去掉最后一维(x1DimNums == 1 + reduceDimNum)。
    image.png
  • l0接口 实际按 outScales = x1 去掉 gamma 的全部尾维(x1DimNum - gammaDimNum)分配并送去 ViewCopy。
    image.png
    当gamma rank=2时,两次校验互斥,ViewCopy时要求两个shape一致,而传入的不一致,导致报错。
    image.png
    > 属于A2/A3实现的aclnn接口已有的问题。
  1. shape guard
    fuzz CPP 自身资源保护:x1Size > 1048576 时直接 goto ERROR,未调用 API,不是 ops-nn 的 shape 校验。
    > 属于测试框架使用的问题。
likedislike
Alice_zhou
22 days ago Comments:

DTS2026102324200,DTS2026102324231

likedislike
AAlice_zhou
22 days ago Close issue
Alice_zhou
9 days ago Comments:

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

likedislike