Graph-autofusion 是一个面向昇腾(Ascend)芯片的轻量级、解耦式组件集合,旨在通过自动融合技术加速模型执行。 目前已开源 SuperKernel 组件,未来将持续开放更多自动融合相关模块。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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 | 16 天前 | |
docs: 文档国际化改造,支持中英文双语 | 1 个月前 | |
feat: add opencode skill management and 5 project-specific skills - Establish three-layer skill architecture (local + remote + plugin) - Add 5 local skills: cann-toolkit-installer, default-skills, af-build-runner, af-test-developer, af-code-reviewer - Add skill management documentation (docs/zh/opencode-skill-management.md) - Add .claude/skills/.gitignore with whitelist mode to prevent accidental skill commits - Add open-source contributor skill contribution guide - Optimize skills based on test results (3204 tests passed) Closes cann/graph-autofusion#59 | 26 天前 | |
feat: 支持 IsInf 和 MaskedFill elementwise 算子自动融合(#51) Co-authored-by: Jett_Woo<wujinteng1@huawei.com> # message auto-generated for no-merge-commit merge: !1000 merge feature/isinf-maskedfill-v3 into develop feat: 支持 IsInf 和 MaskedFill elementwise 算子自动融合(#51) Created-by: Jett_Woo Commit-by: Jett_Woo Merged-by: cann-robot Description: ## 描述 本 PR 为 graph-autofusion 项目添加 IsInf 和 MaskedFill 两个 elementwise 算子的自动融合支持,解决 Issue #51。 ### 主要变更 1. **IsInf 算子支持** - V1 实现:自定义位运算算法(参照 IsNan 实现) - V2 实现:复用 CANN SDK adv_api/math/is_inf.h - 支持 FP16、FP32(V1/V2),BF16(仅 V2) 2. **MaskedFill 算子支持** - 复用 Select 算子的 WhereApiCall 代码生成 - 新增 MaskedFillInputReorderPass 图优化 Pass - 输入重排:(x, mask, value) → (mask, value, x) - 支持 scalar value 和 tensor value 3. **自动融合** - 实现 IsInf + LogicalOr + MaskedFill 的自动融合 - 生成单个 AscBackend kernel,提升性能 ### 修复内容 相比 PR #624,本 PR 修复了以下问题: 1. **Split 算子注册错误**:恢复 REG_ASC_IR(Split) 使用正确的 SplitAscIrAttImplV2 / SplitAscIrCodegenImplV2 实现 2. **Select 算子注册缺失**:补回独立的 REG_ASC_IR(Select) 注册 3. **魔鬼数字**:在 masked_fill_input_reorder_pass.cpp 中使用命名常量替代硬编码数字 ## 变更类型 - [x] ✨ 新功能 - [x] 🐛 Bug 修复(修复 PR #624 引入的回归问题) ## 关联的 Issue Closes #51 ## 如何测试 1. 编译通过:sh build.sh --pkg -j 8 2. 单元测试通过: bash sh build.sh -u --module=autofuse_framework -j 8 ./build/autofuse/tests/ut/ascir/reg_func/test_reg_func_is_inf ./build/autofuse/tests/ut/ascir/reg_func/test_reg_func_masked_fill ./build/autofuse/tests/ut/optimize/test_masked_fill_input_reorder_pass 3. 集成测试通过: bash sh build.sh -s --module=autofuse_e2e -j 8 4. CI 流水线全部通过 5. 包含 Split 算子的融合场景(如 SASRec 模型)不再报错 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档(设计文档已添加 UML 建模和 4+1 视图) - [x] 我在标题中使用了合适的类型标签(feat:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 ### 文件变更统计 - 新增文件:14 个 - 修改文件:22 个 - 总计:36 个文件变更 ### 关键设计决策 1. **IsInf V1 实现**:使用位运算算法,不依赖 CANN SDK 版本 2. **MaskedFill 实现**:通过 GraphPass 将节点类型转换为 Select,完全复用 Select 的 codegen 逻辑 3. **输入重排**:在 GraphPass 阶段统一处理,确保 dtype schema 正确同步 ### 设计文档 见issue [#51](https://gitcode.com/cann/graph-autofusion/issues/51) See merge request: cann/graph-autofusion!1000 | 1 天前 | |
feat: 支持rpm和deb包构建 Co-authored-by: zqmin<zengqingmin2@huawei.com> # message auto-generated for no-merge-commit merge: !806 merge feat/support-package-type into develop feat: 支持rpm和deb包构建 Created-by: zqmin Commit-by: zqmin Merged-by: cann-robot Description: # Pull Request ## 描述 对齐 MetaDef 的 rpm/deb 包构建入口,并补齐 graph-autofusion 在 rpm/deb 交付形态下的 Python 包安装、卸载和权限收口逻辑: - build.sh 增加 --pkg-type=<run|rpm|deb>,默认 run。 - 将 PACKAGE_TYPE 传入 CMake 配置,set_cann_cpack_config 增加 PACKAGE_TYPE 参数。 - 新增 graph-autofusion rpm/deb hook,安装后处理 superkernel-*.whl,卸载前清理 superkernel 残留。 - rpm/deb 安装 superkernel whl 时安装到 ${INSTALL_PATH}/python/site-packages,对齐 CANN 安装目录内 Python 包布局。 - rpm/deb 安装后生成 python/site-packages/autofuse/__pycache__,并按 run 包最终权限逻辑收口。 - rpm/deb 安装后按 run 包逻辑收口 superkernel、superkernel-*.dist-info、LICENSE 和 *-linux/lib64 权限,保证同用户或同 sudo/root 安装时权限一致。 - rpm/deb 卸载前清理 superkernel、superkernel-*.dist-info 和 autofuse/__pycache__,并修复 prerm 在 set -e 场景下因目录不存在返回非 0 的问题。 - 更新 deb/rpm 相关 XML 权限配置,使 deb 安装出来的 scene.info、version.info、python/site-packages/autofuse 等权限符合安装后结果要求。 - 修正新增 rpm/deb hook 脚本许可证头,使其符合 OAT.xml 中的 CANN License 文本。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 关联 #108 ## 如何测试 描述测试此变更的步骤和前提条件: 1. bash build.sh --help 2. bash build.sh --pkg --pkg-type=tar --no-autofuse -j 1 3. bash -n scripts/package/graph_autofusion/rpm_deb/custom_postinst.sh && bash -n scripts/package/graph_autofusion/rpm_deb/custom_prerm.sh 4. 使用 fake python3/pip3 和临时安装目录验证 postinst 行为:autofuse/__pycache__ 目录/文件权限、superkernel/dist-info/LICENSE 权限、*-linux/lib64 目录权限与 run 包 root/sudo 场景一致。 5. 使用临时安装目录验证普通用户场景权限:python 目录 750、autofuse/__pycache__ 文件 550、superkernel 目录/文件 550、LICENSE 440、*-linux/lib64 550。 6. 验证 custom_prerm.sh 在 autofuse/__pycache__ 不存在时仍返回 0,避免生成的 DEBIAN/prerm 顶部 set -e 导致 dpkg 安装失败。 7. 已触发 PR 流水线,最新已通过 ci-pipeline-passed label 校验;后续权限修复提交需继续触发 compile 流水线。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 rpm/deb 产包能力依赖统一 CANN CMake/发布流水线侧支持。本 PR 侧完成 graph-autofusion 的打包入口参数透传、rpm/deb 安装卸载 hook、Python 包安装路径、动态产物权限收口和 run/deb 安装结果对齐。 See merge request: cann/graph-autofusion!806 | 3 天前 | |
【PR】: [fix] [autofuse] improve usability of gaf. Co-authored-by: xingzhixiong<xingzhixiong@huawei.com> # message auto-generated for no-merge-commit merge: !581 merge develop_usability_test into develop 【PR】: [fix] [autofuse] improve usability of gaf. Created-by: xingzhixiong Commit-by: xingzhixiong Merged-by: cann-robot Description: # Pull Request ## 描述 修复gaf仓docs问题以及llt运行时找不到库的问题,提升易用性。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 按readme中的指导编译执行llt通过 2. 测试代码仓的中英文描述无误 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!581 | 3 天前 | |
fix precommit oat | 15 小时前 | |
superkernel add -Wno-error=deprecated-declarations compile options | 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 | 17 天前 | |
【feat】: Dump json file to retrieve graph information from modelRI, Update fusion failure reason log file Co-authored-by: Achilles_d<duanchengyuan@huawei.com> # message auto-generated for no-merge-commit merge: !300 merge fix-rea into master 【feat】: Dump json file to retrieve graph information from modelRI, Update fusion failure reason log file Created-by: Achilles_d Commit-by: Achilles_d Merged-by: cann-robot Description: # Pull Request ## 描述 1. 新增:dump origin graph from graph 2. 新增:dump fused graph from graph 3. 新增:dump origin graph from modelRI 4. 新增:dump fused graph from modelRI 5. 新增:dump taskqueue of aic and aiv 6. 更新:修改算子二进制文件名为{func name}_{addr} 7. 更新:融合失败原因修改为:打印不可融kernel及其原因、打印scope断开原因 8. 修复:关闭kernel meta选项后,对应sk_meta文件不生成 ## 变更类型 请选择本次引入的变更类型: <!-- [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!300 | 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 | 17 天前 | |
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 | 16 天前 | |
feat:新增autofuse_headers Co-authored-by: 叶龙剑<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !622 merge dev-header0603 into develop feat:新增autofuse_headers Created-by: yelongjian Commit-by: 叶龙剑 Merged-by: cann-robot Description: # Pull Request ## 描述 新增对外autofuse_headers ## 变更类型 请选择本次引入的变更类型: <!-- [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!622 | 22 天前 | |
【PR】: CONTRIBUTED 文档修复, Requirement instead Feature-Request Co-authored-by: zhanjun<zhanjun6@hisilicon.com> # message auto-generated for no-merge-commit merge: !7 merge master into master 【PR】: CONTRIBUTED 文档修复, Requirement instead Feature-Request Created-by: zhanj Commit-by: zhanjun Merged-by: turing_project1 Description: # Pull Request ## 描述 请清晰准确地描述本次 Pull Request 的意图和变更内容。 CONTRIBUTED 文档修复, Requirement instead Feature-Request ## 变更类型 请选择本次引入的变更类型: <!-- [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!7 | 7 个月前 | |
docs: 文档国际化改造,支持中英文双语 | 1 个月前 | |
graph-autofusion is ready now! | 7 个月前 | |
feat: 新增镜像支持 Co-authored-by: 叶龙剑<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !242 merge master-image0409 into master feat: 新增镜像支持 Created-by: yelongjian Commit-by: 叶龙剑 Merged-by: cann-robot Description: # Pull Request ## 描述 新增镜像支持。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.根据新增的readme指导,使用镜像进行开发 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!242 | 2 个月前 | |
fix(docs): 修复文档质量问题 - 代码块语言标记与拼写错误 Co-authored-by: tmj1128<tanmengjie2@huawei.com> # message auto-generated for no-merge-commit merge: !877 merge fix/docs-quality-improvements into develop fix(docs): 修复文档质量问题 - 代码块语言标记与拼写错误 Created-by: tmj1128 Commit-by: tmj1128 Merged-by: cann-robot Description: ## 修复内容 ### 拼写错误修复 - superkernel_compare.py:280: "execute samples success" → "execute sample success"(与 README 文档描述不一致) ### 代码块语言标记 - 为 25 个 Markdown 文件中 49 个代码块补充语言标记: - 目录树结构代码块标记为 text - Shell 命令代码块标记为 bash - Python 代码块标记为 python - 输出文本代码块标记为 text 覆盖 zh/en 双语言文档,确保代码高亮正确生效。 关联演练报告问题 #8 (文档拼写) 和 #4 (代码块语言标记) See merge request: cann/graph-autofusion!877 | 9 天前 | |
fix(docs): 修复文档质量问题 - 代码块语言标记与拼写错误 Co-authored-by: tmj1128<tanmengjie2@huawei.com> # message auto-generated for no-merge-commit merge: !877 merge fix/docs-quality-improvements into develop fix(docs): 修复文档质量问题 - 代码块语言标记与拼写错误 Created-by: tmj1128 Commit-by: tmj1128 Merged-by: cann-robot Description: ## 修复内容 ### 拼写错误修复 - superkernel_compare.py:280: "execute samples success" → "execute sample success"(与 README 文档描述不一致) ### 代码块语言标记 - 为 25 个 Markdown 文件中 49 个代码块补充语言标记: - 目录树结构代码块标记为 text - Shell 命令代码块标记为 bash - Python 代码块标记为 python - 输出文本代码块标记为 text 覆盖 zh/en 双语言文档,确保代码高亮正确生效。 关联演练报告问题 #8 (文档拼写) 和 #4 (代码块语言标记) See merge request: cann/graph-autofusion!877 | 9 天前 | |
graph-autofusion is ready now! | 7 个月前 | |
docs: 文档国际化改造,支持中英文双语 | 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 | 4 个月前 | |
feat: 支持rpm和deb包构建 Co-authored-by: zqmin<zengqingmin2@huawei.com> # message auto-generated for no-merge-commit merge: !806 merge feat/support-package-type into develop feat: 支持rpm和deb包构建 Created-by: zqmin Commit-by: zqmin Merged-by: cann-robot Description: # Pull Request ## 描述 对齐 MetaDef 的 rpm/deb 包构建入口,并补齐 graph-autofusion 在 rpm/deb 交付形态下的 Python 包安装、卸载和权限收口逻辑: - build.sh 增加 --pkg-type=<run|rpm|deb>,默认 run。 - 将 PACKAGE_TYPE 传入 CMake 配置,set_cann_cpack_config 增加 PACKAGE_TYPE 参数。 - 新增 graph-autofusion rpm/deb hook,安装后处理 superkernel-*.whl,卸载前清理 superkernel 残留。 - rpm/deb 安装 superkernel whl 时安装到 ${INSTALL_PATH}/python/site-packages,对齐 CANN 安装目录内 Python 包布局。 - rpm/deb 安装后生成 python/site-packages/autofuse/__pycache__,并按 run 包最终权限逻辑收口。 - rpm/deb 安装后按 run 包逻辑收口 superkernel、superkernel-*.dist-info、LICENSE 和 *-linux/lib64 权限,保证同用户或同 sudo/root 安装时权限一致。 - rpm/deb 卸载前清理 superkernel、superkernel-*.dist-info 和 autofuse/__pycache__,并修复 prerm 在 set -e 场景下因目录不存在返回非 0 的问题。 - 更新 deb/rpm 相关 XML 权限配置,使 deb 安装出来的 scene.info、version.info、python/site-packages/autofuse 等权限符合安装后结果要求。 - 修正新增 rpm/deb hook 脚本许可证头,使其符合 OAT.xml 中的 CANN License 文本。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 关联 #108 ## 如何测试 描述测试此变更的步骤和前提条件: 1. bash build.sh --help 2. bash build.sh --pkg --pkg-type=tar --no-autofuse -j 1 3. bash -n scripts/package/graph_autofusion/rpm_deb/custom_postinst.sh && bash -n scripts/package/graph_autofusion/rpm_deb/custom_prerm.sh 4. 使用 fake python3/pip3 和临时安装目录验证 postinst 行为:autofuse/__pycache__ 目录/文件权限、superkernel/dist-info/LICENSE 权限、*-linux/lib64 目录权限与 run 包 root/sudo 场景一致。 5. 使用临时安装目录验证普通用户场景权限:python 目录 750、autofuse/__pycache__ 文件 550、superkernel 目录/文件 550、LICENSE 440、*-linux/lib64 550。 6. 验证 custom_prerm.sh 在 autofuse/__pycache__ 不存在时仍返回 0,避免生成的 DEBIAN/prerm 顶部 set -e 导致 dpkg 安装失败。 7. 已触发 PR 流水线,最新已通过 ci-pipeline-passed label 校验;后续权限修复提交需继续触发 compile 流水线。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 rpm/deb 产包能力依赖统一 CANN CMake/发布流水线侧支持。本 PR 侧完成 graph-autofusion 的打包入口参数透传、rpm/deb 安装卸载 hook、Python 包安装路径、动态产物权限收口和 run/deb 安装结果对齐。 See merge request: cann/graph-autofusion!806 | 3 天前 | |
add l Co-authored-by: JaydenChu<zhumin54@huawei.com> Co-authored-by: xingzhixiong<xingzhixiong@huawei.com> # message auto-generated for no-merge-commit merge: !370 merge 5_11_1 into master 【PR】: 同步GE仓最新修改到AF仓(4.14上午11时~5.15晚,总计129个PR需要同步) Created-by: JaydenChu Commit-by: JaydenChu;xingzhixiong Merged-by: cann-robot Description: # Pull Request ## 描述 同步GE仓最新修改到AF仓(4.14上午11时~5.15晚,总计129个PR需要同步) 所有涉及PR(包含检查过不需要同步的)从编号#1904(4.14 https://gitcode.com/cann/ge/pull/1904)到#2904(5.15 http://gitcode.com/cann/ge/pull/1904) 每个实际已同步pr都对应此pr的一个commit(部分同步pr为了方便同步合并到了一个commit中) ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [x] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 业务代码和llt编译通过 2. llt执行通过 3. 全量rdv验证通过 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!370 | 1 个月前 | |
!392 merge support_Q2_building_optimization into master 【chore】: 支持Q2工程优化 Created-by: zhuhaoran5 Commit-by: zhuhaoran5 Merged-by: cann-robot Description: # Pull Request ## 描述 【chore】支持Q2工程优化: 1. 新识别到的一些cann依赖项切cmake工程仓 2. 移除新识别到的通过'include_directories' or 'link_directories'追加的cann包搜索路径 3. 其他一些兼容黄区全量联编的修改 4. 公共编译选项切换到cmake工程仓 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 按照 README 部署构建环境 2. 执行所有构建场景的脚本命令,能执行成功并且产物包内容与先前一致 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!392 | 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 简介与快速上手。
🔍目录结构
├── autofuse # Autofuse 组件,Autofuse 源代码、测试、文档均在该子目录中
├── build.sh # 一键式项目工程编译脚本
├── cmake # 项目工程编译目录
├── CMakeLists.txt # 项目 CMakeLists
├── docs # 项目整体文档
│ ├── zh # 中文文档
│ │ ├── build.md # 一键式构建脚本文档
│ │ └── ... # 其他中文文档
│ ├── en # 英文文档
│ │ ├── build.md # 一键式构建脚本文档
│ │ └── ... # 其他英文文档
├── super_kernel # SuperKernel 组件,SuperKernel 源代码、测试、文档均在该子目录中
├── ... # 未来规划的组件
├── README.md # graph-autofusion项目整体功能介绍
├── scripts # 脚本路径
└── package