Closed
[Bug|算子缺陷][迭代加固]: aclnnMoeFinalizeRoutingV3 multithread 压测发现 是bug #576
Alice_zhouAdd on 1 day agoClosed at 1 day ago
1 day ago Modify description of issue
1 day ago Close issue
1 day ago Modify description of issue
9 hours ago Modify description of issue
一、问题描述(必填)
aclnnMoeFinalizeRoutingV3;测试场景:multithread;压测日期:2026-11-13;执行卡号:0二、问题复现步骤(必填)
(本场景 cpp 目录:rm -rf aclnnAPI_fuzz/src/op/* # 将附件 aclnnMoeFinalizeRoutingV3_multithread.cpp 放入 aclnnAPI_fuzz/src/op_multithread/ 下aclnnAPI_fuzz/src/op_multithread/)cd aclnnAPI_fuzz/ ; make op_fuzz TARGET=multithreadcd out ; ./aclnnAPI_fuzz_multithread 5 100000 0 5 0三、附件与证据(必填)
💡 存在的问题(选填)
该问题由 fuzz 自动化压测平台发现(每日自动统计当天判定为 bug 的记录并提单);如需更多上下文(完整打屏日志/plog/覆盖度报告),请下载上方附件压缩件。
🔍 代码bug点定位(2026-11-13,结合 ops-* git 仓源码复核)
与 #575(non_contig 场景)同根因:kernel MoeFinalizeRoutingV2 对合法非连续输入(md 全√)VEC UB 越界(errcode 341)。multithread 场景混合连续+非连续(scene 0~5)复现同一缺陷。
代码排查与定位分析同 #575 的「代码bug点定位」章节(aclnn 层 Contiguous() 链 op_host/op_api/aclnn_moe_finalize_routing_v3.cpp:81-127 / tiling 无非连续分支 / kernel pc 0x120041073eb8 需 core 现场)。任一修复后两处复测闭环。
✅ 定性修正(2026-11-14,开发复核采纳 + 框架修复复测定谳)
结论修正:不是bug(测试框架 F1 索引有界性缺陷),本 issue 关闭。
开发复核(@guoqiuhao)确认的根因——测试框架缺陷而非算子缺陷:
CreateAclTensorByScene(utils.h:290-304)按 storageShape 分配内存后仅将 hostData 连续拷贝到存储前部,未按 stride/offset 写入逻辑元素、未初始化剩余存储expandedRowIdxviewShape=[128]/stride=[2]/storageShape=[256],hostData 大小=view 元素数(128),仅覆盖物理 0~127;视图读取 0、2、…、254,其中逻辑元素 64~127(物理 128~254)为未初始化存储——垃圾索引值进入 kernel 后形成与日志相符的 VEC UB 越界框架修复(已落地 turing_sec 与 turing_sec_card1 两实例
inc/utils/utils.h):修复后复测证据(Ascend 950 / CANN 9.3.0):
同根因关联:#576(multithread 场景)与 #582(aclnnSituMxQuant multithread broadcast aicore)同为该框架缺陷所致,一并修正关闭;#582 复测(单接口目录 5000 条)4910/5000 成功、0 aivec、进程完整结束。