文件最后提交记录最后更新时间
【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!5561 天前
【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!5561 天前
【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】: Infinite loop caused by the empty from parameter of SubStringReplace Co-authored-by: wei_shi<huangqianqian15@huawei.com> # message auto-generated for no-merge-commit merge: !589 merge develop into develop 【fix】: Infinite loop caused by the empty from parameter of SubStringReplace Created-by: wei_shi Commit-by: wei_shi Merged-by: cann-robot Description: # Pull Request ## 描述 修复Bug:SubStringReplace 空 from 参数导致无限循环 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 执行单元测试用例,可以正常匹配预期结果 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!5892 天前
【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 天前