| Files | Last commit | Last update |
|---|---|---|
feat: 输出tensor非连续禁止BROADCAST场景(提单前剔除后重跑)+ 问题统计目录(接口压测结果与提单汇总/issue汇总 两 Excel 在线统计表) 【输出BROADCAST门禁(强制!!!!输出非连续不跑 BROADCAST 场景,提 issue 前确认是否是输出的 broadcast 场景,如果是剔除后重跑)】 生成端根因修复:gen_fuzz_cpp.py 输出 tensor scene 下界=2(2~5 绝对禁止 BROADCAST,输入保持 1~5 含 BROADCAST;回归验证 selfNC=1~5/outNC=2~5)+ tiling NC 场景注入对输出 BROADCAST 防御性跳过(输出保持连续构造不影响该 tiling_key 覆盖);修正 multithread 转换规范错误(SKILL.md/gen-spec.md 原"输出 tensor scene 0~5 与输入一致"即输出 BROADCAST 来源 → 输出 0,2~5 增加 CONTINUOUS 绝对禁止 BROADCAST=1,输入 0~5 不变);fuzz-cpp-spec.md BROADCAST 使用规则强化(输出绝对禁止 BROADCAST + 提单门禁剔除说明 + multithread 输出 0,2~5)。提单门禁②:file_bug_issues.py 新增 scan_output_broadcast_in_log——提 issue 前扫描该场景 fuzz 日志 [FUZZ_PARAM] noncontig= 段(输出 tensor 名单取 output/{api}/test-design/03_参数定义.yaml 的 io_type=output,缺省启发式 out/xxOut),命中输出=BROADCAST 一律剔除禁止提单(优先级先于代码级核验门禁①、--skip_code_review 不可绕过——confirmed 结论已登记仍剔除),提示修复 CPP(non_contig 输出 scene=2~5、multithread 输出 0,2~5)→ 重新压测 → 重新 bug 三态判定后再提;--check 归类"输出BROADCAST剔除重跑"不计入未提交(全部门禁拦截时 exit 0),summary.md 记录拦截清单;bug 三态判定流程新增分支与理由词表"输出tensor非连续BROADCAST场景剔除重跑";含输出 BROADCAST 的旧压测结果一律作废不得作为提单依据。AGENTS.md 集成:CPP 打印规范第3条强化(强制!!!!标记)/复用判断规则新增(已有 CPP 输出含 BROADCAST → 需要修改重跑)/bug 三态判定树新增分支+理由词表/提单流程④双门禁(④a 输出broadcast剔除检查+④b 代码级核验)/Step 2B/2D 生成要求输出 scene 强制/S56 提单双门禁/S64 约束(最高优先级)/高风险行为限制 2 条/能做什么/frontmatter。 【问题统计目录(GitCode 仓 Alice_zhou/issue 的 问题统计/,强制)】 新增 scripts/sync_issue_stats_git.py——两 Excel 在线统计表实时填充(同一张表 upsert 累积不按日期另建表格,多机安全合并:行键 upsert/本机行优先/他机行保留/sha 乐观锁冲突重试/合并后序号全表重排+着色按值重新应用/禁止整表覆盖)。表1 接口压测结果与提单汇总.xlsx(序号/接口名/对应主算子名(find_owner_repo.resolve_api 定位+本地缓存 .meta_cache.json)/sample/normal/non_contig/multithread/consistent/error 各场景成功率(预检记录归并基场景且全量记录优先,error=已覆盖,无数据 —)/总体结论(强制三态着色:fail 红=存在是bug 版本bug记录、pass 绿=全部已执行场景成功率≥90%且无版本bug、待复核 黄=存在场景成功率<90%且无版本bug,Excel 好/中/差三色样式)/提单情况(已提单N个/待提单/无,取自问题单列链接数)/备注(bug 判定或 TOP 失败原因)/压测日期(更新时间取最大日期)/压测版本(env FUZZ_CANN_VERSION/CANN_VERSION > CANN version.cfg 文件 > 未知);行键=接口名+压测日期——同接口重跑按日期新行依次填充、同日重跑 upsert 覆盖)。表2 issue汇总.xlsx(序号/aclnn接口名/对应主算子名/问题/issue链接/md资料链接(本地 ops-* 仓 docs/aclnn{api}*.md 排除 experimental → https://gitcode.com/cann/{repo}/blob/{branch}/{path},本地缓存,未找到标注)/压测日期;行键=aclnn接口名+issue链接 同一 issue 多场景归并只占一行;数据源 out_res/issues/{日期}/daily_issues.json 主源 → filed.json+summary.md 历史回退)。触发链路(自动):update_batch_results.py 每场景压测结果更新后实时填充表1("每次压测结果依次填充即可,不需要另外建立表格"——独立于批量结果 Git 同步开关,--no_git_sync 不影响本表填充);file_bug_issues.py 每轮提单后实时填充表2+刷新表1(提单情况列);scheduled_update.py 每日 4 轮整点兜底补推两表(新增步骤4,无数据/文件缺失静默跳过,失败不阻塞下轮重试);开关 ISSUE_STATS_GIT_SYNC=0/1 > config issue_stats_git_sync(默认 true),仓内目录 config issue_stats_repo_dir(默认 问题统计);config/issue_tracker.example.json 新增 issue_stats_git_sync/issue_stats_repo_dir 两键;AGENTS.md 新增"问题统计目录"专章(两表结构与触发链路)+定时更新机制步骤4+功能定位四件事+S65 约束+命令速查问题统计表同步行+目录结构 out_res/问题统计 本地镜像与脚本行+能做什么+frontmatter。已验证:三态着色(pass C6EFCE/待复核 FFEB9C/fail FFC7CE)与全量覆盖预检/多机合并(他机行保留+本机 upsert+序号重排+着色重应用)/真实 GitCode API 推送与删除双向验证(E2E 触发成功创建 问题统计/ 文件)/无效 token 时钩子执行不阻塞提单流程。 | 18 hours ago | |
fix(framework): 非连续张量构造 F1 缺陷修复(按 stride/offset 写入+全存储初始化)+ 生成器/分析器批次修复 核心修复——turing_sec/aclnnAPI_fuzz/inc/utils/utils.h CreateAclTensorByScene(issue #575 开发复核确认根因): - 原缺陷仅将 hostData 连续拷贝到存储前部,未按 stride/offset 写入逻辑元素、未初始化剩余存储—— SLICE/BROADCAST 等非连续视图读取未初始化垃圾值(如 expandedRowIdx view[128]/stride[2]/storage[256] 逻辑元素 64~127 读垃圾索引进 kernel),引发大规模虚假 aicore_error(VEC/SCALAR UB 越界) - 修复:全存储以 hostData[0] 初始化 + 按实际 stride/offset 将逻辑元素写入物理位置 + 标准连续 布局快路径(offset==0 且 strides 为 row-major 时等价直接拷贝) - 复测定谢(Ascend 950 / CANN 9.3.0):aclnnMoeFinalizeRoutingV3 non_contig 全量 10000 条 修复前 1519 成功/8197 次同步失败/全进程 aivec → 修复后 9767 成功/0 同步失败/0 aicore; aclnnSituMxQuant multithread 5000 条 4910 成功/0 aicore。issue #575/#576/#582 按开发复核 结论改判不是bug并关闭 生成器修复——skills/ascendc-fuzz-cpp-gen: - gen_non_contig_from_normal.py:①GetNonContigSceneName 幂等判断改为定义级检查(调用点先插入导致 定义被跳过→未声明编译错)②FUZZ_LOG/FUZZ_RESULT 新格式 CPP 幂等化(已有打印仅改 plog 名不再 重复插入)③re.sub 替换串转义修复(\n 被解释为真实换行破坏 C 字符串,改 lambda)④新增 parse_md_contig_tensors + --api_doc:md「非连续Tensor」列 × 的 tensor 保持连续构造(S21) - st_to_fuzz_config.py:constraints None 容错;aclTensorList 类型传递 tensorlists 名单 - gen_fuzz_cpp.py:_is_tensorlist_param 优先查 config tensorlists 名单(防名字含 list 的普通 tensor 误判,如 FfnWorkerBatching groupList);F6 同步失败计数(aclrtSynchronizeStream 失败 写 aclnnRet 计入失败,防 host 全成功漏报异步 aicore) - gen_tiling_key_coverage.py:op_api 定位双回退(op_host/op_api 嵌套目录 + GetWorkspaceSize 符号 grep 共用实现文件,如 rrelu_with_noise 同时实现两个 API) - verify_error_scenarios.py:format=ND 的 tensor 豁免 C1 场景(ND 通用布局无 format 违反可测, 与 gen_error_scenarios 规则对齐) 分析器/提单修复——scripts: - analyze_bug_verdict.py:error 场景 core 误判双重门禁修复(优雅完成证据集 Scenario 摘要/GWS ret/ FUZZ_VERIFY + 进程完整结束信号;此前 GWS 拒绝场景 FUZZ_RESULT 写入场景重定向文件被误判为崩溃, 产生 6 个虚假 core issue 已复核关闭) - file_bug_issues.py:附件链接改用 GitCode 仓 blob URL(看板 URL 不可达);issue 标题加 [迭代加固]; 附件打包相对路径修复 + 空 zip 拦截(此前上传 9 个 0 字节空附件) | 14 hours ago | |
feat: 白盒检查技能(压测第一步)+ 错误码不符不判问题不提单不记录——新增 skills/whitebox-attr-check 技能(whitebox_attr_check.py 静态对照 ops-* 源码核验 attr 类参数,退出码 0/2/3,3=白盒不可检跳过不阻塞):①attr dtype 一致性——md 参数表 dtype vs 代码定义类型(op_api 头文件 GetWorkspaceSize 形参 C++ 类型 + op_host def.cpp this->Attr().Int/Float/Bool 声明,DOUBLE vs GE 内部 float 存储降级低风险提示);②值域校验层级(md 有取值约束但校验仅位于 tiling/kernel——错误码层级类按平台规则不作为发现输出,该检测仅用于区分 VALIDATION_MISSING);③int64→int32 窄化截断扫描(static_cast<int32_t>/int32_t 赋值/非 int64 底层枚举强转/atoi);④校验缺失(md 有值域约束但开源无校验,需黑盒 attr64 注入交叉复核)/隐藏值域检查(md 无约束但代码有检查)。三 issue 实证可白盒前置发现:#550 aclnnCrossEntropyLoss ignoreIndex→SILENT_TRUNCATION(cross_entropy_loss_full_load.h:701 int64→int32 截断即 kernel aicore 根因)、#549 aclnnAddRmsNormQuant axis→VALIDATION_MISSING(md 仅支持-1 开源无校验)、#386 aclnnApplyRotaryPosEmbV2 layout→值域校验下沉 tiling 层(561xxx)。AGENTS.md 集成:白盒检查专章(压测第一步,4 类检查表+5 类发现 Analyst 复核方向+强制规则,发现不直接判 bug 与黑盒互证合并提单)+Step 1W 流程块(约束推导后、样例测试前,1W-1 运行脚本/1W-2 复核发现/1W-3 归档 whitebox_report 幂等)+S63 规则+14 处"样例测试=压测第一步"改序(样例测试→压测第二步,白盒检查之后、先于一切 fuzz 压测)+frontmatter skills 列表/描述+能做什么/高风险 2 条/AnalystRunner 职责表/目录结构 whitebox_report 产物+runner 子代理同步(Step 1W 执行+白盒发现移交复核)。 错误码不符规则变更(平台规则:错误码不正确不判定为问题、不提单、不记录,该类用例视为约束已触发与 match=YES 同等对待,不进清单/统计/报告):analyze_bug_verdict.py——错误码不符 case 直接跳过不再产出条目(is_bug 判定链路移除,纯错误码不符场景判定"不是bug(异常用例均触发约束被拒绝)"(verify_total>0 且 unexpected_success==0 分支替代原 match_no==0 分支),意外成功/进程core 判定不变;fake log 端到端实测:无 ERROR_PROBLEM 行、判定建议不是bug、exit 0);file_bug_issues.py——提单分派跳过错误码不符类(SKIP 日志"不提单(不判定为问题、不记录;新数据不再产出该类条目)",对旧格式 error_problems.json 同样跳过),--check 完整性检查预期单数=意外成功合并1单+core逐个(错误码不符不计入),cm 合并提单块成死代码保留;AGENTS.md——bug 三态判定树错误码不符分支改"不是bug(不提单、不记录——视为约束已触发不进任何清单/统计/报告)"、异常场景判定表行/不是bug 词表新增"错误码不符不判问题"标准理由、S52/S56 提单规则同步、报告错误码校验结果表不再统计错误码不符、xlsx 三态定义从是bug清单移除、辅助脚本描述/逐问题提单粒度/去重键标历史遗留、代码定位排除范围更新、白盒 VALIDATION_LAYER_SINK 不再作为发现输出(专章复核表/S63/能做什么,脚本层已移除该 finding 产出,ApplyRotaryPosEmbV2 复测 exit 0 findings 0);update_batch_results.py 三态注释、ascendc-fuzz-cpp-gen SKILL.md/error-scenario-patterns.md/gen_error_scenarios.py doc_based 描述同步(doc_based=false 场景外 unverified_records 机制保持不变)。 | 2 days ago |