根据aclnn接口资料生成压测cpp进行压测测试
| Files | Last commit | Last update |
|---|---|---|
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 | |
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 时钩子执行不阻塞提单流程。 | 12 hours ago | |
update | 3 months ago | |
rename RoiAlign attachment to ASCII filename | 16 days ago | |
archive: 低成功率优化轮40接口压测产物归档(normal/nc/mt/consistent/error/sample CPP + test-design约束产物) - 40个接口: Foreach系(Log2/Log10/Sin/Tan/Sign/SubScalar/SubScalarInplace/MaximumList/MinimumList/MinimumScalar/MulList), Trace, RoiAlign系, GridSampler系, ThreeInterpolateBackward, GroupQuant系, SignBits系, RainFusionAttention, Floyd系, Rasterizer, Loss系(MultilabelMargin/SoftMargin/FusedCE/FusedLinearOnlineMaxSum), ModulateBackward, FastBatchNormBackward, Moe系, GemmaRmsNorm, ExpSegsum, ScatterList, QkvRmsNormRopeCache, InplaceAsinh - 全部为压测通过后回拷的已验证版本(nc/mt经适配层源码级根因修复, 98~100%通过率) - 新增429文件/751变更, sha256增量归档, 含archive_history.jsonl | 12 hours ago | |
tools: open issue代码级复核脚本修正+189汇总重建工具链(同轮配套) | 12 hours ago | |
fix(aclnnAdaLayerNormBackward): error CPP 入口 argc>1 误判修复(无参调用时 atoi(argv[2]) 空指针崩溃), 配合 issue#179 回归验证 | 4 hours ago | |
update | 23 days ago | |
fix(multithread): 输出tensor scene禁止BROADCAST(gate 1.6 对齐)+ MT引擎initValue行为适配 convert_to_multithread.py: - 新增 --outputs 参数:输出tensor名逗号列表(驱动从 fuzz_op_config outputs 自动传入) - [OUT-SCENE-FIX] 输出 scene draw initValue 1→0(CONTINUOUS)+ draw 后 remap 1→0—— 实测 MT 构建(libSecodefuzz_thread 变体)下 DT 引擎 ~90% 用例返回 initValue 而非 变异值(LeftShift MT 日志实证:269533 BROADCAST/297k 场景 + 13 个越界 scene=6), 输出 scene initValue=1 意味着 90% 用例构造 out=BROADCAST 违规布局—— 对齐远端门禁 1.6(multithread 输出 scene 应为 0,2~5,提单前日志扫描 out-BROADCAST 剔除) - 输出修正对 '1,0,5' 与 '1,2,5' 两种 draw 形态兼容 batch_fuzz_driver.py: - stage_multithread 转换时从 test-design/fuzz_op_config.yaml 读取 outputs 列表传给转换器 - normal 全量 <90% 时 return False(此前误返回 True 导致失败后继续走后续场景) 配套验证(Ascend 950 / CANN 9.3.0,F1 修复框架上): - aclnnMoeFinalizeRoutingV3 multithread 全量 20000×5线程:97499/100000 成功, 0 同步失败 0 aicore(F1 修复彻底解决其非连续 aivec 问题,#575/#576 开发复核闭环) - aclnnBitwiseAndTensorOut 5 线程 754/5000:AICPU task exception 级联(与 out=BROADCAST 无关, 输出修正后仍复现);2 线程 2000/2000 全过、单线程全过——记录为需人工确认 (高频微小 AICPU 任务×5并发运行时行为,触发用例为平凡合法构造) | 7 hours ago | |
feat: 问题单回归skill(issue-regression)——提示"回归某个issue"时:更新ops-*仓 → 按issue四步复现步骤执行 → 返回回归结果 → 在issue后面回复测试结果 新增 skills/issue-regression/(SKILL.md + scripts/issue_regression.py,单命令全流程,退出码 0=回归通过✅/2=回归不通过❌问题仍复现/3=环境不可用⚠️/1=解析失败走SKILL.md回退路径): ① 定位 issue——--issue 支持 URL(长尾责任仓 wangyueting/changwei_* 用此形式)或纯编号(config issue_repo_owner/issue_repo_name 缺省仓 Alice_zhou/issue),GET issue API 拉取标题/正文/状态; ② 更新 ops-* 仓(默认强制,--no-ops-update 仅限网络不可达且报告中注明)——ops-math/nn/cv/transformer 逐仓 git pull --ff-only(缺失 git clone --depth 1 浅克隆),记录各仓 HEAD commit 写入回归报告与 issue 回复(回归基于最新源码版本,便于与 issue 内"🔍 代码bug点定位"对比是否已修复); ③ 解析四步复现步骤(正文结构由 file_bug_issues.py 生成,与提单格式对齐)——附件放置行("# {场景} 场景:将附件 {cpp} 放入 aclnnAPI_fuzz/{dir} 下",跨接口根因归并组多场景多条逐条放置执行)、编译命令(cd aclnnAPI_fuzz/ ; make...,含 TARGET=multithread/consistent/sample_fuzz)、执行命令(cd out ; ./aclnnAPI_fuzz {api}_{mode}_fuzz {num},多场景逐条)、附件下载链接、原问题 bug 判定/失败原因摘要与 root_cause_key(回归对比依据); ④ 下载附件 CPP——GitCode blob URL 自动转 raw / 看板 /download/ URL 直接下载 → zip 解压取 CPP;本地 output/{api}/ 同名 cpp 兜底;下载失败且本地无文件时判定环境不可用并提示; ⑤ 执行回归——框架目录切换(src/op ↔ op_back 互换;op_multithread/src_consistent/op_sample 备份后清空放置,_regression_backup 留底)→ make 编译(600s 超时,失败=⚠️ 环境不可用不代表修复)→ 按 issue 原始命令逐条执行(不缩减条数保证结论可信;stdout 重定向 run_*.log 留档;按进程 PID 采集 plog-{PID}_*.log 全轮转段;ASCEND_HOME_PATH/LD_LIBRARY_PATH/ASCEND_OPP_PATH 环境注入); ⑥ 三态判定——[FUZZ_RESULT] success/faild 计数得成功率 + 进程崩溃/超时检测 + plog aicore_error 扫描("the error is aivec error" 或 kernel_name+ERROR 级别行,与既有判定规则一致):✅ 通过=全部命令成功率≥90% 且无 aicore_error(问题已修复/不再复现);❌ 不通过=任一 <90%/aicore 仍存在/崩溃超时(问题仍复现);⚠️ 环境不可用=编译失败/无 NPU/框架缺失(环境问题不代表问题修复); ⑦ 在 issue 后面回复测试结果——POST {api_base}/repos/{owner}/{repo}/issues/{number}/comments(JSON {"body"} + PRIVATE-TOKEN,已实测 Gitee-v5 兼容风格),回复 markdown 含:回归结论(✅/❌/⚠️)、ops-* HEAD 版本表、CANN 版本、原根因定位/原问题判定对比、逐场景执行结果表(总条数/成功/失败/成功率/崩溃标记/aicore_error)、执行命令、留档说明;comment API 失败时回退 PATCH description 追加至正文末尾(GET 原正文后追加,禁止覆盖),两者均失败内容本地留档并告知用户; ⑧ 本地留档——out_res/regression/issue{number}_{api}/(回归报告 regression_issue{n}.md + run_*.log + 下载附件)。 SKILL.md:触发词(回归 issue #xxx / URL / 问题单回归 / 验证某 issue 是否已修复——提示词携带"回归"+issue 引用即触发)、主路径单命令、8 步流程、解析失败人工回退路径(手写 issue 无四步复现结构时:人工提取放置/编译/执行/附件 → 手工更新 ops-* → 按 AGENTS.md 既有流程执行 → 人工构造回复)、强制规则(必须先更新 ops-*、结论必须回复 issue、原始命令原样执行、⚠️ 环境不可用不得写成回归通过、留档强制)。 AGENTS.md 集成:frontmatter skills 列表新增 issue-regression + "问题单回归"专章(功能定位/执行命令/8 步流程表/强制规则,置于白盒检查章节前)+ 能做什么条目 + 命令速查"问题单回归"行(timeout 压测:1800000)+ 目录结构 skills/issue-regression/ 行。 已验证:沙箱测试(单场景 issue 解析:放置/编译/执行/附件/bug判定/root_cause_key;跨接口根因归并组解析:3放置+3命令+3附件+场景注释;prepare_framework:op→op_back 互换/op 清空/multithread 备份放置,不触碰真实 turing_sec);真实 issue 双向验证——自动化生成的 wangyueting/changwei_liuyi#198 正确解析(api/放置 aclnnAPI_fuzz/src/op/make/执行命令/附件/state=closed)、手写 issue Alice_zhou/issue#591 正确识别无四步复现结构 → 退出码 1 引导回退路径;dry-run/--no-ops-update/--no-comment 选项行为正确。 | 5 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 字节空附件) | 8 hours ago | |
feat: Bug issue 代码级定位与回填 + aicore/core 测试框架优先复核(F1~F7)——AGENTS.md 新增专章:是bug issue(错误码不符/报错不满足维测类除外)提单后必须结合本地 ops-* git 仓源码定位具体代码 bug 点(op_host/op_api/op_kernel,Grep aclnn{Api}GetWorkspaceSize 定位算子目录,排除 experimental),PATCH 回填 issue 追加"🔍 代码bug点定位"章节(GET 原正文后追加禁止覆盖);本地 fuzz_logs 缺失时 SSH 拉取执行机失败摘要(FUZZ_RESULT计数/失败ret分布/aicore标记/样例参数/plog原文);按问题类型定位(aicore→kernel越界行、core→GWS崩溃点、意外成功→缺失校验位置(相邻校验佐证)、hash_mismatch→非确定性来源、attr超int32→int64截断处、成功率异常→先判失败模式:预期拒绝=非bug建议改判/合法被拒=过严校验行/OOM=资源类);定位结论非bug注明复核结论建议关闭、HEAD已修复注明版本差异建议升级复测,归档 code_localization.json;行号必须实读源码禁止臆造,≥20 issue 按API分组并行(token不下发Subagent)。aicore/core 判定与定位双前置门禁——测试框架优先复核 F1~F7(F1索引tensor有界性/F2数据值约束/F3 shape与mask关系/F4 kernel_name归属防多卡plog串扰/F5基线对照/F6同步语义/F7 error注入合法性),复核不通过归因框架改判不是bug并修复复测;测试框架修复与上库强制(框架缺陷修复 output CPP+生成器源头,修复后提醒用户上库、确认后提交推送;内置4条已知系统性缺陷模式:索引无界随机填充/FLOAT与DOUBLE [-1000,1000]负值用于非负约束输入/error预期码固化561002/无FUZZ_RESULT计0%误报)。12处流程集成:双触发表C行(代码定位回填触发)、提单流程⑦步、bug三态判定树aicore分支前置复核、S52判定规则首句、单接口全模式流程闭环点、批量B4接口闭环★项+B5补齐、Step4提单判定前置段、能做什么条目、Analyst/Runner职责表、目录结构code_localization.json、高风险禁止4条、S61/S62约束规则。另:.gitignore 排除自动克隆的 ops-* 源码仓(预检查资产,可重新克隆,不入库) | 2 days ago | |
feat: 问题单回归skill(issue-regression)——提示"回归某个issue"时:更新ops-*仓 → 按issue四步复现步骤执行 → 返回回归结果 → 在issue后面回复测试结果 新增 skills/issue-regression/(SKILL.md + scripts/issue_regression.py,单命令全流程,退出码 0=回归通过✅/2=回归不通过❌问题仍复现/3=环境不可用⚠️/1=解析失败走SKILL.md回退路径): ① 定位 issue——--issue 支持 URL(长尾责任仓 wangyueting/changwei_* 用此形式)或纯编号(config issue_repo_owner/issue_repo_name 缺省仓 Alice_zhou/issue),GET issue API 拉取标题/正文/状态; ② 更新 ops-* 仓(默认强制,--no-ops-update 仅限网络不可达且报告中注明)——ops-math/nn/cv/transformer 逐仓 git pull --ff-only(缺失 git clone --depth 1 浅克隆),记录各仓 HEAD commit 写入回归报告与 issue 回复(回归基于最新源码版本,便于与 issue 内"🔍 代码bug点定位"对比是否已修复); ③ 解析四步复现步骤(正文结构由 file_bug_issues.py 生成,与提单格式对齐)——附件放置行("# {场景} 场景:将附件 {cpp} 放入 aclnnAPI_fuzz/{dir} 下",跨接口根因归并组多场景多条逐条放置执行)、编译命令(cd aclnnAPI_fuzz/ ; make...,含 TARGET=multithread/consistent/sample_fuzz)、执行命令(cd out ; ./aclnnAPI_fuzz {api}_{mode}_fuzz {num},多场景逐条)、附件下载链接、原问题 bug 判定/失败原因摘要与 root_cause_key(回归对比依据); ④ 下载附件 CPP——GitCode blob URL 自动转 raw / 看板 /download/ URL 直接下载 → zip 解压取 CPP;本地 output/{api}/ 同名 cpp 兜底;下载失败且本地无文件时判定环境不可用并提示; ⑤ 执行回归——框架目录切换(src/op ↔ op_back 互换;op_multithread/src_consistent/op_sample 备份后清空放置,_regression_backup 留底)→ make 编译(600s 超时,失败=⚠️ 环境不可用不代表修复)→ 按 issue 原始命令逐条执行(不缩减条数保证结论可信;stdout 重定向 run_*.log 留档;按进程 PID 采集 plog-{PID}_*.log 全轮转段;ASCEND_HOME_PATH/LD_LIBRARY_PATH/ASCEND_OPP_PATH 环境注入); ⑥ 三态判定——[FUZZ_RESULT] success/faild 计数得成功率 + 进程崩溃/超时检测 + plog aicore_error 扫描("the error is aivec error" 或 kernel_name+ERROR 级别行,与既有判定规则一致):✅ 通过=全部命令成功率≥90% 且无 aicore_error(问题已修复/不再复现);❌ 不通过=任一 <90%/aicore 仍存在/崩溃超时(问题仍复现);⚠️ 环境不可用=编译失败/无 NPU/框架缺失(环境问题不代表问题修复); ⑦ 在 issue 后面回复测试结果——POST {api_base}/repos/{owner}/{repo}/issues/{number}/comments(JSON {"body"} + PRIVATE-TOKEN,已实测 Gitee-v5 兼容风格),回复 markdown 含:回归结论(✅/❌/⚠️)、ops-* HEAD 版本表、CANN 版本、原根因定位/原问题判定对比、逐场景执行结果表(总条数/成功/失败/成功率/崩溃标记/aicore_error)、执行命令、留档说明;comment API 失败时回退 PATCH description 追加至正文末尾(GET 原正文后追加,禁止覆盖),两者均失败内容本地留档并告知用户; ⑧ 本地留档——out_res/regression/issue{number}_{api}/(回归报告 regression_issue{n}.md + run_*.log + 下载附件)。 SKILL.md:触发词(回归 issue #xxx / URL / 问题单回归 / 验证某 issue 是否已修复——提示词携带"回归"+issue 引用即触发)、主路径单命令、8 步流程、解析失败人工回退路径(手写 issue 无四步复现结构时:人工提取放置/编译/执行/附件 → 手工更新 ops-* → 按 AGENTS.md 既有流程执行 → 人工构造回复)、强制规则(必须先更新 ops-*、结论必须回复 issue、原始命令原样执行、⚠️ 环境不可用不得写成回归通过、留档强制)。 AGENTS.md 集成:frontmatter skills 列表新增 issue-regression + "问题单回归"专章(功能定位/执行命令/8 步流程表/强制规则,置于白盒检查章节前)+ 能做什么条目 + 命令速查"问题单回归"行(timeout 压测:1800000)+ 目录结构 skills/issue-regression/ 行。 已验证:沙箱测试(单场景 issue 解析:放置/编译/执行/附件/bug判定/root_cause_key;跨接口根因归并组解析:3放置+3命令+3附件+场景注释;prepare_framework:op→op_back 互换/op 清空/multithread 备份放置,不触碰真实 turing_sec);真实 issue 双向验证——自动化生成的 wangyueting/changwei_liuyi#198 正确解析(api/放置 aclnnAPI_fuzz/src/op/make/执行命令/附件/state=closed)、手写 issue Alice_zhou/issue#591 正确识别无四步复现结构 → 退出码 1 引导回退路径;dry-run/--no-ops-update/--no-comment 选项行为正确。 | 5 hours ago | |
update | 3 months ago | |
cleanup: remove redundant files and optimize bench order to normal->non_contig->consistent->multithread->error | 2 months ago |
Project README is empty