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 | 9 天前 | |
fix: 限制 multistream CI 仅在 master/develop 执行 | 3 天前 | |
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: SIMT 动态 shape 坐标分解经 Context 传入 + 性能优化(magic 除法/分解共享/32 位双实例) Co-authored-by: JaydenChu<zhumin54@huawei.com> # message auto-generated for no-merge-commit merge: !2552 merge fix/simt-dynamic-shape-context-size into develop fix: SIMT 动态 shape 坐标分解经 Context 传入 + 性能优化(magic 除法/分解共享/32 位双实例) Created-by: JaydenChu Commit-by: JaydenChu Merged-by: cann-robot Description: ## 问题 动态 shape(ksN 为符号尺寸)下 IndirectLoad SIMT 降级的静态方法体( Index/AicoreIndex/Outputs/Store)内坐标分解会渲染 t->ksN,而 t(tiling 数据指针)是 kernel 函数形参,静态方法作用域不可见,设备侧编译报 use of undeclared identifier t。静态 shape 渲染为常量,既有语料未覆盖该路径。 复现场景(inductor embedding×mul,动态 shape):广播表 gather + strided 侧载 mul 操作数,落至通用 index_coord 分解。 ## 性能优化 功能问题解决后,新出现性能问题需要优化。 基线:eager 80µs,SIMT 融合初版 530µs——融合反而慢 6.6×。逐项消除: | 提交 | 优化 | 真机 | |---|---|---| | ea7aa4d0 | 坐标分解 magic 除法(编译期预算 magic/shift,替换每元素软件 64 位除法) | 530 → 443.7µs | | 9d938162 | 分解共享:Address(kStrided Rank3/Axis1 + Rank2/Axis0 特化)在 Axis 层一次填 coord_axis/axis_prefix,fused consumer 侧载维直接差分(output_index - axis_prefix * inner),消除逐元素 magic mod;32 位 FastDiv(值域 < 2^32 时走 32 位 magic) | 443.7 → 314.3µs | | d88c93f6 | 偏移域 32 位双实例:静态/动态产物对比定位 4× 差距主因——CanUseUint32Offsets 常量求值在动态 shape 必失败,全链路退化 uint64。动态 kStrided Rank3/Axis1(无 post Reduce、单输出链)双发 uint64/uint32 两套 body,调用点按各视图元素总数 ≤ INT32_MAX 运行时判定分派;32 位 body 与静态字面量版同构(全 32 位零除法) | 71µs | 对照:静态 shape(no_dynamic)79µs。u32 双实例即为对齐该水位的设计——32 位 body 与静态版同构且坐标差分路径指令更少。 ### 机制细节 - **Context 尺寸字段(06fdf7fe)**:SimtRuntimeSizeRegistry 按 tiler 表达式串去重收集静态方法体引用的运行期符号尺寸,Context/FusedCtx 追加 rt_size_N(uint64_t)字段,kernel 作用域初始化(t 可见处)赋值。 - **分解共享(9d938162)**:与 gather 轴尺寸对齐的侧载维复用 coord_axis;inner 维差分 output_index - axis_prefix * inner;物理 extent 不同的侧载保留独立 mod;广播维(stride 0)零成本。 - **标量透传(ffdd5abd)**:bisheng -x asc 限制 __simt_callee__ 签名引用 AscendC::Internal 类模板,Outputs 地址字段逐标量展开传递。 - **双实例门控(927ce35b)**:仅 uint64(动态)形态双发;静态 shape 保持单 body 原路径。共享 64 位字段 Context,32 位引用处截断;回退除法在宽类型求值后截断(magic 按 64 位公式预算)。 ## 验证 - 全量 UT 1021/1021;indirect_load 全家族 ST 116/116(含 codegen 变体);e2e 58/58(设备侧编译含修复后 kernel)。 - 用户 shape 生成物 bisheng -x asc --npu-arch=dav-3510 设备编译通过(真机同款拼装)。 - 新增 IL_USER_EMBEDDING_MUL 后端用例(复刻 inductor embedding×mul 动态 shape 场景):小 shape / 用户超大表(断言选 SIMT)/ 强制派发三用例数值对拍。 - 既有 kernel 重新生成字节级不变(静态 shape 注册表为空,纯 no-op)。 关联:性能 PR #2442 不含本修复(其改动仅 SIMD/散射快路函数),两 PR 改动区域不重叠。 See merge request: cann/graph-autofusion!2552 | 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 | 8 天前 | |
fix(spec): align enumeration stubs and guard returned counts | 10 天前 | |
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 | 7 天前 | |
fix: 向量算子复用被Store读取的buffer前插入MTE3->V同步(#421) Co-authored-by: zqmin<zengqingmin2@huawei.com> # message auto-generated for no-merge-commit merge: !2560 merge fix/mte3-to-vec-sync-before-reuse into develop fix: 向量算子复用被Store读取的buffer前插入MTE3->V同步(#421) Created-by: zqmin Commit-by: zqmin Merged-by: cann-robot Description: # Pull Request ## 描述 修复 v35/v1 共享 codegen 的同步缺失问题:当 load 的输出 buffer 同时被 Store(MTE3) 读取、又被向量算子原地复用覆盖写时,原逻辑仅按 reuse_from 的前一写入者(Load/MTE2)判断同步,只生成 PipeBarrier<PIPE_V>(),缺少 MTE3->V 等待,异步的 Store 可能读到被向量算子覆盖后的数据。 修复方案:ApiCall::AllocOutputs 中检测向量算子复用的 buffer 是否仍有 Store 读者(HasMte3StoreReader)且复用不经 que 的 free->alloc 交接(IsQueProtectedReuse),是则通过新增的 TPipe::SyncMte3ToVec 在覆盖写前插入 HardEvent::MTE3_V + TQueSync<PIPE_MTE3, PIPE_V> 同步。 完整触发条件(4 个 AND): unit == kUnitVector && out.reuse_from != nullptr && HasMte3StoreReader(*out.reuse_from) // 被复用 tensor 仍有 Store 读者 && !IsQueProtectedReuse(tpipe, out, t) // 排除 free->alloc 交接路径 **为何排除 free->alloc 路径**:复用来源 position == VecOut 时,复用走 AllocTensor 从 VECOUT 池子取回(生成 q.AllocTensor<uint8_t>()),该 buffer 的上一生命周期必然走完 EnQue -> store DeQue 读 -> FreeTensor 归还,且 FreeTensor 挂的 free 事件方向为 MTE3->V(由 que 的 position 决定),AllocTensor 内部 WaitFlag 已等待 MTE3 读者完成,无需重复插入。复用来源为 VecIn(load buffer)或 TBuf 时走原地覆盖路径(仅 PipeBarrier<PIPE_V>),无任何事件保护,才需要显式同步。该判断与 codegen 选路分支(生成 AllocTensor 还是 PipeBarrier)使用同一判据(复用来源 position == kPositionVecOut),两侧不会错位。 ## 变更类型 - [x] 🐛 Bug 修复 ## 关联的Issue Fixes #421 ## 如何测试 1. UT 正向:CodegenKernel_CallSync.Load_StoreReader_And_VecReuseLoad_ShouldSyncMte3ToVec(Store 读者 + VecCalc 复用 load buffer,RED/GREEN 已本地验证:无修复时 Store 后直接紧跟向量复用、无任何 MTE3 同步) 2. UT 负向:CodegenKernel_CallSync.VecOut_StoreRead_Free_AllocVecReuse_ShouldNotSyncMte3ToVec(free->alloc 交接路径不插同步) 3. ST:v35 backend_e2e_v2 新增 load_to_store_and_round_test,构造 load -> {store 直连, round 链} 场景:Phase1 生成的 kernel 在 round 复用 q0 buffer 前含 TQueSync<PIPE_MTE3, PIPE_V>(禁用修复重新生成则无该同步);Phase2 在 CI 环境 950 CPU 仿真上验证数值正确 4. 回归:CodegenKernel* 331 个用例本地通过(325 passed / 6 skipped 为既有跳过);抽样重新生成既有 kernel(round_bf16 / abs_bf16 / bitwise_bool_store / le_bool_store)MTE3_V 计数均为 0,无多余同步 5. CI:门禁通过,load_to_store_and_round_test_codegen_v2 与 load_to_store_and_round_test_e2e_v2 均 Passed ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 本地环境 cann-9.2.0 的 950 CPU 仿真(tikicpulib)对 v35 regbase kernel 报 exec unknown instr,所有 v35 e2e(含已有 round_bf16/abs_bf16)均无法本地执行,数值验证依赖 CI 环境。 See merge request: cann/graph-autofusion!2560 | 5 天前 | |
!2311 merge master into master 【PR】: add wait func cond record Created-by: hujiawen_kaven Commit-by: hujiawen_kaven Merged-by: cann-robot Description: # Pull Request ## 描述 add wait func cond record ## 变更类型 请选择本次引入的变更类型: <!-- [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!2311 | 4 天前 | |
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 | 7 天前 | |
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 | 7 天前 | |
【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 | 16 天前 | |
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 个月前 | |
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 | 7 天前 | |
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 项目英文介绍