| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【PR】: [fix] [autofuse] adapt reform of the same-named header files of ge. Co-authored-by: xingzhixiong<xingzhixiong@huawei.com> # message auto-generated for no-merge-commit merge: !1149 merge develop_change_dir_of_metadef_headers into develop 【PR】: [fix] [autofuse] adapt reform of the same-named header files of ge. Created-by: xingzhixiong Commit-by: xingzhixiong Merged-by: cann-robot Description: # Pull Request ## 描述 metadef在做同名头文件整改,整改完编译发现gaf失败,原因是gaf仓和ge仓也有同名且子目录相同的头文件,故需要将gaf仓的同名头文件的子目录进行整改,只给gaf仓内部使用,避免产生耦合编译问题。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. ci流水线pass 2. RDV pass ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!1149 | 2 个月前 | |
feat: support IndexExpr and Arange autofusion Co-authored-by: Jett_Woo<wujinteng1@huawei.com> # message auto-generated for no-merge-commit merge: !1961 merge index-expr-device-validation-pr into develop feat: support IndexExpr and Arange autofusion Created-by: Jett_Woo Commit-by: Jett_Woo Merged-by: cann-robot Description: # Pull Request ## 描述 支持 IndexExpr 和 Arange 自动融合,补充 ASCIR/Python 接口、调度与 codegen 支持,并完善设备验证、UT 和 Backend E2E 用例。Arange 仅保留连续物理布局,数学上的非单位 step 仍受支持。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] Bug 修复 - [x] 新功能 - [ ] 代码风格更新(格式化,局部变量) - [ ] 重构(既不修复错误也不增加功能的代码变动) - [x] 构建过程或辅助工具的变动 - [ ] 文档内容更新 ## 关联的Issue 无 ## 如何测试 描述测试此变更的步骤和前提条件: 1. 已完成 IndexExpr/Arange 相关 C++ 定向 UT,12 passed。 2. 已完成 device-validation Python 定向测试,259 passed;Ascend950 fused 精度验证有效 133 个 cell,其中 131 个通过,reduce_mask 的两个既有通用 Reduce codegen 问题仍按实测结果保留。 3. 已完成相关构建目标编译验证,构建并行度限制为 -j 8。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本 PR 基于远端 develop 分支新建。未包含 docs/、tool/、temp/、验证日志或生成产物。 See merge request: cann/graph-autofusion!1961 | 7 天前 | |
fix: complete Arange fallback path (#302) Co-authored-by: Jett_Woo<wujinteng1@huawei.com> # message auto-generated for no-merge-commit merge: !1980 merge index-expr-fallback-develop-pr into develop fix: complete Arange fallback path (#302) Created-by: Jett_Woo Commit-by: Jett_Woo Merged-by: cann-robot Description: # Pull Request ## 描述 补齐 IndexExpr/Arange Autofusion 的普通 ArangeApiCall 双路径和最小影响的 VF 前置准入,确保 VF 不可用时 Arange 可走普通 LocalTensor 路径,同时收紧 VF boundary 映射并补充普通 DMA/Codegen 回归。 本 PR 基于最新 develop,不重复提交已合入的 PR 1961 主体。 核心变更: - Store 使用实际源 UB 布局计算 DMA;外层 stride 无法证明 32B 对齐或存在共享偏移时,使用注册的 32B scratch 和显式逐行拷贝,保证同步及 scratch 生命周期。 - Arange VF 准入检查轴顺序与有效 lane,不把 Store DMA 对齐约束施加到 Arange。 - 新增普通 ArangeApiCall,保留现有 MicroArangeApiCall VF 高性能路径。 - UBFuse 或控制边场景在分区前禁用 Arange VF,避免晚期 Codegen 失败。 - 缺失 vf_root_input_index 时明确失败,移除静默 boundary ordinal 回退。 - 普通 Arange fallback 分离 logical value offset 与 LocalTensor physical write offset,并对复杂无法证明安全的布局 fail closed。 - 补充 Arange Codegen、VF partition、Allocator、DMA singleton 和 boundary mapping 回归。 ## 变更类型 - [x] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 关联 Issue #302:支持 IndexExpr 和 Arange Autofusion ## 如何测试 1. 本次重新构建:cmake --build build/source_validation --target test_main optimize_ut pyautofuse -j 8,成功;SDK signal.h 有弃用告警。 2. 本次完整 host 回归:test_main 881 passed、7 skipped、8 disabled(XML total 896),零失败;optimize_ut 658 passed、8 skipped(total 666),零失败。test_main 从其二进制目录运行,以满足 ../pyautofuse.so 相对依赖。 3. 本次 git diff --check 和暂存区差异检查通过;改动行使用 clang-format 格式化。 4. 历史 V5 真机原始报告已重新核对:75 primary + 32 fallback + 1 control = 108 项,73 + 32 + 1 = 106 项数值通过;2 项 transposed output 在 codegen 阶段拒绝,不算数值成功。focus 4/4 是重跑,不重复计入分母。本次未重新运行真机矩阵。 5. 真机验证资产、文档、临时工具、日志及生成代码仅保留本地,不纳入提交。本次 host 日志位于 pipeline_logs/1980_*_20260906.*;历史真机证据位于 /tmp/opencode/p0_p1_runtime/final_matrix_v5/。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - ATT outer call fixed cost、普通 scalar fallback 和新增 Store scratch 的 scalar/per-chunk DMA/event 成本尚未建模。此路径为正确性回退,不承诺性能持平。 - 不支持动态 rank、scatter、非单位有效尾 stride、反序/交错 merged axis、Arange CV UBFuse。 - V5 矩阵剩余 2 项 transpose codegen 拒绝;仅支持 contiguous-inner scratch fallback,不宣称全部真机通过。 - 设计文档和完整真机验证资产仅保留在本地,不纳入提交。 - 源分支:index-expr-fallback-develop-pr。 See merge request: cann/graph-autofusion!1980 | 1 天前 | |
fix: complete Arange fallback path (#302) Co-authored-by: Jett_Woo<wujinteng1@huawei.com> # message auto-generated for no-merge-commit merge: !1980 merge index-expr-fallback-develop-pr into develop fix: complete Arange fallback path (#302) Created-by: Jett_Woo Commit-by: Jett_Woo Merged-by: cann-robot Description: # Pull Request ## 描述 补齐 IndexExpr/Arange Autofusion 的普通 ArangeApiCall 双路径和最小影响的 VF 前置准入,确保 VF 不可用时 Arange 可走普通 LocalTensor 路径,同时收紧 VF boundary 映射并补充普通 DMA/Codegen 回归。 本 PR 基于最新 develop,不重复提交已合入的 PR 1961 主体。 核心变更: - Store 使用实际源 UB 布局计算 DMA;外层 stride 无法证明 32B 对齐或存在共享偏移时,使用注册的 32B scratch 和显式逐行拷贝,保证同步及 scratch 生命周期。 - Arange VF 准入检查轴顺序与有效 lane,不把 Store DMA 对齐约束施加到 Arange。 - 新增普通 ArangeApiCall,保留现有 MicroArangeApiCall VF 高性能路径。 - UBFuse 或控制边场景在分区前禁用 Arange VF,避免晚期 Codegen 失败。 - 缺失 vf_root_input_index 时明确失败,移除静默 boundary ordinal 回退。 - 普通 Arange fallback 分离 logical value offset 与 LocalTensor physical write offset,并对复杂无法证明安全的布局 fail closed。 - 补充 Arange Codegen、VF partition、Allocator、DMA singleton 和 boundary mapping 回归。 ## 变更类型 - [x] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 关联 Issue #302:支持 IndexExpr 和 Arange Autofusion ## 如何测试 1. 本次重新构建:cmake --build build/source_validation --target test_main optimize_ut pyautofuse -j 8,成功;SDK signal.h 有弃用告警。 2. 本次完整 host 回归:test_main 881 passed、7 skipped、8 disabled(XML total 896),零失败;optimize_ut 658 passed、8 skipped(total 666),零失败。test_main 从其二进制目录运行,以满足 ../pyautofuse.so 相对依赖。 3. 本次 git diff --check 和暂存区差异检查通过;改动行使用 clang-format 格式化。 4. 历史 V5 真机原始报告已重新核对:75 primary + 32 fallback + 1 control = 108 项,73 + 32 + 1 = 106 项数值通过;2 项 transposed output 在 codegen 阶段拒绝,不算数值成功。focus 4/4 是重跑,不重复计入分母。本次未重新运行真机矩阵。 5. 真机验证资产、文档、临时工具、日志及生成代码仅保留本地,不纳入提交。本次 host 日志位于 pipeline_logs/1980_*_20260906.*;历史真机证据位于 /tmp/opencode/p0_p1_runtime/final_matrix_v5/。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - ATT outer call fixed cost、普通 scalar fallback 和新增 Store scratch 的 scalar/per-chunk DMA/event 成本尚未建模。此路径为正确性回退,不承诺性能持平。 - 不支持动态 rank、scatter、非单位有效尾 stride、反序/交错 merged axis、Arange CV UBFuse。 - V5 矩阵剩余 2 项 transpose codegen 拒绝;仅支持 contiguous-inner scratch fallback,不宣称全部真机通过。 - 设计文档和完整真机验证资产仅保留在本地,不纳入提交。 - 源分支:index-expr-fallback-develop-pr。 See merge request: cann/graph-autofusion!1980 | 1 天前 | |
【PR】:[feat] [autofuse] Migrate autofuse from ge to graph-autofusion. Co-authored-by: xingzhixiong<xingzhixiong@huawei.com> # message auto-generated for no-merge-commit merge: !301 merge master_af into master 【PR】:[feat] [autofuse] Migrate autofuse from ge to graph-autofusion. Created-by: xingzhixiong Commit-by: xingzhixiong Merged-by: cann-robot Description: # Pull Request ## 描述 从 ge 仓解耦autofuse组件,从ge仓的compiler/graph/optimize/autofuse目录迁移至本仓autofuse目录,未来在本仓独立发包和演进,ge 仓的集成方式不变。 迁移内容主要包括自动融合范围识别、自动算子代码生成、Auto Tiling优化、动态shape及混合精度等特性。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.上板验证inductor+af单片段流程pass 2.上板验证inductor+af整网流程pass ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!301 | 4 个月前 | |
style: 统一 Autofuse 代码格式 Co-authored-by: Ling-DT<lingxing@huawei.com> # message auto-generated for no-merge-commit merge: !921 merge style/clang-format-autofuse-20260611 into develop style: 统一 Autofuse 代码格式 Created-by: ling-DT Commit-by: Ling-DT Merged-by: cann-robot Description: # Pull Request ## 描述 基于 cann/graph-autofusion:develop 最新提交 46a23b0,使用仓库根目录 .clang-format 对 autofuse/ 目录内受版本管理的 C/C++/AscendC 源文件执行统一格式化。 本 PR 仅包含 autofuse/ 目录格式化变更;super_kernel/ 目录格式化变更按要求暂留本地,未提交到本 PR。 格式化工具:clang-format 18.1.8,参数:--style=file。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 描述测试此变更的步骤和前提条件: 1. /tmp/opencode/clang-format-18-venv/bin/clang-format -i --style=file <autofuse C/C++/AscendC files> 2. git diff --cached --check 3. git diff --name-only HEAD~1..HEAD | cut -d/ -f1 | sort | uniq -c 确认 PR 提交仅包含 autofuse/。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本 PR 为纯格式化变更,不涉及功能逻辑、接口、构建脚本或打包内容修改。 See merge request: cann/graph-autofusion!921 | 2 个月前 | |
【fix】: Asin/Acos/Remainder修改为Simt接口 Co-authored-by: gcw_V3YyYBt1<gaoxin32@huawei.com> # message auto-generated for no-merge-commit merge: !2045 merge fix/asin-acos-simt into develop 【fix】: Asin/Acos/Remainder修改为Simt接口 Created-by: gcw_V3YyYBt1 Commit-by: gcw_V3YyYBt1 Merged-by: cann-robot Description: # Pull Request ## 描述 将 Autofuse V2 的 **Asin/Acos** 与 **Remainder(int32)** 算子执行路径切换为 SIMT 接口实现,与既有 Sin/Cos/Expm1 的 SIMT 机制对齐:SIMT kernel( __simt_vf__ + LAUNCH_BOUND(1024),线程按 threadIdx.x 步进 blockDim.x 逐元素计算)通过 AscendC::Simt::VF_CALL 启动,并配套 40 KiB SIMT dcache 预留。外部 ASCIR 类型、Python API、ATT 注册、tmp buffer 计算和 ApiCall 调用 ABI 均保持不变。 ## 问题 1. **Asin/Acos**:此前直接调用 AscendC 高阶 API(adv_api/math/asin.h/acos.h),性能比单算子差。 2. **Remainder(int32)**:原实现基于 AscendC::Reg:: 向量指令,性能比单算子差。 ## 修改方案 1. **新增 asin.h/acos.h regbase**:AsinSimtCompute/AcosSimtCompute(调用 Simt::Asin/Simt::Acos)+ AsinExtend/AcosExtend wrapper;CMake 生成 raw string 并在 ascendc_reg_base_api_register.cpp 注册;Codegen 类 GetApiName() 切换为 AsinExtend/AcosExtend,LoadApiHeaderFiles() 加载 asin_reg_base.h/acos_reg_base.h,IncludeApiHeaderFiles() 增加 SIMT 官方头;GetConversionDtype() 增加 FP16→FLOAT 转换(与 BF16→FLOAT 一致)。 2. **remainder.h int32 路径替换为 SIMT**:新增 RemainderIntSimtCompute(参考 ops-math 仓 FloorModInt_1:% 取余 + 符号差异修正 rem + src2,保证 floor 语义),通过 AscendC::Simt::VF_CALL 启动;删除 AscendC::Reg:: 向量实现 RemainderIntImplVF;Codegen IncludeApiHeaderFiles() 增加 simt_api/cpp/kernel_simt_intf.h。float 路径保持不变。 3. **图信息补全**(ascgraph_info_complete.cpp):CompleteElewiseApiInfo 为 Asin/Acos 及 int32 输入的 Remainder 设置 40 KiB SIMT dcache 预留;kOpTypeToComputeType 补全 Asin/Acos/Remainder 的 kComputeElewise 条目。 4. **测试断言增强**:asin/acos backend generator 断言 AsinExtend/AcosExtend、*SimtCompute、SIMT 头文件和 tiling dcache(40960);remainder int32 generator 同步增加 RemainderIntSimtCompute 与 dcache 断言。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. cmake --build build --target aihac_codegen -j 8 编译通过。 2. 运行 asin_bf16_test_codegen_v2 / acos_bf16_test_codegen_v2:断言 Extend/SimtCompute/SIMT 头/tiling dcache 全部通过。 3. 运行 remainder_int32_store_test_e2e_v2:ICPU(ascend950 模拟)3/3 通过,覆盖对齐/非对齐/较大 shape,输入含正负除数符号修正场景,golden 独立计算 floor 语义。 4. 回归:optimize_ut 651/651、test_main 878/878(0 failed)、regbase UT RemainderFloor_Test 通过;clang-format(v18.1.8 pre-commit 与 v21.1.4 双版本)检查通过。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 See merge request: cann/graph-autofusion!2045 | 1 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 7 天前 | ||
| 1 天前 | ||
| 1 天前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 1 天前 |