Graph-autofusion 是一个面向昇腾(Ascend)芯片的轻量级、解耦式组件集合,旨在通过自动融合技术加速模型执行。 目前已开源 SuperKernel 组件和 Autofuse 组件,未来将持续开放更多自动融合相关模块。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: add inductor cv validator skill Co-authored-by: chengzheng<chengzheng@huawei.com> # message auto-generated for no-merge-commit merge: !1742 merge feat/af-inductor-cv-validator into develop feat: add inductor cv validator skill Created-by: cheng-zheng Commit-by: rick cheng;chengzheng Merged-by: cann-robot Description: ## 描述 ### 一、主要解决的问题 #### 1.1 缺少统一的 Inductor CV 验证入口 Autofuse / Inductor CV 相关修改后,验证流程容易散落在临时脚本和手工命令里,缺少一个可复用、可迁移、可回归的统一 skill。 #### 1.2 缺少针对 CV 融合的完整操作手册 在 CV 场景里,环境部署、流程验证、精度定位、性能分析、单算子对比、全量矩阵验证经常需要一起看。如果没有统一规范,后续很难快速定位问题,也不方便做回归和看护。 #### 1.3 缺少可直接执行的矩阵验证脚本 需要一个能在不同 CANN / torchair / torch-npu 环境下运行的验证脚本,能够完成 env probe、dry-run 和正式矩阵执行,并把每个 case 的中间产物、日志和结果保存下来。 ### 二、修改方案 - 新增 af-inductor-cv-validator skill,作为 Inductor CV 验证入口。 - 新增 inductor_cv_guide.md,把工作流整理为六个章节: - CV 环境部署 - CV 融合流程验证 - CV 精度功能定位 - CV 性能分析 - CV 融合算子和单算子快速比对 - CV 全量矩阵验证 - 新增 scripts/run_inductor_cv_matrix.py,用于执行环境探测、干跑和正式矩阵验证。 - 新增 tests/test_run_inductor_cv_matrix.py,覆盖矩阵定义、vv_only 对照、mixed dtype、fragment08、env probe 等关键行为。 - 更新 .claude/skills/.gitignore 白名单,确保新 skill 可被仓库跟踪。 ### 三、验证方式 1. python3 -m pytest .claude/skills/af-inductor-cv-validator/tests/test_run_inductor_cv_matrix.py -q ### 四、变更类型 - [x] ✨ 新功能 - [x] 📝 文档内容更新 - [x] 📦 构建过程或辅助工具的变动 ### 五、核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于 commit message 的格式 ### 六、补充说明 - 本 PR 主要面向 CV 融合验证与看护流程,不影响 SuperKernel 主路径。 - 所有验证建议都按 case 目录保留日志、tiling 文件、生成代码和结果,方便后续回归。 See merge request: cann/graph-autofusion!1742 | 1 个月前 | |
切换CCE集群 | 1 个月前 | |
fix: 兼容Windows安装默认skills (#194) Co-authored-by: hamburgerbobo<1295829121@qq.com> # message auto-generated for no-merge-commit merge: !1369 merge fix/install-default-skills-windows-compat into develop fix: 兼容Windows安装默认skills (#194) Created-by: hamburgerbobo Commit-by: hamburgerbobo Merged-by: cann-robot Description: ## 描述 .opencode/plugins/install-default-skills.ts 在 opencode 启动时自动安装四个默认 skill(gitcode-pr、gitcode-issue、api-doc-generator、gitcode-pipeline)。原实现委托给 bash 脚本 .claude/skills/default-skills/scripts/install-default-skills.sh,在 Windows 上存在两层阻断: 1. **TS 层短路**:插件检测 bash --version,原生 Windows 无 bash 时直接 return,不执行任何安装。 2. **Shell 脚本依赖**:install-default-skills.sh 使用 ln -sfn(Windows 普通用户无符号链接权限)、/tmp、mktemp、timeout 等 Unix 专有依赖。 本 PR 用 Node.js 原生 API(fs/path/os/child_process)重写安装逻辑,移除 bash 硬依赖,使插件在 Linux 与 Windows 上均能自动安装默认 skills,且不破坏现有 Linux 行为。.sh 脚本保留不动,供 Claude Code 手动场景(Linux)使用。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue #194 ## 如何测试 **前提条件**:系统已安装 git 并在 PATH 中(Linux/Windows 均默认随 Git for Windows 提供)。 **Linux 验证(等价性)**: 1. 删除 .claude/skills/_remote/ 与四个 skill 一级目录链接 2. 启动 opencode,观察安装提示 3. 验证 _remote/<skill>/ 真实目录存在,一级目录为相对路径符号链接 -> _remote/<skill> 4. 二次启动,hash 无变化时不打印重启提示(幂等) 5. 断网启动,验证 .opencode_skills_error marker 与提示打印 **Windows 验证(新增能力)**: 1. 原生 Windows(无 bash)启动 opencode 2. 验证四个 skill 自动安装,一级目录为 junction(无需管理员权限) 3. 验证 _remote/<skill>/SKILL.md 可访问 **已执行验证**(Linux 环境): - TypeScript strict 模式类型检查通过 - fresh install:4 个 skill 以相对路径符号链接安装,SKILL.md 可访问 - 幂等性:二次运行无变更提示、无错误 marker - 错误路径:模拟 git clone 失败,正确写 .opencode_skills_error 并打印清晰提示 - .gitignore 幂等更新,无重复条目,保留尾换行 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 **设计要点**: - 跨平台链接:Windows 用 junction(无需管理员权限,目录专用,target 用绝对路径);Unix 保持相对路径 symlink(与 .sh ln -sfn _remote/$skill 等价,仓库内可移植) - 临时目录:os.tmpdir() + fs.mkdtempSync 替代硬编码 /tmp,try/finally + fs.rmSync force:true 清理 - 网络探测合并到 git clone --depth 1(带 CLONE_TIMEOUT_MS 超时),去除 curl/wget 预检测,减少平台分支 - DEFAULT_SKILLS、REPO_URL、CLONE_TIMEOUT_MS 集中在文件顶部常量,与 .sh 保持一致 - 错误处理保留原有 .opencode_skills_error marker + 延迟打印逻辑,catch 块按 strict 模式类型安全处理 unknown error **红线自查**:不硬编码敏感信息(REPO_URL 为公开仓库地址);资源释放覆盖异常分支;仅改 TS 插件,不扩大修改范围。 **安全提示**:issue 创建过程中误建了测试 issue #193(已加评论标注,GitCode API 关闭端点有兼容问题未能关闭,请社区协助关闭)。 See merge request: cann/graph-autofusion!1369 | 2 个月前 | |
修复 Broadcast 后 Reduce source reuse 判断 Co-authored-by: weishitoken<huangqianqian15@huawei.com> # message auto-generated for no-merge-commit merge: !1819 merge fix/reduce-broadcast-reuse-guard into develop fix: 修复 Broadcast 后 Reduce source reuse 判断, 避免修改复用的broadcast数据导致精度失败 Created-by: wei_shi Commit-by: weishitoken Merged-by: cann-robot Description: # Pull Request ## 描述 修复 Reduce source reuse 判断遗漏上游 Broadcast 的问题。当 Broadcast 的 B 轴与 Reduce 的 R 轴具有相同 vectorized_axis 时,禁止复用输入 source,避免 Broadcast 与 Reduce 的轴语义冲突,错误复用,导致出现精度问题。 ## 变更类型 <!-- [x] 表示选中 --> - [x] Bug 修复 - [ ] 新功能 - [ ] 代码风格更新(格式化,局部变量) - [ ] 重构(既不修复错误也不增加功能的代码变动) - [ ] 构建过程或辅助工具的变动 - [ ] 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 使用 CANN 9.2.0 配置并构建 aihac_codegen 和 test_main:均成功。 2. 针对本次 4 个变更文件执行 pre-commit run --files ...:基础检查、clang-format、codespell 和 OAT 检查均通过。 3. 执行 git diff --check:通过。 4. 目标测试运行受既有 liboptimize.so ABI/链接问题阻塞,未进入 gtest,错误为缺少 af::GraphUtils::RelinkGraphEdges 符号。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 分支相对 develop 仅包含 4 个目标文件:1 个测试构建配置、1 个共享 helper 和 2 个生产路径修改。 - .gitignore 中的既有本地修改未纳入本分支提交。 See merge request: cann/graph-autofusion!1819 | 28 天前 | |
refactor: protobuf生成切换工程函数 Co-authored-by: Feiteng Zheng<zhengfeiteng1@h-partners.com> # message auto-generated for no-merge-commit merge: !1815 merge 20260824-switch-cmake-protobuf-generate into develop refactor: protobuf生成切换工程函数 Created-by: zhengfeiteng Commit-by: Feiteng Zheng Merged-by: cann-robot Description: # Pull Request ## 描述 protobuf生成切换工程函数。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!1815 | 29 天前 | |
!1820 merge develop into master 【PR】: sync develop to master 0824 Created-by: depeng1994 Commit-by: liyuewei;mclll;zhang_shengjie;zhengfeiteng Merged-by: cann-robot Description: # Pull Request ## 描述 请清晰准确地描述本次 Pull Request 的意图和变更内容。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!1820 | 28 天前 | |
fix: rename ASCIR Expm and improve small-value precision Co-authored-by: zqmin<zengqingmin2@huawei.com> # message auto-generated for no-merge-commit merge: !1673 merge feat/ascir-expm1-precision-fix into develop fix: rename ASCIR Expm and improve small-value precision Created-by: zqmin Commit-by: zqmin Merged-by: cann-robot Description: # Pull Request ## 描述 将 Autofuse V35 ASCIR 算子从 Expm 全链路重命名为 Expm1,不保留旧接口兼容层;将 regbase 的 Exp(x) - 1 MicroAPI 实现替换为参考 ops-math@8dbdf417d26110f289c6420693fdff1823722da0 的高精度 SIMT 算法,修复接近零输入的灾难性抵消问题。 同步更新 ASCIR 注册、ATT、Codegen、性能注册、Python/C++ 绑定、GE bridge、share graph、regbase 资产和 backend E2E。BF16 E2E 增加 0、-0 及多组正负小值精度回归。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. cmake --build build --target ascir_builtin_ops -j 8:通过。 2. pre-commit 全套检查:trailing whitespace、EOF、YAML、large files、merge conflicts、private key、JSON、clang-format、ruff、codespell 和 OAT 全部通过。 3. 受控 autofuse/ 源码静态检索确认旧 Expm、ExpmExtend、ExpmImplVF、Expm1ImplVF、kExpm、expm_reg_base.h、expm_test 无残留。 4. CANN 9.2 隔离环境已验证 Codegen 测试和生成 Device C++ 编译;tikicpulib 数值执行受环境中 BF16→FP32 CastExtend 的 pv_reg_read 未知指令限制,未作为本次算法失败处理。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次按需求有意删除旧 Expm Python/C++/ASCIR 名称,不提供 alias 或 wrapper。SIMT 路径可能增加执行成本,仿真耗时不作为性能依据;真实硬件性能后续按需 profiling。 See merge request: cann/graph-autofusion!1673 | 1 个月前 | |
fix(superkernel): skip empty model streams Filter streams without tasks while preserving stream-to-task alignment. Reuse a task buffer sized to the largest non-empty stream and treat all-empty models as valid graphs. Extend RI task stubs and regression coverage for empty, mixed, and large task-count scenarios. | 27 天前 | |
chore: align format and pre-commit configs Co-authored-by: ling-DT<lingxing@huawei.com> # message auto-generated for no-merge-commit merge: !686 merge sync-ge-clang-format-develop into develop chore: align format and pre-commit configs Created-by: ling-DT Commit-by: ling-DT Merged-by: cann-robot Description: # Pull Request ## 描述 同步项目格式化与 pre-commit 配置: 1. 将 .clang-format 对齐到 cann/ge develop 分支配置,统一后续 C/C++ 代码格式化规则。 2. 将 .pre-commit-config.yaml 从 ops-nn 同步到当前仓,补充基础检查、clang-format v18.1.8、ruff、codespell 以及 OAT pre-commit 检查。 ## 变更类型 请选择本次引入的变更类型: - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 描述测试此变更的步骤和前提条件: 1. 检查 PR diff 仅包含 .clang-format 与 .pre-commit-config.yaml 配置同步。 2. 创建 PR 后评论 compile,观察编译流水线是否通过。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本 PR 不涉及源码逻辑变更;当前分支提交已合并为单个 commit。 See merge request: cann/graph-autofusion!686 | 3 个月前 | |
【PR】: 更新安装方式 Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !1244 merge develop into develop 【PR】: 更新安装方式 Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: # Pull Request ## 描述 更新CANN安装方式中的CANNLAB安装方式,包括更新图片以及安装步骤说明等 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!1244 | 2 个月前 | |
!1301 merge develop into master 【PR】: sync develop to master 0715 Created-by: yangyongqiang0606 Commit-by: czways;cann-robot;wanghuajie;ZhaoBaiwei;shengnan666;xingzhixiong Merged-by: cann-robot Description: # Pull Request ## 描述 sync develop to master 0715 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!1301 | 2 个月前 | |
fix: 修复 Issue 261-276 安全加固缺陷 Co-authored-by: gcw_V3YyYBt1<gaoxin32@huawei.com> # message auto-generated for no-merge-commit merge: !1791 merge develop-issue into develop fix: 修复 Issue 261-276 安全加固缺陷 Created-by: gcw_V3YyYBt1 Commit-by: gcw_V3YyYBt1 Merged-by: cann-robot Description: # Pull Request ## 描述 本次 PR 修复了 public 仓库中 Issue #261-#276 共 15 个安全加固类缺陷,涉及容器越界、空指针解引用、内存泄漏、无上界内存分配四类问题。涵盖 14 个 C++ 源文件,均为防御性编程加固。 关联 Issues: #261, #262, #264, #265, #266, #267, #268, #269, #270, #271, #272, #273, #274, #275, #276 ## 背景 在代码静态分析与安全审计中,发现以下四类潜在风险: 1. **容器越界**:外部数据驱动的容器访问未做充分边界检查(#261 ONNX attribute(0)、#262 transpose vectorized_repeats 空容器)。 2. **空指针解引用**:内部 shared_ptr/bare pointer 在解引用前未校验非空(#264 Expression::Compare、#265 HcomTopoInfo、#266 reuse_schedule_group、#268 pyascir、#269 node.cc、#270 graph_utils_ex、#271 readable_dump、#272 NddmaApi、#273 vector_func_partitioner)。 3. **逻辑反转**: to_json 中三元运算符条件反转,IsValid() 时错误返回空串,实际应在 impl_==nullptr 时返回空串(#267)。 4. **内存泄漏与无上界分配**:PGO 生成代码中 malloc 未在 return 前 free(#274);反序列化路径中读取外部文件时仅做下界校验,无上界防护(#275 model_serialize、#276 graph_utils)。 ## 修改方案 按问题类型分组修复,每处均在调用点加最小防御性校验: **容器越界(2 项)** - ge_ir_utils.cc:1241:ONNX DecodeGraph 访问 attribute(0) 前增加 attribute_size() 非空检查,空时报错返回 false。 - transpose_v2.cpp:30:GetTensorVectorizedRepeats 成功后校验 vector 非空,并改用 back() 替代 size()-1。 **空指针解引用(9 项)** - expression.cc:181:Compare 同时校验 this->impl_ 和 e.impl_。 - hcom_topo_info.cc:32:函数入口增加 group != nullptr 检查。 - tiling_code_gen_impl.cpp:4969:解引用 reuse_schedule_group shared_ptr 前先做非空断言。 - pyascir.cpp:218:PyUnicode_AsUTF8 返回 nullptr 时抛 TypeError。 - node.cc:576:GetOwnerNodeBarePtr() 返回 nullptr 时 continue。 - graph_utils_ex.cc:146,150:拆分 GetComputeGraph 返回值,加 GE_CHECK_NOTNULL。 - readable_dump.h:78:GetOpDesc() 返回 nullptr 时 continue 跳过该节点。 - ascir_api_perf_v2.cpp:129:node_ptr->GetType() 加 nullptr 三元判断兜底 "Nddma"。 - vector_func_partitioner.cpp:697:GetNodeCluster 返回 nullptr 时 continue。 **逻辑反转(1 项)** - base_types_printer.cpp:14:修正三元顺序,IsValid() 时取 Str().get(),否则取 ""。 **内存泄漏与无上界分配(3 项)** - tiling_code_gen_impl.cpp:2833,2939:仅在 PGO/inductor 路径 return 前注入 free(memory),非 PGO 路径不注入,避免误伤。 - model_serialize.cc:1143:LoadWeightFromFile 分配前加 2GB 上界(kMaxWeightLength = 2GiB)。 - graph_utils.cc:1030:ConvertFileConstToConst 加相同 2GB 上界(kMaxFileLength = 2GiB)。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构 - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue #261 #262 #264 #265 #266 #267 #268 #269 #270 #271 #272 #273 #274 #275 #276 ## 如何测试 1. 编译 Autofuse 与 SuperKernel 模块无报错(sh build.sh -j 8)。 2. 人工走读每处加固点,确认与原 issue 分析一致,不破坏原正常逻辑分支。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我在标题中使用了合适的类型标签 - [x] 我已详细阅读了贡献指南(CONTRIBUTING.md) ## 其他信息 See merge request: cann/graph-autofusion!1791 | 28 天前 | |
docs: 补充项目规范指导(#95) Co-authored-by: Jett_Woo<wujinteng1@huawei.com> # message auto-generated for no-merge-commit merge: !732 merge feature/project-spec into develop docs: 补充项目规范指导(#95) Created-by: Jett_Woo Commit-by: Jett_Woo Merged-by: cann-robot Description: # Pull Request ## 描述 补充 Graph-autofusion 项目级 agent 指导和规范文档,并增强 af-code-reviewer skill 的代码检视流程。 主要变更: - 新增 AGENTS.md,说明项目结构、构建测试入口、设计文档要求、GitCode 流程和 agent 工作规范。 - 新增 docs/guidelines/cross_feature_check.md,提供 SuperKernel、Autofuse、构建交付、测试和性能场景的交叉影响检查表。 - 新增 docs/guidelines/design_document_template.md,提供 Graph-autofusion 设计文档模板。 - 新增 docs/guidelines/编码红线.md,补充安全、资源、ABI/API、图改写、runtime 生命周期和构建交付红线。 - 优化 .claude/skills/af-code-reviewer,要求代码检视前读取规范并输出固定格式检查结果。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue Closes #95 Issue 地址:https://gitcode.com/cann/graph-autofusion/issues/95 ## 如何测试 描述测试此变更的步骤和前提条件: 1. 执行规范文件存在性和关键内容检查: test -f AGENTS.md && test -f docs/guidelines/design_document_template.md && test -f docs/guidelines/cross_feature_check.md && test -f docs/guidelines/编码红线.md && grep -q "af-code-reviewer" AGENTS.md && grep -q "af-build-runner" AGENTS.md && grep -q "af-test-developer" AGENTS.md && grep -q "编码红线" .claude/skills/af-code-reviewer/SKILL.md && grep -q "跨特性交叉影响" .claude/skills/af-code-reviewer/SKILL.md && grep -q "代码检视检查结果" .claude/skills/af-code-reviewer/SKILL.md && grep -q "SuperKernel" docs/guidelines/cross_feature_check.md && grep -q "Autofuse" docs/guidelines/cross_feature_check.md 2. 检查 PR diff 范围: git diff --stat upstream/develop...HEAD ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次仅补充项目规范、agent 指导和 skill 文档,不涉及源码、构建脚本或测试代码变更。 See merge request: cann/graph-autofusion!732 | 3 个月前 | |
fix: 修正版权声明中"contiditions"拼写错误应为"conditions" Co-authored-by: gcw_NLOuEjCz<1309002649@qq.com> # message auto-generated for no-merge-commit merge: !1374 merge dev_test into develop fix: 修正版权声明中"contiditions"拼写错误应为"conditions" Created-by: gcw_NLOuEjCz Commit-by: gcw_NLOuEjCz Merged-by: cann-robot Description: # Pull Request ## 描述 批量修正 5 个文件中 CANN 许可证头里的拼写错误: contiditions → conditions。 纯注释修正,不涉及任何代码逻辑变更。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue [#136](https://gitcode.com/cann/graph-autofusion/issues/136) 仅修改了5处,合并后关闭已关联的 Issue ## 如何测试 描述测试此变更的步骤和前提条件: 1. 全局搜索 contiditions,确认修改的5个文件无残留 2. 确认修改文件仅涉及版权声明注释行 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 纯文本拼写修正,无功能影响。 See merge request: cann/graph-autofusion!1374 | 2 个月前 | |
【PR】: 在 contributing 中提醒开发者通过 pre-commit 做代码格式化,避免流水线报错 Co-authored-by: 盛楠<titan.sheng@huawei.com> # message auto-generated for no-merge-commit merge: !1367 merge f_contributing into develop 【PR】: 在 contributing 中提醒开发者通过 pre-commit 做代码格式化,避免流水线报错 Created-by: shengnan666 Commit-by: 盛楠 Merged-by: cann-robot Description: # Pull Request ## 描述 在 contributing 中提醒开发者通过 pre-commit 做代码格式化,避免流水线报错 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!1367 | 2 个月前 | |
【PR】: 在 contributing 中提醒开发者通过 pre-commit 做代码格式化,避免流水线报错 Co-authored-by: 盛楠<titan.sheng@huawei.com> # message auto-generated for no-merge-commit merge: !1367 merge f_contributing into develop 【PR】: 在 contributing 中提醒开发者通过 pre-commit 做代码格式化,避免流水线报错 Created-by: shengnan666 Commit-by: 盛楠 Merged-by: cann-robot Description: # Pull Request ## 描述 在 contributing 中提醒开发者通过 pre-commit 做代码格式化,避免流水线报错 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!1367 | 2 个月前 | |
graph-autofusion is ready now! | 10 个月前 | |
fix: 修正版权声明中"contiditions"拼写错误应为"conditions" Co-authored-by: gcw_NLOuEjCz<1309002649@qq.com> # message auto-generated for no-merge-commit merge: !1374 merge dev_test into develop fix: 修正版权声明中"contiditions"拼写错误应为"conditions" Created-by: gcw_NLOuEjCz Commit-by: gcw_NLOuEjCz Merged-by: cann-robot Description: # Pull Request ## 描述 批量修正 5 个文件中 CANN 许可证头里的拼写错误: contiditions → conditions。 纯注释修正,不涉及任何代码逻辑变更。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue [#136](https://gitcode.com/cann/graph-autofusion/issues/136) 仅修改了5处,合并后关闭已关联的 Issue ## 如何测试 描述测试此变更的步骤和前提条件: 1. 全局搜索 contiditions,确认修改的5个文件无残留 2. 确认修改文件仅涉及版权声明注释行 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 纯文本拼写修正,无功能影响。 See merge request: cann/graph-autofusion!1374 | 2 个月前 | |
【PR】: 【质量加固】修复完善readme一致性,主要包括tensorflow和superkernel Co-authored-by: loading-zzq<zhongqizhang2603@163.com> # message auto-generated for no-merge-commit merge: !1734 merge readme-fix-new into develop 【PR】: 【质量加固】修复完善readme一致性,主要包括tensorflow和superkernel Created-by: loading-zzq Commit-by: loading-zzq Merged-by: cann-robot Description: # Pull Request ## 描述 修复完善readme一致性,主要包括tensorflow和superkernel。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.文档修改与更新,不涉及测试 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!1734 | 1 个月前 | |
【PR】: 【质量加固】修复完善readme一致性,主要包括tensorflow和superkernel Co-authored-by: loading-zzq<zhongqizhang2603@163.com> # message auto-generated for no-merge-commit merge: !1734 merge readme-fix-new into develop 【PR】: 【质量加固】修复完善readme一致性,主要包括tensorflow和superkernel Created-by: loading-zzq Commit-by: loading-zzq Merged-by: cann-robot Description: # Pull Request ## 描述 修复完善readme一致性,主要包括tensorflow和superkernel。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.文档修改与更新,不涉及测试 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!1734 | 1 个月前 | |
graph-autofusion is ready now! | 10 个月前 | |
docs: 文档国际化改造,支持中英文双语 | 3 个月前 | |
新增安全合规检测文件 Co-authored-by: 叶龙剑<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !55 merge master-3rd0129 into master 新增安全合规检测文件 Created-by: yelongjian Commit-by: 叶龙剑 Merged-by: cann-robot Description: # Pull Request ## 描述 新增安全合规检测文件,用于合规使用并管控三方件。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.NA ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!55 | 7 个月前 | |
fix: 修正版权声明中"contiditions"拼写错误应为"conditions" Co-authored-by: gcw_NLOuEjCz<1309002649@qq.com> # message auto-generated for no-merge-commit merge: !1374 merge dev_test into develop fix: 修正版权声明中"contiditions"拼写错误应为"conditions" Created-by: gcw_NLOuEjCz Commit-by: gcw_NLOuEjCz Merged-by: cann-robot Description: # Pull Request ## 描述 批量修正 5 个文件中 CANN 许可证头里的拼写错误: contiditions → conditions。 纯注释修正,不涉及任何代码逻辑变更。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue [#136](https://gitcode.com/cann/graph-autofusion/issues/136) 仅修改了5处,合并后关闭已关联的 Issue ## 如何测试 描述测试此变更的步骤和前提条件: 1. 全局搜索 contiditions,确认修改的5个文件无残留 2. 确认修改文件仅涉及版权声明注释行 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 纯文本拼写修正,无功能影响。 See merge request: cann/graph-autofusion!1374 | 2 个月前 | |
chore: update classify unrelease rules Co-authored-by: 凌星<lingxing@huawei.com> # message auto-generated for no-merge-commit merge: !1535 merge chore/classify-autofuse-unrelease into develop chore: update classify unrelease rules Created-by: ling-DT Commit-by: 凌星 Merged-by: cann-robot Description: # Pull Request ## 描述 将 autofuse 加入 classify_rule.yaml 的 release 分类,并将 autofuse/graph_metadef、autofuse/examples 加入 unrelease 分类。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 描述测试此变更的步骤和前提条件: 1. python3 -c "import yaml; yaml.safe_load(open('classify_rule.yaml', encoding='utf-8'))" 2. git diff --check ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本 PR 只包含 classify_rule.yaml 三行分类规则新增。 See merge request: cann/graph-autofusion!1535 | 1 个月前 | |
chore: update graph-autofusion version to 9.2.0 Co-authored-by: 凌星<lingxing@huawei.com> # message auto-generated for no-merge-commit merge: !1558 merge chore/update-gaf-version-9.2.0 into develop chore: update graph-autofusion version to 9.2.0 Created-by: ling-DT Commit-by: 凌星 Merged-by: cann-robot Description: # Pull Request ## 描述 参考 cann/ge PR 4199,将 Graph-Autofusion 版本更新到 9.2.0,并同步更新 asc-devkit、runtime、metadef 构建依赖版本要求到 >=9.2。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 描述测试此变更的步骤和前提条件: 1. git diff --check ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 对应 GE 版本更新 PR:https://gitcode.com/cann/ge/pull/4199 See merge request: cann/graph-autofusion!1558 | 1 个月前 |
Graph-autofusion
🔥Latest News
- [2026/04] Autofuse 组件开源! 在昇腾芯片上提供 Autofuse 自动融合功能,可以自动将相邻算子融合为1个,消除输入输出的搬运耗时,降低算子数量,优化算子总时长。
- [2025/10] Graph-autofusion 项目开源! 在昇腾芯片上提供 SuperKernel 融合功能,可以减少任务调度等待时间和调度开销,优化算子执行头开销。
🚀概述
Graph-autofusion 是一个面向昇腾(Ascend)芯片的轻量级、解耦式组件集合,旨在通过各种融合相关技术,加速模型执行。 目前已开源 SuperKernel 组件和 Autofuse 组件,未来将持续开放更多融合相关模块。
组件特点:
- 专注融合加速技术:基于 codegen 的 JIT 编译机制实现高效融合与加速。
- 模块化与解耦:各组件之间独立,可按需选用;底层依赖极少,仅依赖 AscendC 与 runtime 环境。
⚡️快速入门
- 若您想体验 Graph-autofusion 的完整构建、测试与样例运行流程,请参考:构建验证
- 若您希望了解 SuperKernel 组件的原理与使用,请参考: SuperKernel 简介。
- 若您希望了解 Autofuse 组件的原理与使用,请参考: Autofuse 简介与快速上手。
🔍目录结构
graph-autofusion/
├── autofuse # Autofuse 组件,Autofuse 源代码、测试、文档均在该子目录中
├── build.sh # 一键式项目工程编译脚本
├── cmake # 项目工程编译目录
├── CMakeLists.txt # 项目 CMakeLists
├── docs # 项目整体文档
│ ├── zh # 中文文档
│ │ ├── build.md # 一键式构建脚本文档
│ │ └── ... # 其他中文文档
│ └── en # 英文文档
│ ├── build.md # 一键式构建脚本文档
│ └── ... # 其他英文文档
├── scripts # 构建、环境安装和测试脚本
│ ├── env_install # 环境安装脚本
│ ├── package # 打包脚本
│ ├── test # 测试脚本
│ ├── check_env.sh # 环境检查脚本
│ ├── init_env.sh # 环境初始化脚本
│ ├── oat_check.sh # OAT 合规性检查脚本
│ └── support_multiple_versions_of_lcov.sh # 多版本 lcov 兼容脚本
├── super_kernel # SuperKernel 组件,SuperKernel 源代码、测试、文档均在该子目录中
├── README.md # graph-autofusion 项目整体功能介绍
└── README_en.md # graph-autofusion 项目英文介绍