已合并
docs:add skill for reg ascir #1281
docs:add skill for reg ascir #1281
已合并
wangmingming创建于 7月14日
wangmingming成员
7月14日

Pull Request

描述

新增 af-reg-ascir Skill,为 graph-autofusion 项目提供 ASCIR 算子注册、修改、dtype 扩展、tmp buffer 注册及配套 UT/ST/E2E 测试的辅助指引,并覆盖 regbase 构建注册、ATT、Codegen、Python 暴露、性能模型、打包和上板故障诊断的完整修改面。

Skill 覆盖的核心能力:

  • 指导新增或修改 ASCIR 算子注册流程(REG_ASC_IR、ATT/Codegen 实现类、注册表)。
  • 辅助维护 V35/V2 ASCIR 注册、ATT、Codegen 和性能模型。
  • 指导 dtype 扩展、类型转换(GetConversionDtype)和 tmp buffer 注册(CalcTmpBufSize/CalcXxxTmpSizeV2)。
  • 每个新增 ASCIR 默认考虑并补充 backend E2E;更新 ASCIR 时强制审计现有 E2E 是否需同步修改。
  • 参考 BesselJ0 V2 给出 share graph、backend generator、ICPU 运行与精度验证、CMake 和统一测试入口的完整结构。
  • 按完整矩阵检查 regbase 构建/注册、ATT、Codegen、Python ops/IR Attr、perf、UT、share graph、backend E2E、脚本与打包。
  • 识别 regbase 内部 include、官方 AscendC API 头缺失、Device 编译选项、旧包加载等上板故障。
  • 根据输入输出、模板属性、多输出和 dtype 变化给出最小修改方案。

变更文件:

  • 新增 .claude/skills/af-reg-ascir/README.md:Skill 说明、功能、触发场景和验证方法。
  • 新增 .claude/skills/af-reg-ascir/SKILL.md:Skill 主体,包含触发场景、执行原则、信息收集、关键路径、注册机制、新增/修改/dtype 扩展/UT/ST 生成流程、完整修改面检查矩阵、regbase 与官方 API 头规则、Python 暴露规则、上板错误分阶段诊断表、提交历史回归检查和验证要求。
  • 修改 .claude/settings.json:在 allowed_skills 中注册 Skill(af-reg-ascir)。

变更类型

关联的Issue

关联 issue:#183

Issue 链接:https://gitcode.com/cann/graph-autofusion/issues/183

如何测试

  1. 在 opencode 中加载本 Skill,输入“帮我新增一个 ASCIR 算子注册”,确认 Skill 正确触发并按流程给出方案。
  2. 输入“给 ASCIR 算子增加一个 dtype 支持”“这个 ASCIR 算子需要注册 tmp buffer 吗?”“修改 ASCIR API 名称需要同步改哪些地方?”验证触发场景。
  3. 静态检索 README/SKILL.md 中关键路径(ascir_builtin_ops_v2.cpp、v2_ascir_codegen_impl.h、share_graph、run_autofuse_test.sh)与仓库实际结构一致。

核对清单

其他信息

本 Skill 沉淀了 ASCIR adapter 适配过程中(issue #180 / PR #1257)积累的注册、regbase、Codegen、Python 暴露和上板故障经验,用于规范后续 ASCIR 新增/修改流程,减少遗漏。

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 wangmingming 的贡献)
Wwangmingming成员
7月14日 添加了label:enhancement
Wwangmingming成员
7月14日 创建了 pull request,commit 8ab2ea44
atomgit-bot
atomgit-bot
7月14日 评论:

变更摘要

此 PR 主要新增了一个名为 af-reg-ascir 的技能(Skill),并在 Claude 配置文件中完成注册。新增的技能定义文件共计约 708 行代码,用于扩展系统的技能能力。

主要改动

  • 注册新技能 af-reg-ascir:在 .claude/settings.json 的 enabledSkills 列表中新增了 Skill(af-reg-ascir) 条目,使该技能在系统中被启用。
  • 新增技能定义文件:伴随技能注册,新增了相关的技能定义/实现文件(共约 708 行),构成 af-reg-ascir 技能的核心逻辑。
likedislike
不准确?
atomgit-bot
atomgit-bot
7月14日 评论:

代码审查

✅ 未发现问题

likedislike
不准确?
CANN-robotCANN-robot成员
7月14日 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
7月14日 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here。
You can get sig-info at here


PR Approval Progress

✅ Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
repo-cann/graph-autofusion ✅ xchu42, zhang_shengjie, zhanj (3/2) ✅ zhanj (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

gcw_WTfSfUy7, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
CANN-robotCANN-robot成员
7月14日 将yangyongqiang0606,xchu42,zhang_shengjie,depeng1994,wqtshg_wt,peiyang,shengnan666,XuebinYang,sjtulxh,zhanj,zhujingjing,xuyafei,wangxiaotian995设为评审人
此处折叠了6条事件消息 查看更多
Wwangmingming成员
7月14日 修改了pull request 的描述
xchu42
xchu42成员
7月15日 评论:

/lgtm

likedislike
wangmingming成员
7月15日 评论:

compile

likedislike
Wwangmingming成员
7月15日 预合并成功(commit_id: a1323072df125429140faa7ed0890c8a821f5a3b)
CANN-robotCANN-robot成员
7月15日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
7月15日 评论:

流水线任务触发成功
任务链接 [49d34fa636604a67bf3df33ac83aee1b][流水线指导]

任务名称状态日志下载链接
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
pre_comment ✅ SUCCESS >>>>>
PreSmoke_A900_npupool ✅ SUCCESS >>>>>

[2026-07-15 17:42:04]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
7月15日 评论:

流水线任务触发成功
任务链接 [ae489a1d254d4c9a8faf3980b92fe2aa][流水线指导]

任务名称状态日志下载链接
codecheck ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
codecheck_checkpr ✅ SUCCESS
pre_comment ✅ SUCCESS >>>>>
codecheck_codestyle ✅ SUCCESS >>>>>
codecheck_precommit ✅ SUCCESS >>>>>

[2026-07-15 17:37:56]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
7月15日 评论:

流水线任务触发成功
任务链接 [7f47f741e938469bb8048efc26695370][流水线指导]

任务名称状态日志下载链接
UT_Test_Python_superkernel ✅ SUCCESS >>>>>
ST_Test_Python_superkernel ✅ SUCCESS >>>>>
UT_Test_superkernel ✅ SUCCESS >>>>>
UT_Test_autofuse_framework ✅ SUCCESS >>>>>
ST_Test_autofuse_framework ✅ SUCCESS >>>>>
UT_Test_autofuse_ascendc_api ✅ SUCCESS >>>>>
ST_Test_autofuse_ascendc_api ✅ SUCCESS >>>>>
ST_Test_autofuse_e2e ✅ SUCCESS >>>>>
pre_comment ✅ SUCCESS >>>>>

[2026-07-15 17:35:22]    CI执行结束

likedislike
CANN-robotCANN-robot成员
7月15日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
7月15日 添加了label:ci-pipeline-passed
zhang_shengjie成员
7月15日 评论:

/lgtm

likedislike
CANN-robotCANN-robot成员
7月15日 添加了label:lgtm
wangmingming成员
7月16日 评论:

参考https://mp.weixin.qq.com/s/X8WycG-70lhxB4sOdz9uJQ?scene=1&click_id=164741409这个软文的风格,只参考风格,不参考内容,给即将要直播的 graph-autofusion 仓库写一段宣传软文,参考昇腾 CANN 官方内容:https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/programug/graphdevg/autofuse_1_0000.html和 graph-autofusion 仓库描述https://gitcode.com/cann/graph-autofusion,或者你对 autofusion 自动融合有更好的理解,也可以补充。另外,graph-autofusion 仓库有 superkernel 业务内容,不属于 autofusion,不要体验 superkernel 的字眼,要求写的宣传软文要有足够吸引力。

likedislike
wangmingming成员
7月16日 评论:

PPT 内容通俗总结

这一页是昇腾 CANN 讲解AI 模型必须做算子自动融合的核心原因,先列出当下大模型、推荐网络遇到的三大性能痛点,最后提炼共性问题:

三个核心性能难题

  1. 大 Transformer 类模型:主核算子外围细碎小算子扎堆
    像 DeepSeek-V4 这类大模型,每一层 Attention/MoE 主计算算子周围,都会伴随 reshape、cast、concat 这类轻量 “胶水小算子”。
    每一层都要单独调度、读写全局内存,61 层重复叠加后,内核调度、内存反复搬运的开销会被成倍放大,拖慢整体速度。
  2. 业务模型算子组合不固定,胶水结构版本多变
    同一个业务功能,不同模型版本的算子串联顺序不一样,比如版本 A 是 reshape→reduce→where,版本 B 换成 reshape→gather→cast→where。
    传统固定规则的融合方案只能识别写死的算子路径,新版本的组合很容易漏掉,没法自适应变化;必须靠能理解算子语义、动态识别融合机会的方案。
  3. 推荐网络:算子分布零散、碎片化组合多
    推荐模型没有统一的大主核,Embedding、特征交叉、稀疏分支、MLP 之间穿插大量零散小算子,张量形状、计算路径很分散。
    单个小算子优化收益不明显,但这类算子数量极多,全部累加起来,整体性能损耗非常可观。

三大痛点共同特性

AI 模型普遍存在算子数量多、算子组合不固定、覆盖场景广的特点。
如果不做自动算子融合,大量细碎算子会带来频繁内核调度、反复读写全局内存 GM 的额外开销,造成严重性能损耗,这也是 AutoFuse 自动融合框架诞生要解决的核心问题。

likedislike
zhanj
zhanj成员
7月16日 评论:

/approve

likedislike
CANN-robotCANN-robot成员
7月16日 添加了label:approved
CANN-robotCANN-robot成员
7月16日 合入了pull request