Graph-autofusion 是一个面向昇腾(Ascend)芯片的轻量级、解耦式组件集合,旨在通过自动融合技术加速模型执行。 目前已开源 SuperKernel 组件,未来将持续开放更多自动融合相关模块。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: 新增IsInf上板perf建模工具链与af-api-modeling技能 Co-authored-by: gcw_V3YyYBt1<gaoxin32@huawei.com> # message auto-generated for no-merge-commit merge: !2544 merge feat/isinf-perf-modeling into develop feat: 新增IsInf上板perf建模工具链与af-api-modeling技能 Created-by: gcw_V3YyYBt1 Commit-by: gcw_V3YyYBt1 Merged-by: cann-robot Description: # Pull Request ## 描述 新增 IsInf API 上板性能建模工具链与 af-api-modeling 技能: - isinf/tools:上板验证 bench(dav-3510,codegen 实际路径分支,TPipe+TQue,无 warmup/无内部计时,调用总数恒等于 loop_count)、run_bench(读 cases.csv 批量执行,npu 模式 msprof --parse=on 采集,op_summary 按 API 名过滤解析 aiv_total_cycles/BlockNum*aiv_vec_ratio,profiling 按 run_id 隔离,npu-smi 环境自检,每点 5 次取中位数)、fit_curve 最小二乘拟合(y=measured/loop_count ~ a*repeat+b)、cases/samples 两阶段回填与 report 归档 - 新增 af-api-modeling 技能:五步 API 建模流程(源码定位/分支分析/bench/实测采集/拟合/perf 代码落地)与实测沉淀坑表 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 编译 isinf/tools bench(CMakeLists 构建),上板运行验证调用总数与 loop_count 一致 2. run_bench.py 读取 cases.csv 批量执行,npu 模式 msprof 采集,每点 5 次取中位数 3. fit_curve.py 拟合 y = a*repeat + b,回填 samples.csv 并归档 report ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/graph-autofusion!2544 | 12 天前 | |
fix: 限制 multistream CI 仅在 master/develop 执行 | 6 天前 | |
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: 复合Norm区域按视图折叠校验放行尾部归约与广播放大形态并修复候选全拒时的调度崩溃 Co-authored-by: JaydenChu<zhumin54@huawei.com> # message auto-generated for no-merge-commit merge: !2592 merge fix/indirect-load-composite-view-folding into develop fix: 复合Norm区域按视图折叠校验放行尾部归约与广播放大形态并修复候选全拒时的调度崩溃 Created-by: JaydenChu Commit-by: JaydenChu Merged-by: cann-robot Description: # Pull Request ## 描述 复合 Norm 区域(gather 后接多段 Reduce/Broadcast/Elementwise 链)的出口视图校验此前要求入口与出口视图相等,导致两类自洽形态被误拒: 1. 尾部归约无配对广播(入口>出口): gather→sum→broadcast→mul→sum→store 两段归约形态全部候选被拒; 2. 配对广播放大超过入口宽度(入口<出口)。 候选全拒后还存在崩溃链:RecomputationCaseGenerator 兜底接管含未标注 IndirectLoad 的图 → GetPrebuiltYTilingCase 按节点存在返回 tile_id=-1 的预建 case → PruneTilingCase 查找 axis_id:-1 触发断言 → 最终 Optimize fail(0x50100001)。 本 PR 变更: 1. **ValidateCompositeRegionOutputView 改为视图折叠校验**:从入口视图沿归约阶段折叠——配对 Broadcast 直接取其输出视图(还原或放大均合法,放大允许超过入口宽度),尾部无配对 Broadcast 的 Reduce 将归约轴 repeat 折为 1;折叠终态与 Store 输入视图比对。统一覆盖入口==出口、入口>出口(尾部归约收缩)、入口<出口(广播放大)三类自洽形态,不自洽链路仍拒绝。 2. **GetPrebuiltYTilingCase**:模板未标注(outer_axis 为 kIdNone)时返回 false,节点存在不再等价于模板接管,避免 kIdNone 毒化 PruneTilingCase 的轴查找。 3. **GeneratorTask**:图含 IndirectLoad 但模板候选全部被拒时显式返回失败——本生成器独占该类图(其余生成器按约定跳过),且未标注模板的 IndirectLoad 无通用调度/发射路径,空任务落入 Recomputation 兜底必然触发内部断言;由上层按不支持处理。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. UT:optimize_ut --gtest_filter="IndirectLoadScheduleCaseGeneratorTest.*",新增 6 个用例,套件全量 80/80 通过: - CompositeNormRegionFoldsPairedStagesToEqualView / FoldsTailReduceShrinkView / FoldsAmplifiedBroadcastView:三类视图关系均接受且生成 2 阶段复合区域元数据; - CompositeNormRegionRejectsFoldMismatchView:折叠终态与出口视图不一致的链路仍拒绝; - PrebuiltYTilingCaseRequiresTemplateAnnotation:未标注模板时返回 false、标注后返回有效 tile 轴; - GeneratorTaskFailsWhenAllCandidatesRejected:候选全拒时任务层显式失败。 2. 端到端脚本验证(schedule+codegen 全管线): - gather[32,32]→sum→bcast→mul→sum→store[32,1](原崩溃用例):修复前 PruneTilingCase axis_id:-1 断言崩溃(Optimize fail),修复后全管线通过,复合区域 2 阶段元数据正常保存; - gather[32,8]→sum→bcast放大→[32,32]→mul→sum→store[32,1](广播放大形态):全管线通过; - gather+softmax 专用路径、gather→sum→store 单归约直连形态:回归通过; - 单归约+尾随广播链(不支持形态):不再触发内部断言,改为任务层明确的不支持报错([IndirectLoad] Graph[...] contains IndirectLoad but no template candidate was generated)。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档(本次无接口/使用方式变更,不涉及文档更新) - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本地环境(无 NPU)跑 optimize_ut 全量时存在若干与本次改动无关的既有失败/崩溃(基线 develop 与本分支行为已逐用例对照一致),集中在 AutoSchedulerUT 的 removepad/broadcast 用例与 TilingGroupUT 个别用例,疑似依赖设备侧环境,建议以 CI 结果为准。 See merge request: cann/graph-autofusion!2592 | 5 天前 | |
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 个月前 | |
docs: 补充Autofuse样例运行依赖排查说明 Co-authored-by: yixiqin<yixiqin@huawei.com> # message auto-generated for no-merge-commit merge: !2548 merge eco1015 into develop docs: 补充Autofuse样例运行依赖排查说明 Created-by: yixiqin Commit-by: yixiqin Merged-by: cann-robot Description: # Pull Request ## 描述 在 autofuse/README.md、autofuse/README_en.md 与 docs/env_install/pytorch/env_pytorch.md 中补充 Autofuse 样例运行依赖的排查说明。 新手使用 torch_npu Daily 环境运行 python3 af_add_ge.py 等官方用例时,首次触发融合算子代码生成会报错: RuntimeError: Failed to build ascend kernel. trigger bug by following command: '.../asc_tilling.py' 该报错把真实失败原因包装成"触发 bug 的命令",未暴露缺失依赖线索。真实根因(如 ModuleNotFoundError: No module named 'decorator')需手动执行报错中的 .py 文件才能看到,逐层补装后还会接连缺失 scipy、attr 等包。这些包均收录在 super_kernel/requirements-dev.txt 中,但该清单此前只用于构建环境,样例环境依赖文档未声明。 本次变更在两处文档新增"样例运行依赖"说明:提醒开发者在遇到上述报错时,手动执行报错中的 py 文件、按提示安装缺失依赖,或一次性执行 pip3 install -r super_kernel/requirements-dev.txt。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 文档变更,无需功能测试。 1. 预览 autofuse/README.md、autofuse/README_en.md 与 docs/env_install/pytorch/env_pytorch.md 渲染效果。 2. 确认新增小节的命令与相对路径正确(super_kernel/requirements-dev.txt 位于仓库根目录)。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/graph-autofusion!2548 | 11 天前 | |
fix(spec): align enumeration stubs and guard returned counts | 13 天前 | |
chore: 补充多流测试、文档及工程接入 Co-authored-by: KenChow<zhouchen53@huawei.com> # message auto-generated for no-merge-commit merge: !2474 merge chore/multistream-integration-20261008 into develop chore: 补充多流测试、文档及工程接入 Created-by: KenChow Commit-by: KenChow Merged-by: cann-robot Description: # Pull Request ## 描述 为 [纯 Python 多流规划实现 PR !2473](https://gitcode.com/cann/graph-autofusion/pull/2473) 补充测试、文档及工程接入。共 47 个文件,按职责分成三个提交: - 656237bd chore: 接入多流构建交付与 CI:CMake wheel 构建、build.sh UT/ST 入口、覆盖率配置、GitCode UT 任务及安装卸载、软链接处理。 - 4ec5eabf test: 补充多流单元测试与系统测试:公共测试函数、Runtime 模拟实现、算法和规划测试、性能及跨进程结果一致性验证、wheel 内容和安装隔离、安装卸载与 CI 配置验证。 - 1546baa5 docs: 补充多流模块使用说明和开发者指南:README、接口用法、测试方法及开发说明。 本分支直接基于 develop,不包含 !2473 的实现提交及 pyproject.toml。页面 diff 仅包含本 PR 的改动。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 从 [原 PR !1920](https://gitcode.com/cann/graph-autofusion/pull/1920) 拆分,未新增关联 Issue。 ## 如何测试 1. 在临时工作区中先放入 !2473 的实现提交,再应用本 PR 的三个提交;进入 multistream/,使用已安装 dev 依赖的 Python 环境执行 python -m pytest tests/ut tests/st -q:**291 passed,4 subtests passed**。 2. 组合后的 Git tree 与原完整版本 6dbc123f 完全一致,无遗漏或重复改动文件;git diff --check 通过。 3. 同一完整文件版本此前已通过独立 CMake wheel 构建和安装:cmake --build <build_dir> --target multistream_whl -j 8、cmake --install <build_dir>,以及修改过的 shell 脚本 bash -n 检查。 4. 未执行完整 CANN 产品包构建和真实设备验证。本分支单独检出时缺少 !2473 的实现和包配置,不能单独运行完整构建或 UT/ST。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 **依赖 !2473 先合入。请勿先合入本 PR。** 两个分支均从 develop 创建,本 PR 不含 !2473 的提交。!2473 合入后,更新本分支与 develop 的基线,运行测试后再合入。 [opencann !5](https://gitcode.com/opencann/graph-autofusion/merge_requests/5) 保留完整版本,用于线上 CI 验证;本地组合测试通过不代表本 PR 单独运行的线上 CI 已通过。原 !1920 保留供查阅历史讨论。 See merge request: cann/graph-autofusion!2474 | 11 天前 | |
fix: 修复IndirectLoad SIMT模板非连续Store视图按逻辑线性索引寻址错位 Co-authored-by: xiebangrui<xiebangrui@huawei.com> # message auto-generated for no-merge-commit merge: !2261 merge IL into develop fix: 修复IndirectLoad SIMT模板非连续Store视图按逻辑线性索引寻址错位 Created-by: xiebangrui2025 Commit-by: xiebangrui Merged-by: cann-robot Description: ## 描述 SIMT 模板吸收输出链后, FusedBody::Store 固定按逻辑线性 output_index 寻址,且 kSimtOutputIdentity 判定不检查输出物理布局。当尾部 Store 目标为非连续物理视图(如 embedding+slice 的 NonOwningLayout 输出、cat 输出大 tensor 的切片视图,行 stride 大于逻辑行宽)时,数据写错位置,且调度到 codegen 全链路无校验拦截。 本 PR 使该非连续 Store 形态在 IL 融合模板下正确处理: - **common**:SIMT 输出链元数据携带目标视图(sizes/strides/offset);uint32 位宽判定纳入目标物理跨度,防溢出;新增尾部 Store 目标布局分类(kDense/kSliceStrided/kUnsupported) - **optimize**:case generator 新增输出 Store 目标门控——kDense 放行;kSliceStrided 放行 SIMD/SIMT、拒绝 SK;静态可判定的异常视图保守拒绝 - **codegen**:SIMT FusedBody::Store 按目标布局生成坐标折叠寻址(offset + Σ coord×stride);视图匹配、ApplyMerge 合并视图与 post-Reduce 链保持既有线性寻址(与合入前行为一致);kSimtOutputIdentity 仅在 dense 零偏移输出时设置,MTE 快速路径经其编译期自动抑制;regbase indirect_load_simt.h 零改动 - **test**:新增 4 个 backend E2E ST 并同步注册 canonical IL manifest ## 变更类型 - [x] 🐛 Bug 修复 - [x] ✨ 新功能 ## 关联的Issue 无 ## 如何测试 1. 新增 4 个 backend E2E ST(均真实 kernel launch + 逐元素精度断言): - indirect_load_user_embedding_slice_minimal_front/back:embedding+slice 非连续 Store 最小用例([2,4,8] 拓扑,index 物理行宽 8 > gather 宽 4,Store 行 stride 64 对逻辑 32),自动模板选择,修复前断言失败,修复后通过 - indirect_load_strided_store_rank2_axis1_simd/simt_test:cat 切片双模板看护(IL(4,8) 写入 out(4,14) 切片 stride=(14,1)、offset=6),含 gap 位不被越界写断言 2. canonical IL 集合:codegen 62/62 通过;e2e 全部构建成功,4 个新用例在 CANN 9.3.0 模拟器全部 PASSED(零 error、零 UintDiv 溢出) 3. 零回归:dense 零偏移输出(全部既有用例形态)保持 identity 线性寻址,生成代码不变 bash ctest --test-dir build/autofuse/tests -L build_backend_test1 -R "^indirect_load" --output-on-failure ctest --test-dir build/autofuse/tests -R "indirect_load_user_embedding_slice_minimal|indirect_load_strided_store" --output-on-failure ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 附带 9.3.0 社区包适配:autofuse/tests/CMakeLists.txt 为 intf_llt_pub 增加无条件 INTERFACE 兜底(NOT TARGET 保护,有真库时不生效) - SIMD 模板对该输入布局(embedding broadcast 视图)的支持为独立后续需求 See merge request: cann/graph-autofusion!2261 | 6 天前 | |
fix:调整算子触发编译顺序,并在ws_size为0时跳过分配内存 | 5 天前 | |
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 | 1 个月前 | |
【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 个月前 | |
chore: 补充多流测试、文档及工程接入 Co-authored-by: KenChow<zhouchen53@huawei.com> # message auto-generated for no-merge-commit merge: !2474 merge chore/multistream-integration-20261008 into develop chore: 补充多流测试、文档及工程接入 Created-by: KenChow Commit-by: KenChow Merged-by: cann-robot Description: # Pull Request ## 描述 为 [纯 Python 多流规划实现 PR !2473](https://gitcode.com/cann/graph-autofusion/pull/2473) 补充测试、文档及工程接入。共 47 个文件,按职责分成三个提交: - 656237bd chore: 接入多流构建交付与 CI:CMake wheel 构建、build.sh UT/ST 入口、覆盖率配置、GitCode UT 任务及安装卸载、软链接处理。 - 4ec5eabf test: 补充多流单元测试与系统测试:公共测试函数、Runtime 模拟实现、算法和规划测试、性能及跨进程结果一致性验证、wheel 内容和安装隔离、安装卸载与 CI 配置验证。 - 1546baa5 docs: 补充多流模块使用说明和开发者指南:README、接口用法、测试方法及开发说明。 本分支直接基于 develop,不包含 !2473 的实现提交及 pyproject.toml。页面 diff 仅包含本 PR 的改动。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 从 [原 PR !1920](https://gitcode.com/cann/graph-autofusion/pull/1920) 拆分,未新增关联 Issue。 ## 如何测试 1. 在临时工作区中先放入 !2473 的实现提交,再应用本 PR 的三个提交;进入 multistream/,使用已安装 dev 依赖的 Python 环境执行 python -m pytest tests/ut tests/st -q:**291 passed,4 subtests passed**。 2. 组合后的 Git tree 与原完整版本 6dbc123f 完全一致,无遗漏或重复改动文件;git diff --check 通过。 3. 同一完整文件版本此前已通过独立 CMake wheel 构建和安装:cmake --build <build_dir> --target multistream_whl -j 8、cmake --install <build_dir>,以及修改过的 shell 脚本 bash -n 检查。 4. 未执行完整 CANN 产品包构建和真实设备验证。本分支单独检出时缺少 !2473 的实现和包配置,不能单独运行完整构建或 UT/ST。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 **依赖 !2473 先合入。请勿先合入本 PR。** 两个分支均从 develop 创建,本 PR 不含 !2473 的提交。!2473 合入后,更新本分支与 develop 的基线,运行测试后再合入。 [opencann !5](https://gitcode.com/opencann/graph-autofusion/merge_requests/5) 保留完整版本,用于线上 CI 验证;本地组合测试通过不代表本 PR 单独运行的线上 CI 已通过。原 !1920 保留供查阅历史讨论。 See merge request: cann/graph-autofusion!2474 | 11 天前 | |
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 | 1 个月前 | |
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 个月前 | |
chore: 补充多流测试、文档及工程接入 Co-authored-by: KenChow<zhouchen53@huawei.com> # message auto-generated for no-merge-commit merge: !2474 merge chore/multistream-integration-20261008 into develop chore: 补充多流测试、文档及工程接入 Created-by: KenChow Commit-by: KenChow Merged-by: cann-robot Description: # Pull Request ## 描述 为 [纯 Python 多流规划实现 PR !2473](https://gitcode.com/cann/graph-autofusion/pull/2473) 补充测试、文档及工程接入。共 47 个文件,按职责分成三个提交: - 656237bd chore: 接入多流构建交付与 CI:CMake wheel 构建、build.sh UT/ST 入口、覆盖率配置、GitCode UT 任务及安装卸载、软链接处理。 - 4ec5eabf test: 补充多流单元测试与系统测试:公共测试函数、Runtime 模拟实现、算法和规划测试、性能及跨进程结果一致性验证、wheel 内容和安装隔离、安装卸载与 CI 配置验证。 - 1546baa5 docs: 补充多流模块使用说明和开发者指南:README、接口用法、测试方法及开发说明。 本分支直接基于 develop,不包含 !2473 的实现提交及 pyproject.toml。页面 diff 仅包含本 PR 的改动。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 从 [原 PR !1920](https://gitcode.com/cann/graph-autofusion/pull/1920) 拆分,未新增关联 Issue。 ## 如何测试 1. 在临时工作区中先放入 !2473 的实现提交,再应用本 PR 的三个提交;进入 multistream/,使用已安装 dev 依赖的 Python 环境执行 python -m pytest tests/ut tests/st -q:**291 passed,4 subtests passed**。 2. 组合后的 Git tree 与原完整版本 6dbc123f 完全一致,无遗漏或重复改动文件;git diff --check 通过。 3. 同一完整文件版本此前已通过独立 CMake wheel 构建和安装:cmake --build <build_dir> --target multistream_whl -j 8、cmake --install <build_dir>,以及修改过的 shell 脚本 bash -n 检查。 4. 未执行完整 CANN 产品包构建和真实设备验证。本分支单独检出时缺少 !2473 的实现和包配置,不能单独运行完整构建或 UT/ST。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 **依赖 !2473 先合入。请勿先合入本 PR。** 两个分支均从 develop 创建,本 PR 不含 !2473 的提交。!2473 合入后,更新本分支与 develop 的基线,运行测试后再合入。 [opencann !5](https://gitcode.com/opencann/graph-autofusion/merge_requests/5) 保留完整版本,用于线上 CI 验证;本地组合测试通过不代表本 PR 单独运行的线上 CI 已通过。原 !1920 保留供查阅历史讨论。 See merge request: cann/graph-autofusion!2474 | 11 天前 | |
【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 | 19 天前 | |
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 个月前 | |
fix: 将默认编译并发限制为最多 14 Co-authored-by: KenChow<zhouchen53@huawei.com> # message auto-generated for no-merge-commit merge: !2623 merge fix/develop-default-build-jobs14 into develop fix: 将默认编译并发限制为最多 14 Created-by: KenChow Commit-by: KenChow Merged-by: cann-robot Description: # Pull Request ## 描述 build.sh 未指定 -j 时直接按 /proc/cpuinfo 的逻辑 CPU 数并发编译,在内存受限的 CI 环境中可能造成较高内存压力。PR #2612 的 framework ST 编译曾出现多次 cc1plus 被杀。 将默认并发数设为 min(CPU_NUM, 14),并同步帮助信息。通过 build.sh 执行构建、UT/ST 时均沿用该默认值。显式 -j 参数仍按既有规则覆盖默认值,并受 CPU_NUM 上限约束。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。相关排查: https://gitcode.com/cann/graph-autofusion/pull/2612 ## 如何测试 1. bash -n build.sh:通过。 2. 从实际脚本提取默认赋值逻辑,验证 CPU 数为 1、8、14、16、32、128 时,默认并发分别为 1、8、14、14、14、14。 3. 验证实际 check_param_j 函数:32 CPU 显式指定 24 并发得到 24;8 CPU 显式指定 16 得到 8。 4. 针对 build.sh 的适用 pre-commit 检查通过;git diff --check 通过。OAT 在本次检查中因无暂存文件跳过;同一修改在来源 PR #2622 已通过 OAT。 5. 未运行完整构建和 UT/ST,内存峰值及是否解决 CI 失败需线上验证。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档(已同步命令行帮助信息) - [x] 我在标题中使用了合适的类型标签 - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守其中的规定 ## 其他信息 迁移自 PR #2622 的提交 486a8b70,基于 develop cherry-pick 为单个提交,修改内容与 #2622 一致。目标分支为 develop。最终差异仅涉及 build.sh 的默认并发设置和帮助信息。较低并发可能增加编译耗时,实际效果待 CI 验证。 See merge request: cann/graph-autofusion!2623 | 5 天前 | |
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 | 2 个月前 | |
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 | 2 个月前 |
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 项目英文介绍