Graph-autofusion 是一个面向昇腾(Ascend)芯片的轻量级、解耦式组件集合,旨在通过自动融合技术加速模型执行。 目前已开源 SuperKernel 组件,未来将持续开放更多自动融合相关模块。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【PR】: 更新资料 Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !2523 merge develop into develop 【PR】: 更新资料 Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: # Pull Request ## 描述 更新描述信息。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 不涉及 ## 如何测试 根据最新资料进行测试 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!2523 | 21 天前 | |
merge: sync upstream master into develop | 2 个月前 | |
chore: 移除 superpowers skill 配置及 AGENTS.md 相关引用(#329) Co-authored-by: stevenaw0<huangguijun@huawei.com> # message auto-generated for no-merge-commit merge: !2204 merge chore/remove-superpowers-skill into develop chore: 移除 superpowers skill 配置及 AGENTS.md 相关引用(#329) Created-by: stevenaw0 Commit-by: stevenaw0 Merged-by: cann-robot Description: # Pull Request ## 描述 移除仓库中第三方 superpowers skill/插件的启用配置,并同步改写 AGENTS.md 中引用 superpowers 的段落。 具体变更: - .claude/settings.json:删除 enabledPlugins 中的 superpowers@claude-plugins-official 条目 - .opencode/opencode.json:删除 plugin 中的 superpowers@git+https://github.com/obra/superpowers.git 条目 - AGENTS.md:"需求开发与设计文档"章节去掉 superpowers brainstorming skill 表述,改为通用表述(仍必须先读取 docs/guidelines/design_document_template.md,并完成跨特性交叉影响、编码红线、测试设计、性能评估检查) 变更原因: 1. superpowers 插件需从 github.com 拉取,离线/内网环境下 opencode 启动会失败或长时间等待 2. 插件注入的 brainstorming 等流程与仓库自有设计文档规范冲突,AGENTS.md 需额外声明兜底规则 3. 第三方插件随仓库配置分发但未登记在开源软件清单中,存在合规风险 4. 仓库已有等价能力(设计文档模板 + 自建 skill),无需保留外部插件 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue https://gitcode.com/cann/graph-autofusion/issues/329 ## 如何测试 描述测试此变更的步骤和前提条件: 1. python3 -c "import json; json.load(open('.claude/settings.json')); json.load(open('.opencode/opencode.json'))",JSON 解析通过 2. grep -ri superpower .claude/settings.json .opencode/opencode.json AGENTS.md,无残留引用 3. git diff --name-only HEAD~1 | xargs pre-commit run --files,全部 Passed 4. 启动 AI 编码助手不再拉取 superpowers 插件,仓库自有 skill 与设计文档模板流程不受影响 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次变更仅涉及 AI 编码助手配置文件与贡献者指引文档,不涉及任何运行时代码、构建脚本和测试用例。 设计文档输出规范保持不变:仍必须读取仓库设计文档模板并覆盖模板中的每个章节。 See merge request: cann/graph-autofusion!2204 | 1 个月前 | |
更新act kernel头文件路径 | 19 天前 | |
graph-autofusion安装权限规范统一 Co-authored-by: q00889097<qinhan10@huawei.com> # message auto-generated for no-merge-commit merge: !1901 merge develop into develop graph-autofusion安装权限规范统一 Created-by: qinhan123 Commit-by: q00889097 Merged-by: cann-robot Description: # Pull Request ## 描述 请清晰准确地描述本次 Pull Request 的意图和变更内容。 统一graph-autofusion安装文件及目录权限,这些权限统一由cmake控制,删除安装脚本的修改权限操作 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 根据改动后的权限出包安装验证,是否符合预期:所有目录均为750,可执行程序为750,python/shell脚本为750, share/info/包名/script目录下安装卸载脚本等统一为740,其他文件为640,符号链接为777 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!1901 | 1 个月前 | |
【PR】: [docs] 补充concat说明文档 Co-authored-by: xchu42<chuxing@huawei.com> # message auto-generated for no-merge-commit merge: !2522 merge concat into develop 【PR】: [docs] 补充concat说明文档 Created-by: xchu42 Commit-by: xchu42 Merged-by: cann-robot Description: # Pull Request ## 描述 补充concat说明文档 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: NA ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!2522 | 21 天前 | |
feat: 接入普通多流规划入口与 Runtime 查询 Co-authored-by: xionglan2<xionglan2@huawei.com> # message auto-generated for no-merge-commit merge: !2519 merge multistream-module-pr3 into develop feat: 接入普通多流规划入口与 Runtime 查询 Created-by: xionglan2 Commit-by: xionglan2 Merged-by: cann-robot Description: # Pull Request ## 描述 接入公开 plan() 入口,串联路径覆盖和普通合流算法,返回节点流 ID 与所需流数。 - 支持 LoadBalance、MainStream、串行标签、零代价节点处理和依赖边透传。 - 增加参数、环及分配结果校验,规划过程保持输入图不变。 - 通过宿主 CANN Runtime 查询核数,导入包时不加载 Runtime,调用规划时查询失败会明确报错。 本 PR 仅包含普通规划入口、流分配、Runtime 查询和顶层导出四个文件,profiling 与加权规划留在后续 PR。 **依赖 PR 1(!2487)及 PR 2(!2492),两者均已合入 develop。本分支已更新至包含 PR 1、PR 2、PR 4 的 develop 基线,并解决顶层导出文件的冲突。** ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 暂无新增关联 Issue,从 !2478 拆分。 ## 如何测试 1. 在更新基线后的 PR 3 分支执行模型、普通规划及加权求解器回归:257 项测试通过,Runtime 使用模拟返回值验证,未进行真实设备验证。 2. Python 语法和 git diff --check 检查通过。 3. 1,536 个场景与原始完整实现的普通规划结果一致。 前置依赖已包含在本分支基线中;临时测试文件不随本 PR 提交。 ## 核对清单 - [ ] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本分支基于 develop 提交 7fcaa37f,仅保留一个 PR 3 功能提交。multistream/__init__.py 的同名新增冲突已解决,保留模型导出并增加 plan 入口。正式测试、文档与工程接入保留在 !2474。 See merge request: cann/graph-autofusion!2519 | 21 天前 | |
feat: IndirectLoad 支持动态 shape 候选回退与多值类型并修复静态后置 Reduce 性能回退 Co-authored-by: xiebangrui2025<xiebangrui@huawei.com> # message auto-generated for no-merge-commit merge: !2510 merge il-dtype-sweep into develop feat: IndirectLoad 支持动态 shape 候选回退与多值类型并修复静态后置 Reduce 性能回退 Created-by: xiebangrui2025 Commit-by: xiebangrui;xiebangrui2025 Merged-by: cann-robot Description: # Pull Request ## 描述 重新合入此前被回退(#2507)的 IndirectLoad 动态 shape 候选回退与多值类型(int64/uint64/int8/uint8/bool)能力,并在其基础上修复引入的性能回退。 性能回退根因:后置 Reduce 的 SIMT 输出 Store 内层 size 被无条件改为运行期 context.output_inner_size。对于静态 shape,该 size 本是编译期常量(如 2048),改动后每个输出元素都要多做一次运行期整型除/模并破坏 SizeAlign 常量折叠。修复后仅当内层 size 解析为非编译期常量(运行期 t->ksN)时才经 Context 传入,编译期常量恢复直接内联;动态 shape 路径能力不变。 两个独立 commit: 1. d579dec4 — 重新应用原合入(动态 shape 候选回退 + 多值类型 + 三个 sweep 聚合); 2. b6d423ae — 修复:静态后置 Reduce 内联编译期 inner size;并在 ST 增加稳定结构看护(静态生成码不含 output_inner_size,动态必须含)。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 描述测试此变更的步骤和前提条件: 1. 构建 codegen/pyautofuse:cmake --build build --target pyautofuse -j 16 2. 静态看护:运行 indirect_load_embedding_reduce_simt_test_codegen_v2,断言生成码不含 output_inner_size 且 Store 内联常量 3. 动态看护:运行 indirect_load_user_dynamic_shape_sweep_gather_sum_transpose_codegen_v2,断言生成码含 output_inner_size(运行期 t->ksN) 4. 回归:dtype / int64_dense / dynamic_shape 三个 sweep 的 codegen + E2E ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 静态 shape 生成码(修复后):targets.output0[(local_index / (2048)) * (KernelUtils::SizeAlign(2048, 32/sizeof(float))) + local_index % (2048)],Context 不含 output_inner_size;动态 shape 仍为 context.output_inner_size。 See merge request: cann/graph-autofusion!2510 | 23 天前 | |
【PR】: 新增中英文切换按钮 Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !1982 merge develop into develop 【PR】: 新增中英文切换按钮 Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: # Pull Request ## 描述 RAEDME以及一级文件夹根目录添加中英文跳转链接。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 不涉及 ## 如何测试 根据最新资料进行测试 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!1982 | 1 个月前 | |
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 | 4 个月前 | |
【PR】: AF日志易用性整改 Co-authored-by: s00357600sgd<shenguodong1@huawei.com> # message auto-generated for no-merge-commit merge: !1864 merge autofusion_log_daily_develop into develop 【PR】: AF日志易用性整改 Created-by: s003576sgd Commit-by: s00357600sgd Merged-by: cann-robot Description: # Pull Request ## 描述 整改工具扫描的日志中存在的拼写错误、中文、缺少度量单位等低级问题,并排查类似问题统一修改 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [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!1864 | 2 个月前 | |
【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 | 3 个月前 | |
!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 | 3 个月前 | |
chore: protect docs superpowers path Co-authored-by: zhang_shengjie<804425610@qq.com> # message auto-generated for no-merge-commit merge: !1854 merge att-analysis-pr-policy into develop chore: protect docs superpowers path Created-by: zhang_shengjie Commit-by: zhang_shengjie Merged-by: cann-robot Description: # Pull Request ## 1. 主要解决的问题 避免误提交 docs/superpowers/ 下的设计草稿、计划或其他临时文档。 ## 2. 修改方案 - 新增 scripts/reject_forbidden_paths.sh,检查 staged 文件路径。 - 在 .pre-commit-config.yaml 注册本地 hook。 - 对新增、修改和删除的 docs/superpowers/** 文件统一拒绝。 - 不删除仓库中已有的 docs/superpowers 文件。 mermaid flowchart LR A[git commit] --> B[pre-commit] B --> C{staged path under docs/superpowers?} C -->|是| D[拒绝提交] C -->|否| E[继续其他检查] ## 3. 测试用例说明 | 检查项 | 结果 | | --- | --- | | pre-commit 配置解析 | 通过 | | 正常 staged 文件 | 通过 | | staged docs/superpowers/.hook-test | 正确拒绝 | | git diff --check | 通过 | ## 4. 核对清单 - [x] 仅修改 hook 配置和 hook 脚本 - [x] 不包含顶层 docs/ 业务文档变更 - [x] 不删除已有设计文档 - [x] 不引入运行时或构建行为变化 ## 5. 其他信息 该 PR 无需编译或设备验证;合入后对后续提交生效。 See merge request: cann/graph-autofusion!1854 | 2 个月前 | |
chore: 移除 superpowers skill 配置及 AGENTS.md 相关引用(#329) Co-authored-by: stevenaw0<huangguijun@huawei.com> # message auto-generated for no-merge-commit merge: !2204 merge chore/remove-superpowers-skill into develop chore: 移除 superpowers skill 配置及 AGENTS.md 相关引用(#329) Created-by: stevenaw0 Commit-by: stevenaw0 Merged-by: cann-robot Description: # Pull Request ## 描述 移除仓库中第三方 superpowers skill/插件的启用配置,并同步改写 AGENTS.md 中引用 superpowers 的段落。 具体变更: - .claude/settings.json:删除 enabledPlugins 中的 superpowers@claude-plugins-official 条目 - .opencode/opencode.json:删除 plugin 中的 superpowers@git+https://github.com/obra/superpowers.git 条目 - AGENTS.md:"需求开发与设计文档"章节去掉 superpowers brainstorming skill 表述,改为通用表述(仍必须先读取 docs/guidelines/design_document_template.md,并完成跨特性交叉影响、编码红线、测试设计、性能评估检查) 变更原因: 1. superpowers 插件需从 github.com 拉取,离线/内网环境下 opencode 启动会失败或长时间等待 2. 插件注入的 brainstorming 等流程与仓库自有设计文档规范冲突,AGENTS.md 需额外声明兜底规则 3. 第三方插件随仓库配置分发但未登记在开源软件清单中,存在合规风险 4. 仓库已有等价能力(设计文档模板 + 自建 skill),无需保留外部插件 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue https://gitcode.com/cann/graph-autofusion/issues/329 ## 如何测试 描述测试此变更的步骤和前提条件: 1. python3 -c "import json; json.load(open('.claude/settings.json')); json.load(open('.opencode/opencode.json'))",JSON 解析通过 2. grep -ri superpower .claude/settings.json .opencode/opencode.json AGENTS.md,无残留引用 3. git diff --name-only HEAD~1 | xargs pre-commit run --files,全部 Passed 4. 启动 AI 编码助手不再拉取 superpowers 插件,仓库自有 skill 与设计文档模板流程不受影响 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次变更仅涉及 AI 编码助手配置文件与贡献者指引文档,不涉及任何运行时代码、构建脚本和测试用例。 设计文档输出规范保持不变:仍必须读取仓库设计文档模板并覆盖模板中的每个章节。 See merge request: cann/graph-autofusion!2204 | 1 个月前 | |
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 | 3 个月前 | |
【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 | 3 个月前 | |
【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 | 3 个月前 | |
graph-autofusion is ready now! | 11 个月前 | |
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 | 3 个月前 | |
docs: 修复文档中文标点、失效链接与公网地址声明表(#318) Co-authored-by: hamburgerbobo<gaoyubo4@huawei.com> # message auto-generated for no-merge-commit merge: !2136 merge docs/fix-md-problems into develop docs: 修复文档中文标点、失效链接与公网地址声明表(#318) Created-by: hamburgerbobo Commit-by: hamburgerbobo Merged-by: cann-robot Description: # Pull Request ## 描述 按文档批量审核结果(见关联 Issue)修复 22 个文件,均为纯文档与文档配套脚本修改,不改变任何代码语义(SuperKernel 相关文件按要求不在本 PR 处理,见文末说明): 1. 中文语境英文标点改为中文标点:AGENTS.md(6 处)、SECURITY.md(3 处)、docs/zh/precommit_guide.md(46 处)、docs/zh/autofuse/design/features/reduce.md(12 处)、slice_split.md(9 处)、docs/zh/build.md(2 处)、profiler ReadMe(3 处)、示例 README(1 处)。 2. 失效链接修复:architecture.md 已由 design/ 迁移至 introduction/(commit 035eed5d、3f0fb3e1),修复 README.md、README_en.md 及 EN codegen.md、schedule.md 共 4 处遗留旧链接。 3. docs/zh/build.md 示例路径 python3.7.5 改为 python3.x 占位写法,消除与 Python3>=3.8.0 的矛盾。 4. scripts/check_env.sh:新增 REQUIRED_GCC_MIN=7.3.0 与 GCC 版本校验(低版本报 ERROR),同步修正 build.md 已列出 GCC 依赖后的过时注释。 5. autofuse/README.md 第 49 行 3 处 Pytorch 统一为 PyTorch。 6. SECURITY.md/SECURITY_en.md 公网地址声明表:makeself 行的文件名更正为实际包含该 URL 的 docs/zh/build.md、docs/en/build.md;新增 cmake/fetch_cann_cmake.cmake 的 https://gitcode.com/cann/cmake.git 声明行。 7. README.md/README_en.md 目录树补充 docs/ 子目录(env_install/、figures/、guidelines/)与 scripts/reject_forbidden_paths.sh。 ## 变更类型 - [x] 📝 文档内容更新 ## 关联的Issue Closes #318 ## 如何测试 1. bash scripts/check_env.sh:确认 GCC 检查输出 [PASS] GCC x.x.x (>= 7.3.0) 2. pre-commit run --files <变更文件>:OAT Compliance Check 已本地通过 3. 核对 README 目录树与 docs/、scripts/ 实际内容一致;4 处链接目标文件均存在 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(docs:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 分支基于 upstream/develop(34580490)创建,行号已按最新基线核对。 - check_env.sh 为唯一脚本改动:仅 GCC 检查段新增版本比较,本地 bash -n 与实际运行均通过。 - 合入后建议执行 pre-commit run oat-check --all-files 复核声明表。 ## 双语配对同步说明(CI codecheck 要求) CI 的 md 双语配对检查要求:修改任一语言版本时,其配对文件(zh↔en 或 README↔README_en)须在同一 PR 中同步修改。本次按此要求补充以下同步修改: 1. autofuse/README_en.md:修正 TensorFlow 用例链接误指向中文版 README.md 的问题(改为 README_en.md)。 2. docs/en/build.md:与 docs/zh/build.md 同步,将 python3.7.5 示例路径改为 python3.x 占位写法。 3. docs/{zh,en}/autofuse/design/features/reduce.md、slice_split.md 与 docs/zh/.../codegen.md、schedule.md:统一补充"相关链接/Related Links"尾注,返回 AutoFuse 架构介绍(对齐 EN codegen/schedule 既有约定)。 4. docs/{zh,en}/precommit_guide.md:补充语言切换链接(对齐 autofuse/README 既有约定)。 5. profiler 说明文档 ReadMe.md 更名为 README.md(对齐仓库其余测试目录命名),标题规范为 Markdown 标题,README_en.md 补文件末尾换行。 ## SuperKernel 相关文件说明 按要求,以下 SuperKernel 相关修复不在本 PR 处理,待后续单独提交: - super_kernel/README.md 的 U+200B 零宽空格清理 - docs/{zh,en}/super_kernel/figures/ 下含空格文件名重命名(ICachePreload_ optimization.*、super kernel_diagram.excalidraw)及其引用更新 - docs/{zh,en}/super_kernel/super_kernel_migration_design.md 中文语境括号修正与语言切换链接 - super_kernel/examples/super_kernel_runtime_ascendc_only/README{,_en}.md 标点修正与语言切换链接 See merge request: cann/graph-autofusion!2136 | 1 个月前 | |
docs: 更新 README_en.md 中的文档链接 Co-authored-by: qq_40517592<panhailin@huawei.com> # message auto-generated for no-merge-commit merge: !2469 merge develop_1008 into develop docs: 更新 README_en.md 中的文档链接 Created-by: qq_40517592 Commit-by: qq_40517592 Merged-by: cann-robot Description: # Pull Request ## 描述 更新 README_en.md 中的文档链接,使其指向对应的英文文档: - SuperKernel Introduction:super_kernel/README.md → super_kernel/README_en.md - Autofuse Introduction and Quick Start:autofuse/README.md → autofuse/README_en.md - Contribution Guide:CONTRIBUTING.md → CONTRIBUTING_en.md ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 在 GitCode 上预览 README_en.md,点击上述三个链接,确认跳转到对应的英文文档。 2. 确认 super_kernel/README_en.md、autofuse/README_en.md、CONTRIBUTING_en.md 文件存在。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/graph-autofusion!2469 | 25 天前 | |
docs: 修复文档中文标点、失效链接与公网地址声明表(#318) Co-authored-by: hamburgerbobo<gaoyubo4@huawei.com> # message auto-generated for no-merge-commit merge: !2136 merge docs/fix-md-problems into develop docs: 修复文档中文标点、失效链接与公网地址声明表(#318) Created-by: hamburgerbobo Commit-by: hamburgerbobo Merged-by: cann-robot Description: # Pull Request ## 描述 按文档批量审核结果(见关联 Issue)修复 22 个文件,均为纯文档与文档配套脚本修改,不改变任何代码语义(SuperKernel 相关文件按要求不在本 PR 处理,见文末说明): 1. 中文语境英文标点改为中文标点:AGENTS.md(6 处)、SECURITY.md(3 处)、docs/zh/precommit_guide.md(46 处)、docs/zh/autofuse/design/features/reduce.md(12 处)、slice_split.md(9 处)、docs/zh/build.md(2 处)、profiler ReadMe(3 处)、示例 README(1 处)。 2. 失效链接修复:architecture.md 已由 design/ 迁移至 introduction/(commit 035eed5d、3f0fb3e1),修复 README.md、README_en.md 及 EN codegen.md、schedule.md 共 4 处遗留旧链接。 3. docs/zh/build.md 示例路径 python3.7.5 改为 python3.x 占位写法,消除与 Python3>=3.8.0 的矛盾。 4. scripts/check_env.sh:新增 REQUIRED_GCC_MIN=7.3.0 与 GCC 版本校验(低版本报 ERROR),同步修正 build.md 已列出 GCC 依赖后的过时注释。 5. autofuse/README.md 第 49 行 3 处 Pytorch 统一为 PyTorch。 6. SECURITY.md/SECURITY_en.md 公网地址声明表:makeself 行的文件名更正为实际包含该 URL 的 docs/zh/build.md、docs/en/build.md;新增 cmake/fetch_cann_cmake.cmake 的 https://gitcode.com/cann/cmake.git 声明行。 7. README.md/README_en.md 目录树补充 docs/ 子目录(env_install/、figures/、guidelines/)与 scripts/reject_forbidden_paths.sh。 ## 变更类型 - [x] 📝 文档内容更新 ## 关联的Issue Closes #318 ## 如何测试 1. bash scripts/check_env.sh:确认 GCC 检查输出 [PASS] GCC x.x.x (>= 7.3.0) 2. pre-commit run --files <变更文件>:OAT Compliance Check 已本地通过 3. 核对 README 目录树与 docs/、scripts/ 实际内容一致;4 处链接目标文件均存在 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(docs:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 分支基于 upstream/develop(34580490)创建,行号已按最新基线核对。 - check_env.sh 为唯一脚本改动:仅 GCC 检查段新增版本比较,本地 bash -n 与实际运行均通过。 - 合入后建议执行 pre-commit run oat-check --all-files 复核声明表。 ## 双语配对同步说明(CI codecheck 要求) CI 的 md 双语配对检查要求:修改任一语言版本时,其配对文件(zh↔en 或 README↔README_en)须在同一 PR 中同步修改。本次按此要求补充以下同步修改: 1. autofuse/README_en.md:修正 TensorFlow 用例链接误指向中文版 README.md 的问题(改为 README_en.md)。 2. docs/en/build.md:与 docs/zh/build.md 同步,将 python3.7.5 示例路径改为 python3.x 占位写法。 3. docs/{zh,en}/autofuse/design/features/reduce.md、slice_split.md 与 docs/zh/.../codegen.md、schedule.md:统一补充"相关链接/Related Links"尾注,返回 AutoFuse 架构介绍(对齐 EN codegen/schedule 既有约定)。 4. docs/{zh,en}/precommit_guide.md:补充语言切换链接(对齐 autofuse/README 既有约定)。 5. profiler 说明文档 ReadMe.md 更名为 README.md(对齐仓库其余测试目录命名),标题规范为 Markdown 标题,README_en.md 补文件末尾换行。 ## SuperKernel 相关文件说明 按要求,以下 SuperKernel 相关修复不在本 PR 处理,待后续单独提交: - super_kernel/README.md 的 U+200B 零宽空格清理 - docs/{zh,en}/super_kernel/figures/ 下含空格文件名重命名(ICachePreload_ optimization.*、super kernel_diagram.excalidraw)及其引用更新 - docs/{zh,en}/super_kernel/super_kernel_migration_design.md 中文语境括号修正与语言切换链接 - super_kernel/examples/super_kernel_runtime_ascendc_only/README{,_en}.md 标点修正与语言切换链接 See merge request: cann/graph-autofusion!2136 | 1 个月前 | |
docs: 修复文档中文标点、失效链接与公网地址声明表(#318) Co-authored-by: hamburgerbobo<gaoyubo4@huawei.com> # message auto-generated for no-merge-commit merge: !2136 merge docs/fix-md-problems into develop docs: 修复文档中文标点、失效链接与公网地址声明表(#318) Created-by: hamburgerbobo Commit-by: hamburgerbobo Merged-by: cann-robot Description: # Pull Request ## 描述 按文档批量审核结果(见关联 Issue)修复 22 个文件,均为纯文档与文档配套脚本修改,不改变任何代码语义(SuperKernel 相关文件按要求不在本 PR 处理,见文末说明): 1. 中文语境英文标点改为中文标点:AGENTS.md(6 处)、SECURITY.md(3 处)、docs/zh/precommit_guide.md(46 处)、docs/zh/autofuse/design/features/reduce.md(12 处)、slice_split.md(9 处)、docs/zh/build.md(2 处)、profiler ReadMe(3 处)、示例 README(1 处)。 2. 失效链接修复:architecture.md 已由 design/ 迁移至 introduction/(commit 035eed5d、3f0fb3e1),修复 README.md、README_en.md 及 EN codegen.md、schedule.md 共 4 处遗留旧链接。 3. docs/zh/build.md 示例路径 python3.7.5 改为 python3.x 占位写法,消除与 Python3>=3.8.0 的矛盾。 4. scripts/check_env.sh:新增 REQUIRED_GCC_MIN=7.3.0 与 GCC 版本校验(低版本报 ERROR),同步修正 build.md 已列出 GCC 依赖后的过时注释。 5. autofuse/README.md 第 49 行 3 处 Pytorch 统一为 PyTorch。 6. SECURITY.md/SECURITY_en.md 公网地址声明表:makeself 行的文件名更正为实际包含该 URL 的 docs/zh/build.md、docs/en/build.md;新增 cmake/fetch_cann_cmake.cmake 的 https://gitcode.com/cann/cmake.git 声明行。 7. README.md/README_en.md 目录树补充 docs/ 子目录(env_install/、figures/、guidelines/)与 scripts/reject_forbidden_paths.sh。 ## 变更类型 - [x] 📝 文档内容更新 ## 关联的Issue Closes #318 ## 如何测试 1. bash scripts/check_env.sh:确认 GCC 检查输出 [PASS] GCC x.x.x (>= 7.3.0) 2. pre-commit run --files <变更文件>:OAT Compliance Check 已本地通过 3. 核对 README 目录树与 docs/、scripts/ 实际内容一致;4 处链接目标文件均存在 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(docs:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 分支基于 upstream/develop(34580490)创建,行号已按最新基线核对。 - check_env.sh 为唯一脚本改动:仅 GCC 检查段新增版本比较,本地 bash -n 与实际运行均通过。 - 合入后建议执行 pre-commit run oat-check --all-files 复核声明表。 ## 双语配对同步说明(CI codecheck 要求) CI 的 md 双语配对检查要求:修改任一语言版本时,其配对文件(zh↔en 或 README↔README_en)须在同一 PR 中同步修改。本次按此要求补充以下同步修改: 1. autofuse/README_en.md:修正 TensorFlow 用例链接误指向中文版 README.md 的问题(改为 README_en.md)。 2. docs/en/build.md:与 docs/zh/build.md 同步,将 python3.7.5 示例路径改为 python3.x 占位写法。 3. docs/{zh,en}/autofuse/design/features/reduce.md、slice_split.md 与 docs/zh/.../codegen.md、schedule.md:统一补充"相关链接/Related Links"尾注,返回 AutoFuse 架构介绍(对齐 EN codegen/schedule 既有约定)。 4. docs/{zh,en}/precommit_guide.md:补充语言切换链接(对齐 autofuse/README 既有约定)。 5. profiler 说明文档 ReadMe.md 更名为 README.md(对齐仓库其余测试目录命名),标题规范为 Markdown 标题,README_en.md 补文件末尾换行。 ## SuperKernel 相关文件说明 按要求,以下 SuperKernel 相关修复不在本 PR 处理,待后续单独提交: - super_kernel/README.md 的 U+200B 零宽空格清理 - docs/{zh,en}/super_kernel/figures/ 下含空格文件名重命名(ICachePreload_ optimization.*、super kernel_diagram.excalidraw)及其引用更新 - docs/{zh,en}/super_kernel/super_kernel_migration_design.md 中文语境括号修正与语言切换链接 - super_kernel/examples/super_kernel_runtime_ascendc_only/README{,_en}.md 标点修正与语言切换链接 See merge request: cann/graph-autofusion!2136 | 1 个月前 | |
新增安全合规检测文件 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 | 8 个月前 | |
feat:支持ACL event timing解耦PGO与MSPTI Co-authored-by: zhang_shengjie<804425610@qq.com> # message auto-generated for no-merge-commit merge: !2036 merge feat/pgo-acl-only-mspti-decoupling into develop feat:支持ACL event timing解耦PGO与MSPTI Created-by: zhang_shengjie Commit-by: zhang_shengjie Merged-by: cann-robot Description: # Pull Request ## 主要解决的问题 PGO 原先依赖 MSPTI activity 获取 kernel task duration。移除 libmspti.so 后,Autofuse 无法独立完成候选测量,容易出现候选 timing 无效和 TopN 回退。本 PR 在不修改 TorchAir、不新增发布件的前提下,由 Autofuse 内部复现 MSPTI 的 task-track/STARS 采集语义,并保持现有 TopN 协议和候选身份不变。 ## 修改方案 1. 在 autofuse/codegen/pgo/ 增加受控 PGO 适配层,动态加载 libprofapi.so/HAL,注册必需的 compact callback 和可选的 type-info callback,启动 PROF_TASK_TIME | PROF_RUNTIME_TRACE,读取 PROF_CHANNEL_STARS_SOC_LOG。 2. 参考 MSPTI 动态识别 KERNEL* task type,按 device/stream/task identity 配对 STARS begin/end 记录,支持 stream/task 重映射、V6 记录格式和单流串行兜底。 3. 每个 candidate 执行 20 次独立 kernel launch;按既有规则跳过最大样本并对后续 5 个样本求平均,时间换算采用 MSPTI 的设备计数器整数 quotient/remainder 规则及芯片默认频率。 4. profiling 生命周期保持与当前实现一致:candidate 开始时发送 START command 并启动 STARS channel;candidate 结束时先在 channel 仍活动的状态下执行 flush/poll/read,再发送 STOP command、停止 STARS channel,等待 compact callback 完成后关闭 capture、drain runtime-track,并进行过滤和 begin/end 配对。异常路径执行 STOP 和资源清理。 5. 保持 GetTilingDataRepr、candidate key、TopN 返回顺序及 TorchAir/TensorFlow 上层协议不变;删除未使用的 direct_link 形参和无效的旧 MSPTI 生成片段,保留 TensorFlow 所需的 AutofusePgoCollectorBegin 兼容入口。 6. 修复生成代码中的 kPgoRetryCount 常量契约,并同步 link_pgo_executable 的双参数调用。 ### 重构后 PGO 工作时序图 mermaid sequenceDiagram autonumber participant Runner as PGO Runner participant Collector as PgoCollector participant Adapter as Capability/ProfApi Adapter participant ProfAPI as libprofapi.so participant HAL as libascend_hal.so participant Track as RuntimeTrack participant Records as STARS/TaskRecord Runner->>Collector: Create(device_id, stream) Collector->>Adapter: Probe capability Adapter->>ProfAPI: Check required symbols Adapter->>HAL: Query channels / chip version / frequency alt STARS supported Adapter-->>Collector: PGO_SUCCESS Collector->>ProfAPI: Register compact/type-info callbacks Collector-->>Runner: Create success else STARS channel absent or platform unknown Adapter-->>Collector: PGO_PROFILE_UNSUPPORTED Collector-->>Runner: Return -13 Runner->>Runner: DLOGW and fallback without retry else ProfAPI/HAL unavailable or reporter busy Adapter-->>Collector: Unavailable/busy status Collector-->>Runner: Return status Runner->>Runner: DLOGI status and retry/fail end Runner->>Collector: BeginCandidate(identity) Collector->>ProfAPI: Send START command Collector->>HAL: Start STARS channel loop 20 launches Runner->>HAL: Launch kernel Runner->>Collector: RecordLaunch(sequence) ProfAPI-->>Track: Compact runtime-track callback end Runner->>Collector: EndCandidate Collector->>HAL: Flush/poll/read STARS records Collector->>Track: Wait callbacks and drain records Collector->>Records: Filter identity, pair begin/end, convert ticks Collector-->>Runner: Return candidate duration Runner->>Runner: Skip max, average 5 samples, rank TopN ## 风险审查(本轮已处理) 1. **task type 跨 session 污染**:reporter 注册/注销时清空 kernel type 集合和 type-info 状态;新 session 不会继承旧 session 的 task type。 2. **未知 STARS 形态误解析**:根据 halGetDeviceInfo(VERSION) 的 chip ID 显式选择 910B/310B 的 64B 或 V6 的 32B 格式;查询失败或未知 chip ID 返回能力不可用,不再默认按 64B 解析。当前映射保留 TODO,后续切换到官方 profapi chip capability enum。 3. **flush 兼容性**:halProfDataFlush 符号缺失或返回 DRV_ERROR_NOT_SUPPORT (0xfffe) 按 MSPTI 成功 no-op 处理,其他错误仍返回数据不可用;能力探测不再强制要求 flush 符号。 4. **type-info 缺失误把所有 task 当 kernel**:type-info 注册失败或集合为空时 fail-closed,不再全量放行;只有已注册且名称为 KERNEL* 的 task type 才参与 identity 过滤。 5. **MSPTI 共存**:保持单 reporter 与 libmspti.so 互斥;检测到 MSPTI 已加载时返回 PGO_REPORTER_BUSY,避免 callback 覆盖和 stop 顺序互相干扰。 6. **runtime-track 队列溢出**:有界队列溢出设置 session 级标志,candidate 结束时显式失败;队列和溢出标志在 session 边界清理,不静默使用截断数据。 7. **并行 PGO session**:保持 ProfAPI 全局单 reporter 约束;注销时先禁止采集并等待已进入 callback 的数量归零,再释放 ownership,避免旧 callback 写入新 session 队列。 8. **RTLD_NODELETE**:保留该保护。host call guard 无法观测 device-side 异步引用,直接 dlclose 可能造成 UAF;PGO runner 为短生命周期独立进程,DSO 常驻范围限制在 runner 生命周期内,并在生成代码中补充原因注释。 9. **prof_channel_poll 返回语义**:按 CANN HAL 公共头文件约定,正数表示可读 channel 数、0 表示超时、负数才表示失败;适配层已统一归一化,避免有数据时被误判为采集失败。 10. **有界 drain 截断**:达到 64 次轮询上限但未达到 flush 字节数或两个连续空读时,collector 现在显式失败并清空本轮事件,避免不完整数据被当成有效 timing。 11. **适配器异常清理**:Finalize 在 profiling command 仍 active 时补发 STOP,注销 compact/type-info callback 后等待在途 runtime callback,再释放动态库句柄。 ### autofuse/codegen/pgo/ 目录说明 该目录是 Autofuse 内部的 MSPTI 语义兼容实现,代码不复制 MSPTI 的私有类,而是通过受控 ProfAPI/driver 适配层复现必要行为。各文件职责如下: | 文件 | 作用 | |---|---| | pgo_collector.* | PGO candidate 生命周期、20 次采样、异常终止、duration 汇总和 C ABI 入口。 | | pgo_profapi_adapter.* | 动态加载 ProfAPI,发送 START/STOP command,管理 STARS SOC LOG channel、flush、poll、read 和设备信息查询。 | | pgo_runtime_track.* | 解码 compact runtime-track,接收 type-info,识别 kernel task type,并通过有界队列隔离 callback 与候选 drain。 | | pgo_stars_parser.* | 解析 910B/310B 与 V6 ACSQ STARS begin/end 记录,完成 stream/task 重映射;FFTS 记录不纳入 Autofuse PGO。 | | pgo_task_record.* | 按 (device, stream, task) FIFO 配对 begin/end,校验 20 个 launch 并生成 task record。 | | pgo_timestamp.* | 按 MSPTI 的频率、起始计数和整数商余公式将设备 counter 转换为 ns;频率不可用时保留 raw counter。 | | pgo_candidate_identity.* | 根据 graph、tiling repr、workspace、block dim 生成并校验 candidate key。 | | manifest.json(由 Python/proxy 实现,无独立 pgo_manifest.* 文件) | 读写和校验 candidate manifest,约束 schema、候选路径及缓存完整性。 | | pgo_capability.* | 探测 ProfAPI、STARS、设备计数器和串行 stream 能力,决定是否启用采集。 | | pgo_error.h | 统一错误码,区分能力不可用、采集失败、数据不可用和时间戳错误。 | 核心关系:PgoCollector 持有 PgoProfApiAdapter,适配器将 compact callback 交给 pgo_runtime_track;STARS channel 数据交给 pgo_stars_parser,随后由 pgo_task_record 配对并调用 pgo_timestamp 完成时间换算;最终结果由 collector 按 MSPTI 规则汇总并写入 manifest/TopN 协议。生成的 runner 只依赖 AutofusePgoCollector* C ABI,ProfAPI 和 driver 均为运行时懒加载。 ### codegen/pgo 类图与模块关系 mermaid classDiagram class PgoCollector { <<interface>> +Initialize(device_id, stream) int +BeginCandidate(candidate_key) int +RecordLaunch(sequence) int +EndCandidate() int +AbortCandidate() int +GetDurationNs(duration_ns) int +Finalize() void } class CollectorImpl { -PgoProfApiAdapter adapter_ -PgoCapability capability_ -vector~PgoStarsEvent~ events_ -vector~PgoRuntimeTrack~ runtime_tracks_ -vector~PgoTaskRecord~ task_records_ +BeginCandidateTuple(graph, repr, workspace, block_dim) int -DrainRecords(flushed_bytes) bool -FilterEventsByRuntimeTracks() bool } class PgoProfApiAdapter { -CompactCallback callback +Initialize(callback, ownership) int +Start(device_id) int +Stop(device_id) int +StartStarsChannel(device_id, period) int +FlushStarsChannel(device_id, data_len) int +ReadStarsChannel(device_id, buffer, size) int +PollStarsChannel(timeout) int +GetDeviceInfo(device_id, module, type, value) int } class PgoCapability { +profapi_available bool +stars_task_track_supported bool +runtime_kernel_identity_supported bool +serial_stream_supported bool +timestamp_frequency_hz uint64 } class PgoRuntimeTrack { +device_id uint32 +stream_id uint32 +task_info uint32 +task_type uint64 +aging bool } class PgoStarsEvent { +func_type PgoStarsFuncType +device_id uint32 +stream_id uint32 +task_id uint32 +timestamp uint64 } class PgoTaskRecord { +candidate_key string +launch_sequence uint64 +start_tick uint64 +end_tick uint64 +duration_ns uint64 } class PgoDeviceTimeInfo { +frequency uint64 +start_sys_count uint64 +start_real_time_ns uint64 } PgoCollector <|.. CollectorImpl CollectorImpl *-- PgoProfApiAdapter CollectorImpl *-- PgoCapability CollectorImpl o-- PgoRuntimeTrack CollectorImpl o-- PgoStarsEvent CollectorImpl o-- PgoTaskRecord PgoProfApiAdapter ..> PgoRuntimeTrack : compact callback / QueueRuntimeTrack PgoStarsEvent ..> PgoRuntimeTrack : identity filter PgoTaskRecord ..> PgoDeviceTimeInfo : timestamp conversion CollectorImpl ..> PgoStarsEvent : ParseStarsRecord CollectorImpl ..> PgoTaskRecord : PairPgoTaskEvents CollectorImpl ..> PgoDeviceTimeInfo : ConvertCounterToRealTime PgoCollector 是内部生命周期抽象,CollectorImpl 为匿名命名空间中的具体实现;生成 runner 不直接依赖 C++ 类,只调用 AutofusePgoCollectorCreate/BeginCandidate/RecordLaunch/End/Abort/GetDurationNs/Destroy C ABI。PgoProfApiAdapter 负责外部接口和 channel 生命周期,pgo_runtime_track 负责 callback 解码与队列,pgo_stars_parser 产出 PgoStarsEvent,pgo_task_record 完成 FIFO 配对,pgo_timestamp 完成设备 counter 到 ns 的转换。 设计审查结论:当前描述以实现为准,不再将 flush/read 描述为 STOP 之后;type-info 注册明确为可选能力;频率查询失败时使用 MSPTI 芯片默认频率,查询成功但返回 0 时保留 raw counter;只有 runtime-track 为空且所有 STARS 事件属于同一 stream 时才允许串行兜底,多 stream 无身份信息直接失败。该适配层只服务 Autofuse 内部 PGO 第一阶段,不向 torch_npu.profiler 注入 kernel activity,也不承诺生成 kernel_details.csv。 ## 代码修改流程图 mermaid flowchart TD A[生成 PGO runner] --> B[CollectorInitialize] B --> C[Capability probe + 动态加载 profapi/HAL] C --> D[注册 compact/type-info callback] D --> E[启动 task-time/runtime-track 和 STARS channel] E --> F[BeginCandidate 完整 candidate identity] F --> G[20 次独立 launch] G --> H[接收 runtime-track] G --> I[Flush/Poll/Read STARS(channel active)] I --> J[STOP command] J --> K[Stop STARS channel] H --> L[等待 compact callback 并 drain] K --> L L --> M[识别 KERNEL task identity] I --> N[解析 STARS begin/end] M --> O{runtime-track 是否为空?} O -->|否| P[按 device/stream/task 过滤] O -->|是且单 stream| Q[串行兜底] O -->|是且多 stream| X[返回数据不可用] P --> R[begin/end FIFO 配对] Q --> R N --> R R --> S[设备 counter -> ns] S --> T[剔除最大值,取后 5 个样本平均] T --> U[返回 candidate timing / TopN] ## 测试用例说明 | 项目 | 结果 | 说明 | |---|---|---| | cmake --build build --target aihac_codegen -j 8 | PASS | PGO codegen 目标成功编译 | | sh build.sh -u --module=autofuse_framework -j 8 | 编译 PASS;聚合运行部分失败 | aihac_codegen、` See merge request: cann/graph-autofusion!2036 | 25 天前 | |
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 | 3 个月前 | |
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 | 3 个月前 |
Graph-autofusion
简体中文 | English
🔥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 架构、模块功能、Skills等,可参考以下文档:
- AutoFuse 架构说明:介绍 AutoFuse 的整体架构、关键技术方案、处理流程和模块职责。
- 贡献指南:说明如何参与项目贡献、提交 Issue 和 Pull Request。
- Skills 管理指南:介绍仓内默认使用的 Skills 及其管理方式。
- Skill 复用指南:介绍如何复用 Skill,并使用 Agent 辅助代码阅读、开发和问题定位。
🌐生态集成
AutoFuse 可作为上层图编译器和深度学习框架的自动融合后端,为模型编译和执行提供 Ascend C 融合算子生成能力。当前主要集成路径包括:
- GE 路径:作为 GE 的自动融合后端,上层框架 TensorFlow 或者 PyTorch 可通过GE接入使用,详见GE 项目
- Inductor 路径:作为 PyTorch Inductor 的自动融合后端,详见TorchAir 项目
🔍目录结构
graph-autofusion/
├── autofuse # Autofuse 组件,Autofuse 源代码、测试、文档均在该子目录中
├── build.sh # 一键式项目工程编译脚本
├── cmake # 项目工程编译目录
├── CMakeLists.txt # 项目 CMakeLists
├── docs # 项目整体文档
│ ├── zh # 中文文档
│ │ ├── build.md # 一键式构建脚本文档
│ │ └── ... # 其他中文文档
│ ├── en # 英文文档
│ ├── build.md # 一键式构建脚本文档
│ └── ... # 其他英文文档
│ ├── env_install # 环境安装文档
│ ├── figures # 文档图片资源
│ └── guidelines # 开发规范文档
├── scripts # 构建、环境安装和测试脚本
│ ├── env_install # 环境安装脚本
│ ├── package # 打包脚本
│ ├── test # 测试脚本
│ ├── check_env.sh # 环境检查脚本
│ ├── init_env.sh # 环境初始化脚本
│ ├── oat_check.sh # OAT 合规性检查脚本
│ ├── reject_forbidden_paths.sh # 禁止路径提交检查脚本
│ └── support_multiple_versions_of_lcov.sh # 多版本 lcov 兼容脚本
├── super_kernel # SuperKernel 组件,SuperKernel 源代码、测试、文档均在该子目录中
├── README.md # graph-autofusion 项目整体功能介绍
└── README_en.md # graph-autofusion 项目英文介绍