CANN源码分析执行总纲

📅 2026/7/4 9:42:28
CANN源码分析执行总纲
Source Analysis — 执行总纲【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills角色分析算子源码tiling kernel 接口提取分支路径和参数维度产出代码路径清单、算子接口模型、参数定义和测试设计文档供下游 Step 5case mapper和 Step 6pytest消费。输入数据来源用途算子源码路径Step 1.2tiling / kernel / 接口分析平台参数npu_arch / soc_version / core_count / ub_sizeStep 1.0-1.3平台分支判断源码读取范围规则强制S2P0_file_manifest.json体积较大子 agent 只需文件清单和读取范围。主 Agent 在 Phase 0→1 过渡阶段提取tiling.file_listkernel.file_listtiling.excludedkernel.excluded按固定格式拼接为文本块后内联传入 Task A 和 Task D。子 Agent 严格按此范围读取不得自行添加。格式化模板Phase 0→1 过渡阶段主 Agent 将S2P0_file_manifest.json提取为以下文本块传入 Phase 1 Task A 和 Phase 2 Task D源码读取范围严格遵守禁止自行添加其他文件 【tiling】 - P0: {path} — {read_strategy 描述附 symbols} - P1: {path} — 仅读符号 {symbols}read_strategy{value} 【kernel】 - P0: {path} — 仅读 TILING_KEY_IS dispatch 块{key_count}条, pattern{pattern} - 总计 {kernel.total_key_count} 条 key 【排除】以下文件禁止读取 - {excluded path} — {reason}输出文件文件Phase说明S2P0_scout_t.mdPhase 0tiling 侦察报告分支可达性 平台标注S2P0_scout_k.mdPhase 0kernel 侦察报告dispatch 模式 key 数量S2P0_file_manifest.jsonPhase 0源码文件清单tiling/kernel 优先级 排除列表S2P1_path_list.jsonPhase 1代码路径清单 分支树S2P1_tiling_glossary.mdPhase 1tiling 变量含义表tiling 源码变量名 → 语义名映射S2P1_operator_model.jsonPhase 1算子接口模型inputs/outputs/attributes以_def.cpp为权威约束源S2P1_low_configs.jsonPhase 1常见网络 shape 配置语义参数名S2P2_analysis_data.jsonPhase 2紧凑格式分析数据LLM 生成assemble_dim_spec.py 的输入S2P2_dim_spec.jsonPhase 2维度范围规格由 assemble_dim_spec.py 从 S2P2_analysis_data.json 生成S2P2_param_def_groups.jsonPhase 2推导数据文件由 pick_dims.py 自动生成S2P2_reachability_data.jsonPhase 2可达性 分组中间数据update_path_list.py 输入S2P2_param_def.jsonPhase 2参数定义 约束 分组 tiling_keys由 builder 自动生成S2P2_gen_cases.pyPhase 2参数组合枚举脚本S2P2_cases.jsonPhase 2参数组合枚举结果S2P2_traceability.mdPhase 2推导追溯文档S2P3_test_design.mdPhase 3测试设计文档可选产物不阻塞门禁文件Phase说明S2P1_task_a_todo.mdPhase 1Task A 子 agent 进度跟踪命名固定S2P2_task_d_todo.mdPhase 2Task D 子 agent 进度跟踪命名固定执行顺序约束强制以下 Phase 必须按编号顺序逐步执行禁止跳步或抢跑。Phase任务执行方参考文档输入前置条件状态判断Phase 0Scout-Ttiling 侦察子 agent01-scout-tiling.md算子路径、平台参数算子路径 平台参数已就绪S2P0_scout_t.md已生成Phase 0Scout-Kkernel 侦察子 agent02-scout-kernel.md算子路径、平台参数同上S2P0_scout_k.md已生成Phase 0Scout-Verify校验 清单子 agent03-scout-verify.md算子路径、S2P0_scout_t.md、S2P0_scout_k.md路径Scout-T Scout-K 均完成S2P0_file_manifest.json已生成verification.statuspass/pass_with_fixesPhase 0→1提取读取范围文本块主 Agent本文件格式化模板S2P0_file_manifest.jsonPhase 0 全部完成文本块已格式化Phase 1Task A代码路径分析子 agent04-code-analyzer.mdprompt 模板见本文件 §子 Agent Prompt 模板 → Task A算子路径、平台参数、源码读取范围文本块、S2P0_scout_t.md、S2P0_scout_k.md路径、产出写入路径Phase 0→1 过渡完成S2P1_path_list.jsonS2P1_tiling_glossary.md已生成Phase 1Task B接口分析子 agent05-interface-analyzer.mdprompt 模板见本文件 §子 Agent Prompt 模板 → Task B算子路径、平台参数、产出写入路径同上S2P1_operator_model.json已生成Phase 1Task C网络搜索子 agent08-network-search.mdprompt 模板见本文件 §子 Agent Prompt 模板 → Task C算子名称、算子路径、平台参数、产出写入路径同上S2P1_low_configs.json已生成Phase 2Task D参数推导子 agent06-param-derivation.mdprompt 模板见本文件 §子 Agent Prompt 模板 → Task D算子路径、平台参数、源码读取范围文本块、S2P1_path_list.json、S2P1_operator_model.json、S2P1_low_configs.json路径、产出写入路径Phase 1 全部完成S2P2_analysis_data.json已写入assemble_dim_spec.py 已运行生成S2P2_dim_spec.jsonpick_dims.py 已生成S2P2_param_def_groups.json并格式化build_param_def.py 已运行产出S2P2_param_def.jsonS2P2_gen_cases.pyS2P2_cases.jsonS2P2_traceability.md已生成Phase 3a处理 disputed 路径主 Agent—Task D 返回的 disputed 列表Phase 2 完成S2P1_path_list.json已更新reachability groupPhase 3b生成测试设计文档主 Agent07-test-design-template.mdS2P2_param_def.json、S2P1_low_configs.json、Phase 3a 确认结果Phase 3a 完成S2P3_test_design.md已生成并行规则Phase 0Scout-T 和 Scout-K并行派发两者完成后派 Scout-VerifyPhase 1Task A、B、C并行派发无依赖Phase 2Task D串行依赖 Phase 1 全部完成Phase 33a 和 3b串行3b 依赖 3a 完成校验失败处理Scout-Verifyverification.statusfail→ 重跑失败的 Scout最多 1 次仍 fail → 触发轮次耗尽协议Phase 0→1 过渡pass/pass_with_fixes→ 进入 Phase 1完成标志S2P3_test_design.md已生成Phase 3a 的 disputed 路径已由用户确认无 disputed 则自动满足。子 Agent Prompt 模板主 Agent 派发 Task A/B/C/D 子 agent 时Read 本节对应模板替换占位符后作为 prompt 发送。禁止自行改写模板结构或措辞仅允许替换{占位符}。占位符定义占位符含义填入来源{op_name}算子名称Step 1.1{op_path}算子源码路径Step 1.2{npu_arch}NPU 架构Step 1.0{soc_version}SOC 版本Step 1.0{chip_model}芯片型号Step 1.0{core_count}VectorCore 核数Step 1.3{ub_size}UB 大小(KB)Step 1.3{output_dir}产物写入路径{op_path}/tests/whitebox/{skill_base}技能根目录绝对路径skill 自身路径{file_manifest_text}源码读取范围文本块Phase 0→1 过渡提取{scout_t_path}S2P0_scout_t.md 路径Phase 0 产出{scout_k_path}S2P0_scout_k.md 路径Phase 0 产出{path_list_path}S2P1_path_list.json 路径Phase 1 产出{operator_model_path}S2P1_operator_model.json 路径Phase 1 产出{low_configs_path}S2P1_low_configs.json 路径Phase 1 产出Task A代码路径分析你是代码路径分析专家。请执行 Phase 1 Task A代码路径分析tiling kernel。 **优先执行入口文件顶部的执行顺序约束节**。 请先 Read 参考文档 {skill_base}/references/source-analysis/04-code-analyzer.md然后按照文档中的规则逐步执行代码路径分析。 上下文参数 - 算子名称{op_name} - 算子路径{op_path} - platformnpu_arch{npu_arch}, soc_version{soc_version}, chip_model{chip_model}, core_count{core_count}, ub_size{ub_size} - skill_base{skill_base} - 产出写入路径{output_dir} - S2P0_scout_t.md 路径{scout_t_path} - S2P0_scout_k.md 路径{scout_k_path} {file_manifest_text} 请生成 S2P1_path_list.json 和 S2P1_tiling_glossary.md 到产出路径。完成后返回产出的文件路径和关键发现摘要路径总数、分组数、disputed 路径列表。Task B接口分析你是接口分析专家。请执行 Phase 1 Task B接口分析。 **优先执行入口文件顶部的执行顺序约束节**。 请先 Read 参考文档 {skill_base}/references/source-analysis/05-interface-analyzer.md然后按照文档中的规则逐步执行接口分析。 上下文参数 - 算子名称{op_name} - 算子路径{op_path} - platformnpu_arch{npu_arch}, soc_version{soc_version}, chip_model{chip_model}, core_count{core_count}, ub_size{ub_size} - skill_base{skill_base} - 产出写入路径{output_dir} 请生成 S2P1_operator_model.json 到产出路径。完成后返回产出的文件路径和接口模型摘要inputs/outputs/attributes 列表。Task C网络搜索你是网络搜索专家。请执行 Phase 1 Task C常见网络 shape 配置搜索。 **优先执行入口文件顶部的执行顺序约束节**。 请先 Read 参考文档 {skill_base}/references/source-analysis/08-network-search.md然后按照文档中的规则逐步执行网络搜索。 上下文参数 - 算子名称{op_name} - 算子路径{op_path} - platformnpu_arch{npu_arch}, soc_version{soc_version}, chip_model{chip_model}, core_count{core_count}, ub_size{ub_size} - skill_base{skill_base} - 产出写入路径{output_dir} 请生成 S2P1_low_configs.json 到产出路径。完成后返回产出的文件路径和搜索到的典型配置数量。Task D参数推导你是参数推导工程师。请执行 Phase 2 Task D路径枚举 参数推导。 **优先执行入口文件顶部的执行顺序约束节**。 请先 Read 参考文档 {skill_base}/references/source-analysis/06-param-derivation.md然后按照文档中的规则逐步执行参数推导。 上下文参数 - 算子名称{op_name} - 算子路径{op_path} - platformnpu_arch{npu_arch}, soc_version{soc_version}, chip_model{chip_model}, core_count{core_count}, ub_size{ub_size} - skill_base{skill_base} - 产出写入路径{output_dir} - S2P1_path_list.json 路径{path_list_path} - S2P1_operator_model.json 路径{operator_model_path} - S2P1_low_configs.json 路径{low_configs_path} {file_manifest_text} 完成后返回产出的文件路径、参数分组数量和关键发现摘要。Phase 3adisputed 路径处理规则Task D 返回的 disputed 列表路径可达性不确定的条目由主 Agent 处理向用户提问一次性问完所有 disputed 项选项全部接受建议 / 逐条确认用户确认后主 Agent 更新S2P1_path_list.jsonaccepted → reachableexcluded → dead 并记录原因无 disputed 则跳过此步骤文件索引文件职责读入时机01-scout-tiling.mdtiling 入口定位、平台分支可达性标注Phase 0 Scout-T02-scout-kernel.mdkernel dispatch 定位、key 统计、平台预过滤Phase 0 Scout-K03-scout-verify.mdScout 报告校验、文件清单生成Phase 0 Scout-Verify04-code-analyzer.md代码路径提取、约束分析、分支树构建Phase 1 Task A05-interface-analyzer.md接口签名分析、参数约束、API 暴露Phase 1 Task B06-param-derivation.md参数推导、组合枚举、分组、tiling_keysPhase 2 Task D07-test-design-template.md测试设计文档模板、group 汇总Phase 3b08-network-search.mdaclnn 文档参数类型提取、网络 shape 搜索、TensorList 约束保障Phase 1 Task C【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考