已关闭
[Documentation|文档反馈]: add skill for reg ascir #183
zqmin创建于  7月14日关闭于  7月14日
zqmin
zqmin成员
7月14日 创建

Document Link(文档链接)

graph-autofusion 项目 ASCIR 注册流程目前缺少统一的、可被 agent 自动触发的操作指引文档。开发者新增/修改 ASCIR 算子时,容易遗漏 regbase 构建注册、ATT、Codegen、Python 暴露、性能模型、UT/ST/E2E、打包和上板故障诊断中的某些环节。

Issues Section(问题文档片段)

ASCIR 注册涉及完整修改面,包含但不限于:

  • AscendC 实现(主 API、helper、输入输出、模板属性、dtype、tmp buffer)
  • regbase 构建与注册(*_reg_base.h 生成、ascendc_reg_base_api_register.cpp)
  • ATT 实现与 perf 名称
  • Codegen 实现(ApiCall、API 名、LoadApiHeaderFiles/IncludeApiHeaderFiles、tmp buffer、dtype 转换、节点校验)
  • ASCIR 注册表(REG_ASC_IR、Input/Output/Attr/ComputeType/Impl/dtype map)
  • 性能模型(ascir_api_perf_v2.cpp)
  • Python 暴露(pyascir.h 的 REGISTERED_OPS、pyascir.cpp 的 IR Attr 绑定、ascir_api.py 易用 API)
  • UT/ST/E2E(regbase UT、Codegen UT、share graph、backend E2E、run_autofuse_test.sh 入口)
  • JIT 编译参数(Host 与 Device 选项分离)
  • 构建打包同步

当前没有一份文档将这些环节整合为可按步骤执行、可按矩阵检查的指引,导致每次新增/修改 ASCIR 都需要重复踩坑(如 regbase 内部 include 残留、官方 AscendC API 头缺失、Python IrAttr 属性未绑定、Device 编译选项未分离等)。

Existing Issues(存在的问题)

  1. 缺少统一的 ASCIR 注册/修改操作流程文档,开发者凭经验修改,易遗漏修改面。
  2. LoadApiHeaderFiles()(项目内 regbase 头)与 IncludeApiHeaderFiles()(CANN 官方头)容易混用或遗漏,只在真实 Device 编译时才暴露。
  3. regbase 内部 #include "helper.h" 残留会导致 Device 编译报 file not found,缺少明确处理规则。
  4. Python IrAttr 属性(如 ShiftedChebyshev 的 n)未绑定会在上板构图阶段报 IrAttr object has no attribute,C++ E2E 无法覆盖。
  5. 新增 ASCIR 是否必须补 backend E2E、更新 ASCIR 时是否需同步现有 E2E,缺少强制决策规则。
  6. 上板错误(acl/acl.h、helper.h file not found、ERFC/Lgamma undeclared、out of scbzi imm range、undefined symbol 等)缺少分阶段诊断表。

期望的文档改进

新增 af-reg-ascir Skill(.claude/skills/af-reg-ascir/),作为 agent 可自动触发的操作指引,包含:

  • 触发场景与执行原则
  • 信息收集模板(新增算子、修改算子、批量 dtype 注册)
  • 关键路径清单(V1/V2 注册表、ATT、Codegen、reg_func、perf、Python、UT/ST)
  • 新增 ASCIR 算子流程(Step 1~7:检查存在 → ATT 类 → Codegen 类含 IncludeApiHeaderFiles 强制判定 → tmp buffer → 注册 → 周边注册 → 测试)
  • 修改已有 ASCIR 流程(引用清单 → 兼容性判断 → 精准修改 → 影响范围验证)
  • dtype 扩展流程
  • UT/ST 生成流程(含 BesselJ0 V2 参考结构、E2E 强制决策规则、更新 ASCIR 时的 E2E 审计表)
  • 完整修改面检查矩阵
  • regbase 与官方 API 头文件规则
  • Python 暴露完整性规则
  • 上板错误分阶段诊断表(含已验证问题样本)
  • 提交历史回归检查
  • 验证要求(静态/编译/测试)

关联 PR:https://gitcode.com/cann/graph-autofusion/pull/1281

likedislike
zqminzqmin成员
7月14日 添加了label:documentation
wangmingming成员
7月14日 评论:

分析处理中

likedislike
Wwangmingming成员
7月14日 将 gcw_WTfSfUy7 设为负责人
Wwangmingming成员
7月14日 issue状态由 进行中 改变为 已完成
Wwangmingming成员
7月14日 关闭了 issue
Wwangmingming成员
7月14日 修改了issue 的描述
CANN-robotCANN-robot成员
7月16日 添加了label:resolved