| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
解决issue 253 254 255 Co-authored-by: jcmrn0930<2418672268@qq.com> # message auto-generated for no-merge-commit merge: !1847 merge zzz into develop 解决issue 253 254 255 Created-by: jcmrn0930 Commit-by: jcmrn0930 Merged-by: cann-robot Description: # Pull Request ## 描述 解决issue 253 254 255 修复 Autofuse AscendC API 在尾块 Compare 和 Cast 场景中的两类问题: - CompareScalarExtend 和 CompareExtend 处理不足一个 256B 块的尾块时,数据复制到 src_tmp[0] 后错误使用累计偏移 cnt 访问临时缓冲,可能导致越界访问。现统一从 src_tmp[0] 读取尾块数据。 - CastExtendWithOneTransferWithMaskMode 在 int64_t 与 half 转换分支中重新声明了外层变量,导致传入的 dtype size 保持为 0,进而触发整数除零。现改为对外层变量赋值。 - 新增 Compare 小尾块及带 padding 的 int64_t -> half Cast 回归用例。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> 关联issue [#253](https://gitcode.com/cann/graph-autofusion/issues/253) 关联issue [#254](https://gitcode.com/cann/graph-autofusion/issues/254) 关联issue [#255](https://gitcode.com/cann/graph-autofusion/issues/255) ## 如何测试 描述测试此变更的步骤和前提条件: 1.增量编译 AscendC API UT:cmake --build build --target test_ascendc_api -j 8 2.运行新增回归用例:./build/autofuse/tests/ut/ascendc/test_ascendc_api \--gtest_filter='TestApiCompareUT.Compare_Eq_float_float_with_small_tail:TestApiCompareUT.Compare_Eq_input_tensor_float_output_float_with_small_tail:TestApiCast.Int64ToHalfWithPaddedLastDim' 测试结果:3 个用例全部通过。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!1847 | 6 天前 | |
test: 补充codegen_impl元数据与meta工具单元测试(#210) Co-authored-by: hitLeechi<25s103542@stu.hit.edu.cn> # message auto-generated for no-merge-commit merge: !1997 merge ut/issue210-codegen-meta into develop test: 补充codegen_impl元数据与meta工具单元测试(#210) Created-by: hitLeechi Commit-by: hitLeechi Merged-by: cann-robot Description: # Pull Request ## 描述 补充 autofuse/ascir 目录单元测试(Issue #210 第三批交付,generator codegen 元数据 + meta 公共工具): | 源文件 | 新增内容 | 覆盖目标 | 行覆盖率 | |---|---|---|---| | generator/v1_ascir_codegen_impl.h | 53 个算子 CodegenImpl 类的元数据契约断言(GetApiCallName/GetApiName 非空、header 列表容量约束) | 大量从未实例化的 Impl 类元数据方法,防止算子 api 名/头文件列表回归 | ~25% → **64.2%**(本地 lcov 实测,+390 行) | | meta/ascir_utils.cpp | IdentifierToStr、GetDumpFilePrefix 直测 | 标识符渲染与 dump 前缀确定性 | — | | meta/ascendc_graph_txt_dumper.cpp | GetDtypeInfo、GetAxisTypePriority/Suffix、ExtractDtype/AxisListFromTensorType、BuildAxisIdToName/TypeMap 共 5 组直测 | dtype/轴类型查找与 tensor 类型解析 | — | 变更含 CMakeLists 接线:test_ascir_ut 新增 2 个测试文件与 ${CODE_ROOT_DIR}/ascir/generator include 路径。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue #210 ## 如何测试 1. sh build.sh -u --module=autofuse_framework -j 8 2. 运行 AscIrCodegenImplMetaTest 与 AscirMetaUtilsTest 全部通过(本地全量 781 用例 0 失败) 3. lcov 收集验证 v1_ascir_codegen_impl.h 覆盖率提升至 64.2% ## 核对清单 - [x] 我的代码遵循了项目的代码风格(clang-format --dry-run --Werror 零警告) - [x] 我已对代码进行了自测(新增用例全过,pre-commit 全 Passed) - [x] 我已更新了相关的文档(本次无文档变更) - [x] 我在标题中使用了合适的类型标签(test:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 与 PR #1953(reg_func)、#1985(generator 前哨)同属 Issue #210 分批交付。剩余缺口(codegen_impl 的 Calc/IsNodeValid 构图链路、txt_dumper/ascir_utils 的静态深链函数)将在后续批次补充。 See merge request: cann/graph-autofusion!1997 | 2 天前 | |
性能建模回退 Co-authored-by: hamburgerbobo<gaoyubo4@huawei.com> # message auto-generated for no-merge-commit merge: !2052 merge revert-mr-1812-1789089741892-auto into develop 性能建模回退 Created-by: hamburgerbobo Commit-by: hamburgerbobo Merged-by: cann-robot Description: # Pull Request 性能建模回退 See merge request: cann/graph-autofusion!2052 | 2 天前 | |
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 | 2 天前 | |
性能建模回退 Co-authored-by: hamburgerbobo<gaoyubo4@huawei.com> # message auto-generated for no-merge-commit merge: !2052 merge revert-mr-1812-1789089741892-auto into develop 性能建模回退 Created-by: hamburgerbobo Commit-by: hamburgerbobo Merged-by: cann-robot Description: # Pull Request 性能建模回退 See merge request: cann/graph-autofusion!2052 | 2 天前 | |
【PR】: [fix] device_validation UT 补充缺失的 algorithm 头文件包含 Co-authored-by: hitLeechi<25s103542@stu.hit.edu.cn> # message auto-generated for no-merge-commit merge: !1983 merge fix/test-compile-defects into develop 【PR】: [fix] device_validation UT 补充缺失的 algorithm 头文件包含 Created-by: hitLeechi Commit-by: hitLeechi Merged-by: cann-robot Description: # Pull Request ## 描述 autofuse/tests/ut/device_validation/test_device_resources.cpp:378 使用 std::find 但文件未包含 <algorithm>,其可见性完全依赖头文件传递包含: - GCC 9 的 libstdc++ 中 <unordered_map>(项目头引入)传递包含 bits/stl_algo.h,编译碰巧通过; - GCC 14 环境下 libstdc++/gtest(v1.14+)均已精简传递包含,std::find 声明不可见,模板推导失败,UT 编译报错,导致文档声明 GCC >= 7.3.0 可用但实际 ST/UT 验证流程无法走通。 修复:显式包含 <algorithm>(1 行),消除对第三方/标准库头文件内部实现细节的依赖。 ## 变更类型 - [x] 🐛 Bug 修复 ## 关联的Issue ## 如何测试 1. cmake --build build --target device_validation_ut -j 8 完整编译链接通过(无错误、无新增告警); 2. 运行 ./build/autofuse/tests/ut/device_validation/device_validation_ut,136 个用例全部 PASSED,其中含出问题的 KernelModuleTest.V2RequestDoesNotProbeLegacySymbol; 3. 反向验证:去掉该行后编译成败取决于传递包含链(GCC 9 碰巧通过、精简头文件的环境复现 no matching function for call to 'find(...)'),显式包含后确定性成立; 4. pre-commit 全部钩子通过(clang-format v18.1.8、OAT 开源合规检查)。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 分支基于 origin/develop(3ab20804),仅含 1 个提交(7824a372),无多余 commit。 See merge request: cann/graph-autofusion!1983 | 5 天前 | |
【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 | 15 天前 | |
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 | 2 天前 | |
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: 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 | 2 天前 | |
feat: 新增Autofuse Ascend950真实设备验证机制 Co-authored-by: Jett_Woo<wujinteng1@huawei.com> # message auto-generated for no-merge-commit merge: !1768 merge feat/autofuse-device-validation-pr into develop feat: 新增Autofuse Ascend950真实设备验证机制 Created-by: Jett_Woo Commit-by: Jett_Woo Merged-by: cann-robot Description: ## 描述 新增 Autofuse 可扩展真实设备验证机制,首期支持 Ascend950(Ascend950PR_9579)与 Ascend910_9362,并迁移 isinf_maskedfill_fusion 用例。复用现有 backend_e2e_v2 simulator 作为模拟器验证路径,新增独立 AscendCL real-device runner,支持 per-case SoC/backend 支持矩阵、精度校验、性能统计和结构化报告。设计文档见关联 Issue #281。 主要变更: - 新增 Case Contract v1 和 per-case backend + SoC + compile/functional/precision/performance 支持矩阵。 - 新增 AscendCL runtime、TensorBuffer、动态库 ABI wrapper,支持 AutofuseLaunch 与 AutofuseLaunchV2 双 ABI,V2 优先、legacy ABI 严格限制 3 输入 1 输出。 - 新增应用内 ACL Profiling + CANN analysis 离线导出的设备端性能指标 device_kernel_duration(timing_source=msprof),及 host 墙钟、p50_speedup/kernel_reduction 收益对比。 - unfused 多步骤分解(steps + $previous 串接),并支持可选 **aclnn 模式**("aclnn": "<OpName>" 声明,跳过 ASCIR/Autofuser/JIT 直接调用 CANN 原生算子,示例用例提供 --variant unfused_aclnn)。 - 新增 Ascend950 / Ascend910_9362 profile、仓库内置 JIT 适配器、多 shape 用例([128,128]/[128,130]/[127,129]/[512,512])。 - 目录按场景归组(runner/backend/tools/python/cases/profiles),中英 README 含参数速查、用例开发教程与 aclnn 调用方式说明。 - 保持现有 backend_e2e_v2 simulator、SuperKernel、生产 package 和 pyautofuse 对外接口不变。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue - 设计文档:Autofuse 真实设备验证机制(Device Validation):#281 ## 如何测试 1. Host validation:PYTHONPATH=autofuse/tests/st:$PYTHONPATH python3 -m pytest autofuse/tests/st/device_validation -q,175 passed。 2. C++ validation:cmake --build build --target device_validation_ut device_validation_runner -j 8;device_validation_ut,136 passed。 3. Ascend950 real device:npu-smi 状态 OK;fused/unfused(ASCIR 与 aclnn 双模式)functional/precision 通过,mismatch_count=0。 4. Ascend950 performance:msprof device_kernel_duration fused p50≈7.2us、unfused(aclnn) p50≈4.2us(128x128)/ 100us vs 5.7us(512x512);kernel_reduction 3→1。 5. ruff、pre-commit、clang-format --dry-run --Werror 和 git diff --check 通过。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 真实设备验证使用 Ascend950PR/Ascend910_9362,多 shape 完成真实 ACL launch、D2H 与独立 reference 精度校验。 - 开发阶段可用 .dev_env + 构建 pyautofuse 实现"本仓库最新 autofuse 源码自验证"(README §2)。 See merge request: cann/graph-autofusion!1768 | 19 天前 | |
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 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 6 天前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 2 天前 | ||
| 5 天前 | ||
| 15 天前 | ||
| 2 天前 | ||
| 2 个月前 | ||
| 2 天前 | ||
| 19 天前 | ||
| 2 个月前 |