文件最后提交记录最后更新时间
【Feat】: 生成apicall tmpbuf参数顺序统一 Co-authored-by: chenyanggong<chenyanggong@huawei.com> # message auto-generated for no-merge-commit merge: !568 merge tmp_buf_0529 into develop 【Feat】: 生成apicall tmpbuf参数顺序统一 Created-by: Yanggong98 Commit-by: chenyanggong Merged-by: cann-robot Description: # Pull Request ## 描述 统一apicall字符串生成过程中tmpbuf和actual_size参数顺序,为ApiParam适配做铺垫 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 不影响原来测试用例 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!5681 天前
【PR】: [feat] [autofuse] add llt to autofuse. Co-authored-by: xingzhixiong<xingzhixiong@huawei.com> # message auto-generated for no-merge-commit merge: !372 merge master_llt into master 【PR】: [feat] [autofuse] add llt to autofuse. Created-by: xingzhixiong Commit-by: xingzhixiong Merged-by: cann-robot Description: # Pull Request ## 描述 增加autofuse组件的llt。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 跑ci流水线能全部通过即可 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!37221 天前
【fix】: 修复 ArgListManager 单例实例分裂导致 TestGlobalOccupy 测试失败 Co-authored-by: zhang_shengjie<804425610@qq.com> # message auto-generated for no-merge-commit merge: !628 merge fix_ut_instant into develop 【fix】: 修复 ArgListManager 单例实例分裂导致 TestGlobalOccupy 测试失败 Created-by: zhang_shengjie Commit-by: zhang_shengjie Merged-by: cann-robot Description: # Pull Request ## 描述 ### 一、主要解决的问题 #### 1.1 ArgListManager 单例实例分裂导致测试失败 **问题现象**: - TestBufOccupyExpr.TestGlobalOccupy 测试在 aarch64 环境上失败 - 测试期望 GetTotalGlobalOccup 返回非 SUCCESS,但实际返回 SUCCESS - 同一测试在 x86_64 环境上通过(假阳性) **根因分析**: - ArgListManager::GetInstance() 在头文件中 inline 定义,使用 Meyer's Singleton 模式 - att_ut 的 CMakeLists.txt 使用 -Wl,-Bsymbolic 链接选项 - -Bsymbolic 使可执行文件优先使用自己的符号,导致 att_utlibatt.so 各自持有独立的单例实例 - x86_64 链接器行为导致实例分裂(假阳性通过),aarch64 链接器正确合并 weak 符号(暴露真实问题) **影响范围**: - 所有依赖 ArgListManager::GetInstance() 的代码可能存在单例分裂隐患 - 测试用例期望值本身错误(对有效 Workspace 应返回 SUCCESS) #### 1.2 删除未使用的 AscirCompileAndLaunch 接口 **问题描述**: - codegen_tiling.cpp 中存在大量未使用的 AscirCompileAndLaunch 相关函数 - 代码冗余,增加维护成本 **影响范围**: - codegen_tiling.cppcodegen_tiling.h - 约 170 行代码删除 ### 二、修改方案 #### 2.1 修复 ArgListManager 单例实例分裂 **方案**:将 GetInstance() 实现从头文件移到 .cpp 文件 **修改前** (arg_list_manager.h): ```cpp class ArgListManager { public: static ArgListManager &GetInstance() { static ArgListManager arg_list_mgr; return arg_list_mgr; } }; ``` **修改后**: - arg_list_manager.h:仅声明 static ArgListManager &GetInstance(); - arg_list_manager.cpp:实现 GetInstance() 函数 **原理**: - 将 static 局部变量从 weak 符号(inline 函数)变为强符号(.cpp 文件) - 确保全局只有一个单例实例,无论链接器如何处理 -Bsymbolic #### 2.2 修正测试期望值 **修改** (test_buf_occupy_expr.cpp): ```cpp // 修改前 EXPECT_NE(buf_evaluator->GetTotalGlobalOccup(global_occup_expr), af::SUCCESS); // 修改后 EXPECT_EQ(buf_evaluator->GetTotalGlobalOccup(global_occup_expr), af::SUCCESS); ``` **理由**:addResOut 是 Workspace 类型节点,有有效的 tensor 表达式,GetTotalGlobalOccup 应该返回 SUCCESS。 #### 2.3 删除 AscirCompileAndLaunch 接口 **删除的函数**: - GenAutofuseLaunchDeclare() - GenAscirCompileAndLaunchHead() - GenAclInit() - GenAscirTilingFunc() - GenAscirMallocWorkspaceFunc() - GenAscirLaunchFunc() - TilingLib::GenAscirTilingAndLaunchFunc() **删除的代码量**:约 170 行 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新 - [ ] ♻️ 重构 - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue Closes #82 ## 如何测试 ### 一、测试用例说明 #### 1.1 单元测试 **测试目标**:TestBufOccupyExpr.TestGlobalOccupy **测试步骤**: ```bash cmake --build build --target att_ut -j 8 ./build/autofuse/tests/ut/att/att_ut --gtest_filter=TestBufOccupyExpr.TestGlobalOccupy ./build/autofuse/tests/ut/att/att_ut ``` **预期结果**: - TestGlobalOccupy 测试通过 - 所有 931 个 att UT 测试通过 **实际验证结果**: - ✅ 本地 x86_64 环境:931/931 通过 - ✅ 远端 CI 流水线:编译成功 #### 1.2 系统测试 **测试目标**:验证删除 AscirCompileAndLaunch 接口不影响现有功能 **测试步骤**: ```bash bash scripts/test/run_autofuse_test.sh -s -m codegen -j 8 ``` **预期结果**:所有 codegen ST 测试通过 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签 - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md) ## 其他信息 ### 验证方法 1. **本地验证**:编译 att_ut 并运行所有测试,确认 TestGlobalOccupy 测试通过 2. **远端 CI 验证**:流水线 #696635:✅ 成功(23分钟) ### 注意事项 1. **单例模式最佳实践**: - 避免在头文件中 inline 定义包含 static 局部变量的函数 - 如需确保全局唯一实例,将实现放在 .cpp 文件中 2. **-Bsymbolic 链接选项影响**: - 该选项使可执行文件优先使用自己的符号 - 可能导致 weak 符号(如 inline 函数的 static 变量)实例分裂 - 在跨架构(x86_64 vs aarch64)时行为可能不同 3. **测试期望值审查**: - 定期检查测试用例的期望值是否合理 - 避免因环境差异导致的假阳性通过 ### 提交记录 | Commit | 描述 | 修改文件数 | |--------|------|-----------| | ecd463c | fix: 修复 ArgListManager 单例实例分裂导致 TestGlobalOccupy 测试失败 | 3 | | 985b879 | 【fix】: 删除AscirCompileAndLaunch接口 | 2 | ### 修改文件清单 | 文件路径 | 修改类型 | 说明 | |---------|---------|------| | autofuse/att/gen_model_info/expr_gen/arg_list_manager.h | 修改 | 移除 GetInstance() inline 实现 | | autofuse/att/gen_model_info/expr_gen/arg_list_manager.cpp | 修改 | 添加 GetInstance() 实现 | | autofuse/tests/ut/att/testcase/gen_model_info/expr_gen/test_buf_occupy_expr.cpp | 修改 | 修正测试期望值 | | autofuse/codegen/codegen_tiling.cpp | 修改 | 删除 AscirCompileAndLaunch 相关函数 | | autofuse/codegen/codegen_tiling.h | 修改 | 删除 GenAscirTilingAndLaunchFunc 声明 | See merge request: cann/graph-autofusion!6288 小时前
【PR】: [feat] [autofuse] add llt to autofuse. Co-authored-by: xingzhixiong<xingzhixiong@huawei.com> # message auto-generated for no-merge-commit merge: !372 merge master_llt into master 【PR】: [feat] [autofuse] add llt to autofuse. Created-by: xingzhixiong Commit-by: xingzhixiong Merged-by: cann-robot Description: # Pull Request ## 描述 增加autofuse组件的llt。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 跑ci流水线能全部通过即可 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!37221 天前
【feat】支持AscirParam层统一ATT/Codegen公共参数(支持Reduce) Co-authored-by: zhang_shengjie<804425610@qq.com> # message auto-generated for no-merge-commit merge: !556 merge fix_reduce_perf_model_ascir_common into develop 【feat】支持AscirParam层统一ATT/Codegen公共参数(支持Reduce) Created-by: zhang_shengjie Commit-by: zhang_shengjie Merged-by: cann-robot Description: # Pull Request ## 描述 ### 一、主要解决的问题 #### 1.1 Reduce 参数在 Parser/Codegen/ATT 三处重复计算且不一致 此前 Reduce 算子的 ReduceSpecificParams 由 Parser 侧(reduce_specific_params_builder)独立计算并存储在 NodeInfo 结构体中,Codegen 侧(reduce_api_call_base)和 ATT 性能模型侧(ascir_reduce_api_perf_v2)各自再独立计算或直接从 NodeInfo 读取。三条路径之间没有共享机制,导致: - Parser 与 Codegen 的 merge_size / merge_times / pattern 可能不一致,难以定位问题。 - ATT 性能模型使用的 merge_size 来源于 codegen 侧的 tiling 后表达式,丢失了语义维度的信息,影响性能预估精度。 #### 1.2 缺少 Parser 与 Codegen 参数一致性校验手段 没有自动化手段在 Codegen 阶段校验 Parser 预计算参数是否与 Codegen 实时计算结果一致,参数偏差只能在运行时暴露。 ### 二、修改方案 #### 2.1 新增公共模块 ascir_node_param(4 个新文件) 新增 autofuse/common/ascir_node_param/ 目录,定义统一的 ASCIR 节点参数数据结构与构建逻辑: - **ascir_node_param.h/cpp** — 定义 AscirNodeParams(通过 OpDesc::ExtAttr 挂载到 AscNode)、ReduceNodeParams(包含 canonical_params + exprs 语义配方)、ParamExprProduct(乘法因子表达式)等核心类型。提供 GetAscirNodeParams()GetCanonicalReduceParams()ResolveForAtt()ValidateReduceNodeParams() 等公共接口。 - **ascir_param_builder.h/cpp** — 实现 EnrichAscirGraphNodeParams(),遍历图中所有节点,对 Reduce 类算子(Max/Min/Mean/Sum/Prod/Any/All 等 14 种)构建 ReduceNodeParams 并注册到节点 ExtAttr;非 Reduce 算子标记为 kSkipped。 #### 2.2 Codegen 阶段集成参数富化与 Shadow 校验 - **codegen.cpp** — 在 GenerateKernel() 入口处调用 EnrichScheduledResultAscirParams(),对所有 ScheduleGroup 中的 AscGraph 执行参数富化(去重已处理的 graph)。 - **reduce_api_call_base.cpp/h** — 新增 CheckReduceSpecificParamsForCodegen(),在 Codegen 阶段重新构建 shadow 参数并与 Parser 预计算参数逐字段比较(valid / pattern / merge_mode / merge_size / merge_times / reuse / merged_dims),不一致时通过 GELOGW 输出差异详情。 - **reduce_api_call.cpp** / **reg_reduce_api_call.cpp** — 在 Generate() 中调用 shadow check。 #### 2.3 Parser 侧重构,写入共享参数 - **reduce_specific_params_builder.cpp** — 大幅重构(净减约 120 行),FillReduceSpecificParams() 改为先调用 EnrichAscirGraphNodeParams() 注册共享参数,再从节点 ExtAttr 读取 ReduceNodeParams 回填到 NodeInfo。 - **tuning_space.h** — NodeInfo::reduce_specific_params 类型从 codegen::ReduceSpecificParams 改为 ascir_param::ReduceNodeParams。 #### 2.4 ATT 性能模型适配新结构 - **ascir_reduce_api_perf_v2.cpp** — BuildReduceContext() 改为通过 GetCanonicalReduceParams() 读取规范参数;merge_size 优先使用语义表达式(exprs.merge_size)从 output shape 重建,merge_times 通过 ResolveForAtt() 解析语义配方,提升性能预估精度。 #### 2.5 新增测试 | 测试文件 | 覆盖内容 | |---------|---------| | test_ascir_node_params.cpp(新增,239 行) | EnrichAscirGraphNodeParams 对 AR/RA/AllAxis/BlockSplit/MergedAxis 等多种 Reduce 场景的参数构建与校验 | | ascir_reduce_test_helpers.h(新增,111 行) | 测试辅助工具:ReduceTestEnvBuildParserTensorBuildReduceNodeInfo | | test_codegen_reduce_api_call.cpp(扩展,+340 行) | Shadow check 的边界场景(node 为空 / status 非 built / specific_params 类型不匹配 / shadow build 失败)及 Parser-Codegen 参数一致性验证 | | test_ascir_perf_v2.cpp(扩展) | FillReduceSpecificParams 与共享参数的集成测试 | | test_reduce_min_max_api_perf_v2.cpp(扩展) | 语义 merge_size/merge_times 在 ATT 性能模型中的验证 | ### 三、代码修改流程图 #### 3.1 模块调用关系图 ```mermaid graph TD A["codegen.cpp<br/>GenerateKernel"] -->|"EnrichScheduledResultAscirParams"| B["ascir_param_builder.cpp<br/>EnrichAscirGraphNodeParams"] B -->|"遍历节点, 构建参数"| C["ascir_node_param.cpp<br/>AscirNodeParams / ReduceNodeParams"] C -->|"SetExtAttr 挂载到 AscNode"| D["AscNode.OpDesc.ExtAttr"] D -->|"GetExtAttr 读取"| E["reduce_specific_params_builder.cpp<br/>FillReduceSpecificParams"] D -->|"GetExtAttr 读取"| F["reduce_api_call_base.cpp<br/>CheckReduceSpecificParamsForCodegen"] D -->|"GetCanonicalReduceParams"| G["ascir_reduce_api_perf_v2.cpp<br/>BuildReduceContext"] E -->|"回填 NodeInfo"| H["NodeInfo.reduce_specific_params"] H --> G F -->|"shadow 构建 + 比较"| I["GELOGW 输出差异"] style A fill:#FFD700,stroke:#B8860B,stroke-width:2px style B fill:#90EE90,stroke:#006400,stroke-width:2px style C fill:#90EE90,stroke:#006400,stroke-width:2px style D fill:#e1f5ff,stroke:#4682B4,stroke-width:2px style E fill:#FFD700,stroke:#B8860B,stroke-width:2px style F fill:#FFD700,stroke:#B8860B,stroke-width:2px style G fill:#FFD700,stroke:#B8860B,stroke-width:2px style H fill:#FFD700,stroke:#B8860B,stroke-width:2px style I fill:#FF69B4,stroke:#C71585,stroke-width:2px ``` #### 3.2 Reduce 参数构建与校验流程 ```mermaid flowchart TD Start(["EnrichAscirGraphNodeParams(graph)"]) --> Loop["遍历 graph 所有节点"] Loop --> Check{"IsReduceParamSupported?<br/>(Max/Min/Sum/Mean/Prod/Any/All...)"} Check -->|"否"| Skip["RegisterSkippedAscirNodeParams<br/>status = kSkipped"] Check -->|"是"| BuildCtx["BuildAscirParamContext<br/>提取 input/output tensor views<br/>+ loop axis views"] BuildCtx --> BuildInput["BuildReduceInput<br/>pattern / merge_size / merge_times<br/>need_multi_reduce / reuse"] BuildInput --> BuildParams["BuildReduceSpecificParams<br/>(复用 codegen 公共函数)"] BuildParams --> BuildExprs["构建语义配方<br/>exprs.merge_size / exprs.merge_times"] BuildExprs --> Validate{"ValidateReduceNodeParams<br/>语义表达式与规范参数一致性"} Validate -->|"通过"| Register["RegisterAscirNodeParams<br/>SetExtAttr 到 OpDesc<br/>status = kBuilt"] Validate -->|"失败"| Invalid["status = kInvalid"] Skip --> Next(["下一个节点"]) Register --> Next Invalid --> Next style Start fill:#90EE90,stroke:#006400,stroke-width:2px style Skip fill:#FFD700,stroke:#B8860B,stroke-width:2px style Register fill:#90EE90,stroke:#006400,stroke-width:2px style Invalid fill:#FF6347,stroke:#8B0000,stroke-width:2px style Validate fill:#FF69B4,stroke:#C71585,stroke-width:2px ``` ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 ### 一 测试用例说明 #### 1.1 单元测试 | 测试文件 | 测试用例数 | 覆盖场景 | |---------|-----------|---------| | test_ascir_node_params.cpp | 12 | AR/RA/AllAxis/MergedAxis/BlockSplit 参数构建、语义表达式校验、不支持 API 跳过、缺失 vectorized_strides 报错 | | test_codegen_reduce_api_call.cpp | 新增 6 个 shadow check 用例 | node 为空/status 非 built/类型不匹配/shadow build 失败/Rmin tile split 匹配/original parent axis 匹配 | | test_ascir_perf_v2.cpp | 新增 1 个集成用例 | FillReduceSpecificParams 写入共享参数验证 | | test_reduce_min_max_api_perf_v2.cpp | 新增 4 个用例 | 共享参数注册、不支持 API 跳过、参数缺失降级、语义 merge params 性能验证 | #### 1.2 系统测试 暂无新增 STC 用例,现有 Reduce 相关 STC 可回归验证。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 ### 验证方法 1. 编译项目确保无编译错误 2. 运行新增 UT:test_ascir_node_paramstest_codegen_reduce_api_calltest_ascir_perf_v2test_reduce_min_max_api_perf_v2 3. 回归现有 Reduce 相关 STC ### 注意事项 - NodeInfo::reduce_specific_params 类型已从 codegen::ReduceSpecificParams 变为 ascir_param::ReduceNodeParams,所有直接访问 .valid / .pattern / .merge_mode 等字段的代码需改为通过 .canonical_params.xxx 访问 - Shadow check 当前仅输出 WARNING 日志,不阻断流程,后续可根据日志结果决定是否升级为硬校验 See merge request: cann/graph-autofusion!55622 小时前
【feat】支持AscirParam层统一ATT/Codegen公共参数(支持Reduce) Co-authored-by: zhang_shengjie<804425610@qq.com> # message auto-generated for no-merge-commit merge: !556 merge fix_reduce_perf_model_ascir_common into develop 【feat】支持AscirParam层统一ATT/Codegen公共参数(支持Reduce) Created-by: zhang_shengjie Commit-by: zhang_shengjie Merged-by: cann-robot Description: # Pull Request ## 描述 ### 一、主要解决的问题 #### 1.1 Reduce 参数在 Parser/Codegen/ATT 三处重复计算且不一致 此前 Reduce 算子的 ReduceSpecificParams 由 Parser 侧(reduce_specific_params_builder)独立计算并存储在 NodeInfo 结构体中,Codegen 侧(reduce_api_call_base)和 ATT 性能模型侧(ascir_reduce_api_perf_v2)各自再独立计算或直接从 NodeInfo 读取。三条路径之间没有共享机制,导致: - Parser 与 Codegen 的 merge_size / merge_times / pattern 可能不一致,难以定位问题。 - ATT 性能模型使用的 merge_size 来源于 codegen 侧的 tiling 后表达式,丢失了语义维度的信息,影响性能预估精度。 #### 1.2 缺少 Parser 与 Codegen 参数一致性校验手段 没有自动化手段在 Codegen 阶段校验 Parser 预计算参数是否与 Codegen 实时计算结果一致,参数偏差只能在运行时暴露。 ### 二、修改方案 #### 2.1 新增公共模块 ascir_node_param(4 个新文件) 新增 autofuse/common/ascir_node_param/ 目录,定义统一的 ASCIR 节点参数数据结构与构建逻辑: - **ascir_node_param.h/cpp** — 定义 AscirNodeParams(通过 OpDesc::ExtAttr 挂载到 AscNode)、ReduceNodeParams(包含 canonical_params + exprs 语义配方)、ParamExprProduct(乘法因子表达式)等核心类型。提供 GetAscirNodeParams()GetCanonicalReduceParams()ResolveForAtt()ValidateReduceNodeParams() 等公共接口。 - **ascir_param_builder.h/cpp** — 实现 EnrichAscirGraphNodeParams(),遍历图中所有节点,对 Reduce 类算子(Max/Min/Mean/Sum/Prod/Any/All 等 14 种)构建 ReduceNodeParams 并注册到节点 ExtAttr;非 Reduce 算子标记为 kSkipped。 #### 2.2 Codegen 阶段集成参数富化与 Shadow 校验 - **codegen.cpp** — 在 GenerateKernel() 入口处调用 EnrichScheduledResultAscirParams(),对所有 ScheduleGroup 中的 AscGraph 执行参数富化(去重已处理的 graph)。 - **reduce_api_call_base.cpp/h** — 新增 CheckReduceSpecificParamsForCodegen(),在 Codegen 阶段重新构建 shadow 参数并与 Parser 预计算参数逐字段比较(valid / pattern / merge_mode / merge_size / merge_times / reuse / merged_dims),不一致时通过 GELOGW 输出差异详情。 - **reduce_api_call.cpp** / **reg_reduce_api_call.cpp** — 在 Generate() 中调用 shadow check。 #### 2.3 Parser 侧重构,写入共享参数 - **reduce_specific_params_builder.cpp** — 大幅重构(净减约 120 行),FillReduceSpecificParams() 改为先调用 EnrichAscirGraphNodeParams() 注册共享参数,再从节点 ExtAttr 读取 ReduceNodeParams 回填到 NodeInfo。 - **tuning_space.h** — NodeInfo::reduce_specific_params 类型从 codegen::ReduceSpecificParams 改为 ascir_param::ReduceNodeParams。 #### 2.4 ATT 性能模型适配新结构 - **ascir_reduce_api_perf_v2.cpp** — BuildReduceContext() 改为通过 GetCanonicalReduceParams() 读取规范参数;merge_size 优先使用语义表达式(exprs.merge_size)从 output shape 重建,merge_times 通过 ResolveForAtt() 解析语义配方,提升性能预估精度。 #### 2.5 新增测试 | 测试文件 | 覆盖内容 | |---------|---------| | test_ascir_node_params.cpp(新增,239 行) | EnrichAscirGraphNodeParams 对 AR/RA/AllAxis/BlockSplit/MergedAxis 等多种 Reduce 场景的参数构建与校验 | | ascir_reduce_test_helpers.h(新增,111 行) | 测试辅助工具:ReduceTestEnvBuildParserTensorBuildReduceNodeInfo | | test_codegen_reduce_api_call.cpp(扩展,+340 行) | Shadow check 的边界场景(node 为空 / status 非 built / specific_params 类型不匹配 / shadow build 失败)及 Parser-Codegen 参数一致性验证 | | test_ascir_perf_v2.cpp(扩展) | FillReduceSpecificParams 与共享参数的集成测试 | | test_reduce_min_max_api_perf_v2.cpp(扩展) | 语义 merge_size/merge_times 在 ATT 性能模型中的验证 | ### 三、代码修改流程图 #### 3.1 模块调用关系图 ```mermaid graph TD A["codegen.cpp<br/>GenerateKernel"] -->|"EnrichScheduledResultAscirParams"| B["ascir_param_builder.cpp<br/>EnrichAscirGraphNodeParams"] B -->|"遍历节点, 构建参数"| C["ascir_node_param.cpp<br/>AscirNodeParams / ReduceNodeParams"] C -->|"SetExtAttr 挂载到 AscNode"| D["AscNode.OpDesc.ExtAttr"] D -->|"GetExtAttr 读取"| E["reduce_specific_params_builder.cpp<br/>FillReduceSpecificParams"] D -->|"GetExtAttr 读取"| F["reduce_api_call_base.cpp<br/>CheckReduceSpecificParamsForCodegen"] D -->|"GetCanonicalReduceParams"| G["ascir_reduce_api_perf_v2.cpp<br/>BuildReduceContext"] E -->|"回填 NodeInfo"| H["NodeInfo.reduce_specific_params"] H --> G F -->|"shadow 构建 + 比较"| I["GELOGW 输出差异"] style A fill:#FFD700,stroke:#B8860B,stroke-width:2px style B fill:#90EE90,stroke:#006400,stroke-width:2px style C fill:#90EE90,stroke:#006400,stroke-width:2px style D fill:#e1f5ff,stroke:#4682B4,stroke-width:2px style E fill:#FFD700,stroke:#B8860B,stroke-width:2px style F fill:#FFD700,stroke:#B8860B,stroke-width:2px style G fill:#FFD700,stroke:#B8860B,stroke-width:2px style H fill:#FFD700,stroke:#B8860B,stroke-width:2px style I fill:#FF69B4,stroke:#C71585,stroke-width:2px ``` #### 3.2 Reduce 参数构建与校验流程 ```mermaid flowchart TD Start(["EnrichAscirGraphNodeParams(graph)"]) --> Loop["遍历 graph 所有节点"] Loop --> Check{"IsReduceParamSupported?<br/>(Max/Min/Sum/Mean/Prod/Any/All...)"} Check -->|"否"| Skip["RegisterSkippedAscirNodeParams<br/>status = kSkipped"] Check -->|"是"| BuildCtx["BuildAscirParamContext<br/>提取 input/output tensor views<br/>+ loop axis views"] BuildCtx --> BuildInput["BuildReduceInput<br/>pattern / merge_size / merge_times<br/>need_multi_reduce / reuse"] BuildInput --> BuildParams["BuildReduceSpecificParams<br/>(复用 codegen 公共函数)"] BuildParams --> BuildExprs["构建语义配方<br/>exprs.merge_size / exprs.merge_times"] BuildExprs --> Validate{"ValidateReduceNodeParams<br/>语义表达式与规范参数一致性"} Validate -->|"通过"| Register["RegisterAscirNodeParams<br/>SetExtAttr 到 OpDesc<br/>status = kBuilt"] Validate -->|"失败"| Invalid["status = kInvalid"] Skip --> Next(["下一个节点"]) Register --> Next Invalid --> Next style Start fill:#90EE90,stroke:#006400,stroke-width:2px style Skip fill:#FFD700,stroke:#B8860B,stroke-width:2px style Register fill:#90EE90,stroke:#006400,stroke-width:2px style Invalid fill:#FF6347,stroke:#8B0000,stroke-width:2px style Validate fill:#FF69B4,stroke:#C71585,stroke-width:2px ``` ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 ### 一 测试用例说明 #### 1.1 单元测试 | 测试文件 | 测试用例数 | 覆盖场景 | |---------|-----------|---------| | test_ascir_node_params.cpp | 12 | AR/RA/AllAxis/MergedAxis/BlockSplit 参数构建、语义表达式校验、不支持 API 跳过、缺失 vectorized_strides 报错 | | test_codegen_reduce_api_call.cpp | 新增 6 个 shadow check 用例 | node 为空/status 非 built/类型不匹配/shadow build 失败/Rmin tile split 匹配/original parent axis 匹配 | | test_ascir_perf_v2.cpp | 新增 1 个集成用例 | FillReduceSpecificParams 写入共享参数验证 | | test_reduce_min_max_api_perf_v2.cpp | 新增 4 个用例 | 共享参数注册、不支持 API 跳过、参数缺失降级、语义 merge params 性能验证 | #### 1.2 系统测试 暂无新增 STC 用例,现有 Reduce 相关 STC 可回归验证。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 ### 验证方法 1. 编译项目确保无编译错误 2. 运行新增 UT:test_ascir_node_paramstest_codegen_reduce_api_calltest_ascir_perf_v2test_reduce_min_max_api_perf_v2 3. 回归现有 Reduce 相关 STC ### 注意事项 - NodeInfo::reduce_specific_params 类型已从 codegen::ReduceSpecificParams 变为 ascir_param::ReduceNodeParams,所有直接访问 .valid / .pattern / .merge_mode 等字段的代码需改为通过 .canonical_params.xxx 访问 - Shadow check 当前仅输出 WARNING 日志,不阻断流程,后续可根据日志结果决定是否升级为硬校验 See merge request: cann/graph-autofusion!55622 小时前
【feat】: ReduceSum/ReduceMean/ReduceProd支持ATT基于AscendC的源码建模 Co-authored-by: zhang_shengjie<804425610@qq.com> # message auto-generated for no-merge-commit merge: !578 merge fix_reduce_perf_model_reduce_sum_mean_prod into develop 【feat】: ReduceSum/ReduceMean/ReduceProd支持ATT基于AscendC的源码建模 Created-by: zhang_shengjie Commit-by: zhang_shengjie Merged-by: cann-robot Description: # Pull Request ## 描述 ### 一、主要解决的问题 #### 1.1 ReduceSum/ReduceMean/ReduceProd 未接入 Reduce 专用建模 原 v35 Reduce API 建模链路只覆盖 ReduceMin/ReduceMax/ReduceAny/ReduceAllSum/Mean/Prod 只有普通 elementwise 入口或近似建模,带 reduce_specific_params 的 ASCIR reduce 节点没有进入 ReduceApiPerf 分支树,因此无法复用 AR/RA、B64、reuse-source、multi-reduce merge 等 Reduce 专用建模逻辑。 #### 1.2 ReduceMean 需要体现 Codegen 的后处理语义 Codegen 中 Mean 语义不是单独的 Reduce 指令,而是 ReduceSum 后追加 Muls。因此性能模型需要按 ReduceSum + Muls 组合建模,并把后处理开销加入 AIV_VEC。 #### 1.3 注册链路不完整 仅注册 REGISTER_EVAL_FUNC_TAG 不足以支持 ApiPerfFactory::Create(),还需要补齐 ApiPerfRegisterV2。原 Mean/Prod/Sum 的 factory 注册存在复用 tag 或字符串拼接错误风险,需要拆分 reduce op 与 alias op 的注册。 ### 二、修改方案 #### 2.1 AscendC Reduce API 层新增 Sum/Prod/Mean 在 reduce_api_perf_v2 中扩展 ReduceLogicalOp: - kSum - kProd 新增 IsMinMaxReduce,让 B64 特化 compare 逻辑只用于 Min/MaxSum/Prod 在 B64 dtype 下走通用 VF group cost,避免错误复用 Eq/Lt/Gt/Select/Duplicate 的 Min/Max 比较代价。 新增建模入口: - ReduceSumPerf: 使用 AddPerfkVcaddkAdd - ReduceProdPerf: 使用 MulPerfkMulkMul - ReduceMeanPerf: 先调用 ReduceSumPerf,再按输出侧有效维度追加 MeanPerfMuls 开销 #### 2.2 ASCIR Reduce API 层新增 reduce 与 fallback 分发 在 ascir_reduce_api_perf_v2 中新增: - ReduceSumApi - ReduceMeanApi - ReduceProdApi - SumApi - MeanApi - ProdApi Sum/Mean/Prod alias 入口按 HasReduceSpecificParams(node) 分发: - 有 reduce_specific_params: 走 Reduce 专用建模 - 无 reduce_specific_params: 回退 elementwise 建模 新增 elementwise fallback: - ElementwiseSumApi -> ascendcperf_v2::SumPerf - ElementwiseMeanApi -> ascendcperf_v2::MeanPerf - ElementwiseProdApi -> ascendcperf_v2::MulPerf #### 2.3 注册 Reduce op 与 alias op 在 ascir_api_perf_v2.cpp 中补齐: - kReduceSum -> ReduceSumApi - kReduceMean -> ReduceMeanApi - kReduceProd -> ReduceProdApi - kSum -> SumApi - kMean -> MeanApi - kProd -> ProdApi 同时修正 factory 注册: - reduce 专用注册使用 kReduceSum/kReduceMean/kReduceProd - alias 注册使用 kSum/kMean/kProd ### 三、代码修改流程图 #### 3.1 多文件调用关系图 ```mermaid graph TD A[ascir_api_perf_v2.cpp<br/>注册 tag 和 factory] B[ascir_reduce_api_perf_v2.cpp<br/>ASCIR reduce 分发] C[reduce_api_perf_v2.cpp<br/>AscendC Reduce 建模] D[reduce_api_perf_v2.h<br/>声明 Sum Mean Prod] E[ascir_reduce_api_perf_v2.h<br/>声明 ASCIR API] F[test_reduce_min_max_api_perf_v2.cpp<br/>UT 覆盖] A -->|kReduceSum kReduceMean kReduceProd| B A -->|kSum kMean kProd alias| B B -->|BuildReduceContext| C B -->|无 reduce params fallback| G[Elementwise Sum Mean Prod] C -->|ReduceSumPerf| H[ReduceApiPerf<br/>AR RA B64 merge 分支] C -->|ReduceProdPerf| H C -->|ReduceMeanPerf| I[ReduceSumPerf + Muls] D --> C E --> B F -->|验证 AscendC API| C F -->|验证 ASCIR 注册和 alias| A style A fill:#FFD700,stroke:#B8860B,stroke-width:2px style B fill:#90EE90,stroke:#006400,stroke-width:2px style C fill:#90EE90,stroke:#006400,stroke-width:2px style F fill:#90EE90,stroke:#006400,stroke-width:2px style I fill:#FF69B4,stroke:#C71585,stroke-width:2px ``` #### 3.2 Reduce API 分支流程图 ```mermaid flowchart TD Start([ASCIR Sum Mean Prod]) --> HasParams{node 有 reduce_specific_params} HasParams -->|否| Elementwise[Elementwise fallback<br/>SumPerf MeanPerf MulPerf] HasParams -->|是| Context[BuildReduceContext<br/>重建 merged dims pattern merge reuse] Context --> Type{API 类型} Type -->|ReduceSum| Sum[ReduceSumPerf<br/>AddPerf + Vcadd] Type -->|ReduceProd| Prod[ReduceProdPerf<br/>MulPerf + Mul] Type -->|ReduceMean| Mean[ReduceMeanPerf] Mean --> MeanStep1[ReduceSumPerf] MeanStep1 --> MeanStep2[追加 MeanPerf Muls 开销] Sum --> ReduceCore[ReduceApiPerf] Prod --> ReduceCore MeanStep2 --> ReduceCoreDone[更新 AIV_VEC 和 breakdown] ReduceCore --> Pattern{Reduce pattern 和 dtype} Pattern -->|AR B64| ARB64[BuildArB64Cost] Pattern -->|AR normal| ARNormal[BuildArNormalCost] Pattern -->|RA B64| RAB64[BuildRaB64Cost] Pattern -->|RA normal| RANormal[BuildRaNormalCost] ARB64 --> Merge{multi reduce merge} ARNormal --> Merge RAB64 --> Merge RANormal --> Merge Merge -->|开启| MergeCost[BuildMergeCost] Merge -->|关闭| Total[reduce_total_perf] MergeCost --> Total style Sum fill:#90EE90,stroke:#006400,stroke-width:2px style Prod fill:#90EE90,stroke:#006400,stroke-width:2px style Mean fill:#90EE90,stroke:#006400,stroke-width:2px style MeanStep2 fill:#FF69B4,stroke:#C71585,stroke-width:2px ``` ## 变更类型 - [ ] Bug 修复 - [x] 新功能 - [ ] 代码风格更新(格式化,局部变量) - [ ] 重构(既不修复错误也不增加功能的代码变动) - [ ] 构建过程或辅助工具的变动 - [ ] 文档内容更新 ## 修改文件 | 文件 | 变更 | 说明 | |---|---:|---| | autofuse/v35/att/api_perf_register/ascendc_api_perf/reduce_api_perf_v2.cpp | +37/-1 | 新增 ReduceSum/Mean/Prod 核心建模 | | autofuse/v35/att/api_perf_register/ascendc_api_perf/reduce_api_perf_v2.h | +3/-0 | 暴露 ReduceSum/Mean/Prod 接口 | | autofuse/v35/att/api_perf_register/ascir_reduce_api_perf_v2.cpp | +72/-0 | 新增 ASCIR reduce/fallback 分发 | | autofuse/v35/att/api_perf_register/ascir_reduce_api_perf_v2.h | +15/-0 | 暴露 ASCIR Sum/Mean/Prod API | | autofuse/v35/att/api_perf_register/ascir_api_perf_v2.cpp | +17/-7 | 注册 Reduce op 与 alias op | | autofuse/tests/v35/ut/att/gen_model_info/api_perf_register/test_reduce_min_max_api_perf_v2.cpp | +74/-0 | 新增 UT 覆盖建模和注册 | ## 如何测试 ### 一 测试用例说明 #### 1.1 单元测试 新增 AscendCApiReduceSumProdMeanUseReduceBranches: - 覆盖 ReduceSumPerf 的 AR/RA 分支差异 - 覆盖 ReduceProdPerfReduceSumPerf 公式差异 - 覆盖 ReduceMeanPerf = ReduceSumPerf + MeanPerf(Muls) 的 delta 校验 新增 AscirRegistersReduceSumMeanProdOpsAndAliases: - 校验 kReduceSum/kReduceMean/kReduceProd factory 可创建 - 校验 kSum/kMean/kProd alias 可创建 - 校验 alias 在有 reduce_specific_params 时与 reduce 专用入口公式一致 #### 1.2 系统测试 本 commit 对 ASCIR/AscendC API perf 建模和注册链路生效,不新增独立 ST 用例。 ### 二 验证命令 ```bash bash scripts/test/run_autofuse_test.sh --ascend_install_path=/home/zhangshengjie/Ascend/latest --ascend_3rd_lib_path=/home/zhangshengjie/third_party -u -m att ``` 验证结果: ```text 927 tests from 53 test suites ran. PASSED 927 tests. att_ut test successfully! ``` ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于 commit message 的格式、无效 commit 的合并等 ## 其他信息 ### 注意事项 - ReduceMeanPerf 当前按 Codegen 语义建模为 ReduceSum + Muls。 - B64 下的 Sum/Prod 不走 Min/Max 专用 compare 建模。 - Sum/Mean/Prod alias 保留无 reduce 参数时的 elementwise fallback,避免影响原 elementwise API 行为。 - 仓库内未找到 scripts/validate_mermaid.py,Mermaid 图按 skill 规则手工避免嵌套方括号和特殊字符。 See merge request: cann/graph-autofusion!5785 天前
【fix】: 后端optimize前删除悬空节点 Co-authored-by: JaydenChu<zhumin54@huawei.com> # message auto-generated for no-merge-commit merge: !572 merge 5_28_1 into develop 【fix】: 后端optimize前删除悬空节点 Created-by: JaydenChu Commit-by: JaydenChu Merged-by: cann-robot Description: # Pull Request ## 描述 输入到后端的图中如果有悬空节点,会导致在codegen流程中出现coredump,因此需要在optimize流程之前去除所有悬空节点(同时保留输入输出节点) 实例: - 存在悬空节点 ![image.png](https://raw.gitcode.com/user-images/assets/8005834/3e50a245-892a-4601-9356-93bd28ec6a72/image.png 'image.png') - 悬空节点处理后 ![image.png](https://raw.gitcode.com/user-images/assets/8005834/95f00778-fd55-4793-8ed8-dfedc28b1719/image.png 'image.png') ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 编译验证 执行,编译通过 bash build.sh --pkg 2. 单元测试 分别执行(在华为云开发者空间中),执行通过 ./scripts/test/run_autofuse_test.sh -u -c --ascend_install_path=/home/developer/Ascend/ascend-toolkit/latest ./scripts/test/run_autofuse_test.sh -s -c --ascend_install_path=/home/developer/Ascend/ascend-toolkit/latest 3. 功能测试 用例tf_af_torch_tc_af_tf1_zj_2_net_0285执行通过,没有功能和精度问题 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!5723 天前
【PR】: [feat] [autofuse] add llt to autofuse. Co-authored-by: xingzhixiong<xingzhixiong@huawei.com> # message auto-generated for no-merge-commit merge: !372 merge master_llt into master 【PR】: [feat] [autofuse] add llt to autofuse. Created-by: xingzhixiong Commit-by: xingzhixiong Merged-by: cann-robot Description: # Pull Request ## 描述 增加autofuse组件的llt。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 跑ci流水线能全部通过即可 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!37221 天前
fix: 修复 Inductor host 编译缺少 graph_base 链接(#73) Co-authored-by: zqmin<zengqingmin2@huawei.com> # message auto-generated for no-merge-commit merge: !592 merge inductor-link-graph-base into develop fix: 修复 Inductor host 编译缺少 graph_base 链接(#73) Created-by: zqmin Commit-by: zqmin Merged-by: cann-robot Description: # Pull Request ## 描述 修复 Inductor 编译链路中包含 host obj 的 so 未链接 graph_base 的问题。 当前 Inductor host 侧 tiling 代码可能引用 graph_base 相关符号,但 ascendc_compile.py 在链接包含 host obj 的 so 时没有追加 graph_base 依赖,可能导致链接或加载阶段出现未定义符号。 本次修改将 link_shared() 的额外链接依赖改为通用 link_libraries 列表参数,由调用者传入需要链接的库。当前仅在 host obj 参与链接时追加: - -L ${ASCEND_PATH}/${machine}-linux/lib64 - -lgraph_base device-only 编译场景保持不追加额外 host 侧库。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 关联 Issue: https://gitcode.com/cann/graph-autofusion/issues/73 ## 如何测试 描述测试此变更的步骤和前提条件: 1. 本地单元测试:python3 -m pytest autofuse/tests/ut/python/test_ascendc_compile.py 结果:2 passed 2. GitCode PR 流水线:#696035 结果:success / ci-pipeline-passed ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无文档更新。本次变更仅涉及 Inductor 编译脚本及对应 Python UT。 See merge request: cann/graph-autofusion!59221 小时前
【PR】: [fix] [autofuse] usability improvement of llt. Co-authored-by: xingzhixiong<xingzhixiong@huawei.com> # message auto-generated for no-merge-commit merge: !458 merge develop_usability into develop 【PR】: [fix] [autofuse] usability improvement of llt. Created-by: xingzhixiong Commit-by: xingzhixiong Merged-by: cann-robot Description: # Pull Request ## 描述 提升gaf仓llt的易用性。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. ci流水线通过 2. 易用性看板复测通过 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!4589 天前
【PR】: [feat] [autofuse] add llt to autofuse. Co-authored-by: xingzhixiong<xingzhixiong@huawei.com> # message auto-generated for no-merge-commit merge: !372 merge master_llt into master 【PR】: [feat] [autofuse] add llt to autofuse. Created-by: xingzhixiong Commit-by: xingzhixiong Merged-by: cann-robot Description: # Pull Request ## 描述 增加autofuse组件的llt。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 跑ci流水线能全部通过即可 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!37221 天前