| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(cv-ubfuse): host UB 约束按原始 tmp 需求计算, 修复 matmul+pow UB 越界 Co-authored-by: tianbaolin<tianbaolin@huawei.com> # message auto-generated for no-merge-commit merge: !2297 merge tbl/fix/cv_ub_out_of_boundry into develop fix(cv-ubfuse): host UB 约束按原始 tmp 需求计算, 修复 matmul+pow UB 越界 Created-by: tianbaolin Commit-by: tianbaolin Merged-by: cann-robot Description: # Pull Request ## 描述 fix(cv-ubfuse): host UB 约束按原始 tmp 需求计算, 修复 matmul+pow UB 越界 CV UBFuse 的 Pow epilogue 内联调用 Power 高精度 API, tmp 需求为 12B/元素(如 stage=15488 时需 185856B)。device 侧已按原始公式分配 (去 v1 repeat cap), 但 host tiling 求解器的 UB 约束仍使用 capped tmp(Min(size, 65312)), 两侧不一致: 求解器按 capped 值判定 UB 可行 并选出较大 stage, 而 device 实际按原始 tmp 分配, 导致 buf_cube + b0_raw + 队列超出 UB, 设备侧报 MTE2/MTE3 地址越界。 将 is_cv_ub_fusion 透传给 AscGraphUbExprBuilder, CV UBFuse 下 UB 约束对 tmp 剥离 v1 repeat cap, 与 device 分配保持一致, 求解器据此 收缩 stage(或走 common 兜底), 使原始 tmp 能落入 UB 预算。 验证: tc_af_MMBC_0287(mm+pow CV 融合)由设备越界 Failed 恢复 Pass (100%); 新增 UT 覆盖 cap 剥离行为。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: baize 环境下测试tc_af_MMBC_0287 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!2297 | 18 天前 | |
fix(cv-ubfuse): host UB 约束按原始 tmp 需求计算, 修复 matmul+pow UB 越界 Co-authored-by: tianbaolin<tianbaolin@huawei.com> # message auto-generated for no-merge-commit merge: !2297 merge tbl/fix/cv_ub_out_of_boundry into develop fix(cv-ubfuse): host UB 约束按原始 tmp 需求计算, 修复 matmul+pow UB 越界 Created-by: tianbaolin Commit-by: tianbaolin Merged-by: cann-robot Description: # Pull Request ## 描述 fix(cv-ubfuse): host UB 约束按原始 tmp 需求计算, 修复 matmul+pow UB 越界 CV UBFuse 的 Pow epilogue 内联调用 Power 高精度 API, tmp 需求为 12B/元素(如 stage=15488 时需 185856B)。device 侧已按原始公式分配 (去 v1 repeat cap), 但 host tiling 求解器的 UB 约束仍使用 capped tmp(Min(size, 65312)), 两侧不一致: 求解器按 capped 值判定 UB 可行 并选出较大 stage, 而 device 实际按原始 tmp 分配, 导致 buf_cube + b0_raw + 队列超出 UB, 设备侧报 MTE2/MTE3 地址越界。 将 is_cv_ub_fusion 透传给 AscGraphUbExprBuilder, CV UBFuse 下 UB 约束对 tmp 剥离 v1 repeat cap, 与 device 分配保持一致, 求解器据此 收缩 stage(或走 common 兜底), 使原始 tmp 能落入 UB 预算。 验证: tc_af_MMBC_0287(mm+pow CV 融合)由设备越界 Failed 恢复 Pass (100%); 新增 UT 覆盖 cap 剥离行为。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: baize 环境下测试tc_af_MMBC_0287 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!2297 | 18 天前 | |
fix(cv-ubfuse): host UB 约束按原始 tmp 需求计算, 修复 matmul+pow UB 越界 Co-authored-by: tianbaolin<tianbaolin@huawei.com> # message auto-generated for no-merge-commit merge: !2297 merge tbl/fix/cv_ub_out_of_boundry into develop fix(cv-ubfuse): host UB 约束按原始 tmp 需求计算, 修复 matmul+pow UB 越界 Created-by: tianbaolin Commit-by: tianbaolin Merged-by: cann-robot Description: # Pull Request ## 描述 fix(cv-ubfuse): host UB 约束按原始 tmp 需求计算, 修复 matmul+pow UB 越界 CV UBFuse 的 Pow epilogue 内联调用 Power 高精度 API, tmp 需求为 12B/元素(如 stage=15488 时需 185856B)。device 侧已按原始公式分配 (去 v1 repeat cap), 但 host tiling 求解器的 UB 约束仍使用 capped tmp(Min(size, 65312)), 两侧不一致: 求解器按 capped 值判定 UB 可行 并选出较大 stage, 而 device 实际按原始 tmp 分配, 导致 buf_cube + b0_raw + 队列超出 UB, 设备侧报 MTE2/MTE3 地址越界。 将 is_cv_ub_fusion 透传给 AscGraphUbExprBuilder, CV UBFuse 下 UB 约束对 tmp 剥离 v1 repeat cap, 与 device 分配保持一致, 求解器据此 收缩 stage(或走 common 兜底), 使原始 tmp 能落入 UB 预算。 验证: tc_af_MMBC_0287(mm+pow CV 融合)由设备越界 Failed 恢复 Pass (100%); 新增 UT 覆盖 cap 剥离行为。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: baize 环境下测试tc_af_MMBC_0287 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!2297 | 18 天前 | |
feat: 支持静态Shape根据ub大小过滤非法template Co-authored-by: zhang_shengjie<804425610@qq.com> # message auto-generated for no-merge-commit merge: !964 merge feat/static-ub-template-filter into develop feat: 支持静态Shape根据ub大小过滤非法template Created-by: zhang_shengjie Commit-by: zhang_shengjie Merged-by: cann-robot Description: # Pull Request ## 描述 ### 一、主要解决的问题 Autofuse 在 schedule 模板生成后,所有模板会进入 ATT 生成 tiling func 和 solver 阶段。部分模板在所有可调 tile 取最小值 1、动态轴取 1 时的最小 UB 占用已超过平台 UB 上限,属于必然无解模板,但仍消耗后续编译资源。 本 PR 在 BufQueAllocator().AllocBufQue() 之后新增 StaticUbTemplateFilter,提前丢弃必然无解的模板,减少无效编译开销。同时将 ATT 与 Schedule 共用的 UB 表达式构建逻辑抽取到 autofuse/common/ub_expr/,保证两端使用同一份 UB 表达式来源。 ### 二、修改方案 #### 2.1 新增 StaticUbTemplateFilter(optimize 层) - 在 optimize.cpp 的 AllocBufQue 之后调用 StaticUbTemplateFilter().Filter() - 遍历 FusedScheduledResult 中每个 ScheduledResult 的 schedule group/impl graph - 通过公共 AscGraphUbExprBuilder 构建 UB 表达式上下文 - 对 tile inner axis 替换为 1、动态轴替换为 1,执行静态求值得到 min_ub_usage - min_ub_usage > platform_info.ub_size 时丢弃模板 - 平台信息不可用或求值失败时保留模板,不做激进过滤 - 全部模板被过滤时沿用现有无候选模板失败路径 #### 2.2 新增公共 UB 表达式层(common/ub_expr) - ub_expr_types.h:定义 UbExprContext、UbExprBuildResult、UbExprCmp 等公共类型 - asc_graph_ub_expr_builder.{h,cpp}:基于 AscGraph 构建 UB 表达式上下文,覆盖 Queue/Buffer/TmpBuffer size 表达式、container 命名、tile 变量、动态轴变量等 - ub_expr_utils.{h,cpp}:从 UbExprContext 获取原始 UB 表达式 #### 2.3 扩展 PlatformContext - 新增 TryGetInitializedPlatformInfo:无副作用读取已初始化的平台信息,不触发 runtime 初始化 - 新增 TryGetUbSizeOverride:支持上层通过 SetPlatformInfo 注入 UB size(soc_ver 为空时) - 保持 GetPlatformInfo/SetPlatformInfo 既有行为不变 #### 2.4 ATT 侧适配 - gen_model_info.cpp:新增 RefreshCommonUbExprContext,基于公共 AscGraphUbExprBuilder 刷新 UB 表达式上下文,替换旧的 container 表达式 - ub_named_expr_builder.{h,cpp}:ATT 内部命名化 UB 表达式构建,复用公共 BuildUbExpr 获取原始表达式 - axes_reorder_solver_gen.cpp:适配公共 UB 表达式接口 #### 2.5 测试覆盖 - 新增 UT:test_static_ub_template_filter(过滤器正向/异常/边界)、test_ub_expr_utils(BuildUbExpr)、test_platform_context(新接口) - 新增 ATT UT:test_gen_model_info(UB 刷新)、test_axes_reorder_gen(命名化 UB 表达式) - 更新 runtime stub 适配新接口 - 已有 ST/UT 适配:optimize_st、optimize_st_v2、test_optimizer_v2、test_python_ascir ### 三、代码修改流程图 mermaid flowchart TD A[Optimize 生成 schedule 模板] --> B[BufQueAllocator::AllocBufQue] B --> C[StaticUbTemplateFilter::Filter] C --> D{PlatformInfo 可用且 ub_size > 0?} D -- 否 --> E[跳过过滤, 保留全部模板] D -- 是 --> F[遍历 ScheduledResult] F --> G[AscGraphUbExprBuilder::Build] G --> H[UbExprUtils::BuildUbExpr] H --> I[tile=1, 动态轴=1 替换] I --> J{静态求值成功?} J -- 否 --> K[WARNING, 保留模板] J -- 是 --> L{min_ub > ub_size?} L -- 是 --> M[丢弃模板] L -- 否 --> N[保留模板] M --> O[继续后续流程] N --> O K --> O E --> O style C fill:#90EE90,stroke:#006400,stroke-width:2px style G fill:#90EE90,stroke:#006400,stroke-width:2px style H fill:#90EE90,stroke:#006400,stroke-width:2px ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 ### 一、测试用例说明 #### 1.1 单元测试 - test_static_ub_template_filter:覆盖平台信息可用/不可用、UB 超限/未超限、表达式求值失败、全部模板被过滤等场景 - test_ub_expr_utils:覆盖 BuildUbExpr 正向和空表达式场景 - test_platform_context:覆盖 TryGetInitializedPlatformInfo 和 TryGetUbSizeOverride - test_gen_model_info:覆盖 UB 表达式刷新 - test_axes_reorder_gen:覆盖命名化 UB 表达式构建 #### 1.2 系统测试 - optimize_st、optimize_st_v2:验证 optimize 全流程包含 UB 过滤 - test_optimizer_v2:v35 optimize 流程适配 - test_python_ascir:Python ASCIR 测试适配 ### 二、构建命令 bash sh build.sh -u --module=autofuse_framework -j 8 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 ### 验证方法 - 静态 shape 场景:构造 UB 超限模板,验证被正确过滤 - 动态 shape 场景:动态轴取 1 后 UB 超限模板被过滤 - 平台信息不可用:验证跳过过滤,保留全部模板 - 表达式求值失败:验证 WARNING 日志和模板保留 ### 注意事项 - 本 PR 仅做必要条件过滤(保守过滤),不替换 ATT 最终 UB solver - 不修改对外 ABI/API,不新增 Python 绑定 - 不引入新的用户配置项或环境变量 - 不触发 runtime platform 初始化 ### 提交记录 | Commit | 描述 | 修改文件数 | 修改行数 | |--------|------|-----------|----------| | 15856eb | feat: add static ub template filter | 28 | +1790/-56 | | a8bd396 | test: cover named ub expr builder | 2 | +17/-0 | | aedf707 | fix: preserve platform info semantics for ub filter | 5 | +52/-12 | ### 修改文件清单 | 文件路径 | 修改类型 | 说明 | |---------|---------|------| | autofuse/optimize/static_ub_template_filter.h | 新增 | 静态 UB 模板过滤器头文件 | | autofuse/optimize/static_ub_template_filter.cpp | 新增 | 过滤器实现:遍历模板、求值、剪枝 | | autofuse/common/ub_expr/ub_expr_types.h | 新增 | UbExprContext/UbExprBuildResult 等公共类型 | | autofuse/common/ub_expr/asc_graph_ub_expr_builder.h | 新增 | AscGraph UB 表达式构建器头文件 | | autofuse/common/ub_expr/asc_graph_ub_expr_builder.cpp | 新增 | Queue/Buffer/TmpBuffer UB 表达式构建实现 | | autofuse/common/ub_expr/ub_expr_utils.h | 新增 | UB 表达式工具类头文件 | | autofuse/common/ub_expr/ub_expr_utils.cpp | 新增 | BuildUbExpr 实现 | | autofuse/common/platform_context.cpp | 修改 | 新增 TryGetInitializedPlatformInfo/TryGetUbSizeOverride | | autofuse/inc/common/platform_context.h | 修改 | 新增无副作用平台信息读取接口 | | autofuse/optimize/optimize.cpp | 修改 | AllocBufQue 后调用 StaticUbTemplateFilter | | autofuse/att/gen_model_info/gen_model_info.cpp | 修改 | 基于公共 UB builder 刷新 context | | autofuse/att/.../ub_named_expr_builder.h | 新增 | ATT 命名化 UB 表达式头文件 | | autofuse/att/.../ub_named_expr_builder.cpp | 新增 | ATT 命名化 UB 表达式实现 | | autofuse/att/.../axes_reorder_solver_gen.cpp | 修改 | 适配公共 UB 表达式接口 | | autofuse/tests/... (16 files) | 新增/修改 | UT/ST 测试用例和 runtime stub 适配 | See merge request: cann/graph-autofusion!964 | 3 个月前 | |
feat: 支持静态Shape根据ub大小过滤非法template Co-authored-by: zhang_shengjie<804425610@qq.com> # message auto-generated for no-merge-commit merge: !964 merge feat/static-ub-template-filter into develop feat: 支持静态Shape根据ub大小过滤非法template Created-by: zhang_shengjie Commit-by: zhang_shengjie Merged-by: cann-robot Description: # Pull Request ## 描述 ### 一、主要解决的问题 Autofuse 在 schedule 模板生成后,所有模板会进入 ATT 生成 tiling func 和 solver 阶段。部分模板在所有可调 tile 取最小值 1、动态轴取 1 时的最小 UB 占用已超过平台 UB 上限,属于必然无解模板,但仍消耗后续编译资源。 本 PR 在 BufQueAllocator().AllocBufQue() 之后新增 StaticUbTemplateFilter,提前丢弃必然无解的模板,减少无效编译开销。同时将 ATT 与 Schedule 共用的 UB 表达式构建逻辑抽取到 autofuse/common/ub_expr/,保证两端使用同一份 UB 表达式来源。 ### 二、修改方案 #### 2.1 新增 StaticUbTemplateFilter(optimize 层) - 在 optimize.cpp 的 AllocBufQue 之后调用 StaticUbTemplateFilter().Filter() - 遍历 FusedScheduledResult 中每个 ScheduledResult 的 schedule group/impl graph - 通过公共 AscGraphUbExprBuilder 构建 UB 表达式上下文 - 对 tile inner axis 替换为 1、动态轴替换为 1,执行静态求值得到 min_ub_usage - min_ub_usage > platform_info.ub_size 时丢弃模板 - 平台信息不可用或求值失败时保留模板,不做激进过滤 - 全部模板被过滤时沿用现有无候选模板失败路径 #### 2.2 新增公共 UB 表达式层(common/ub_expr) - ub_expr_types.h:定义 UbExprContext、UbExprBuildResult、UbExprCmp 等公共类型 - asc_graph_ub_expr_builder.{h,cpp}:基于 AscGraph 构建 UB 表达式上下文,覆盖 Queue/Buffer/TmpBuffer size 表达式、container 命名、tile 变量、动态轴变量等 - ub_expr_utils.{h,cpp}:从 UbExprContext 获取原始 UB 表达式 #### 2.3 扩展 PlatformContext - 新增 TryGetInitializedPlatformInfo:无副作用读取已初始化的平台信息,不触发 runtime 初始化 - 新增 TryGetUbSizeOverride:支持上层通过 SetPlatformInfo 注入 UB size(soc_ver 为空时) - 保持 GetPlatformInfo/SetPlatformInfo 既有行为不变 #### 2.4 ATT 侧适配 - gen_model_info.cpp:新增 RefreshCommonUbExprContext,基于公共 AscGraphUbExprBuilder 刷新 UB 表达式上下文,替换旧的 container 表达式 - ub_named_expr_builder.{h,cpp}:ATT 内部命名化 UB 表达式构建,复用公共 BuildUbExpr 获取原始表达式 - axes_reorder_solver_gen.cpp:适配公共 UB 表达式接口 #### 2.5 测试覆盖 - 新增 UT:test_static_ub_template_filter(过滤器正向/异常/边界)、test_ub_expr_utils(BuildUbExpr)、test_platform_context(新接口) - 新增 ATT UT:test_gen_model_info(UB 刷新)、test_axes_reorder_gen(命名化 UB 表达式) - 更新 runtime stub 适配新接口 - 已有 ST/UT 适配:optimize_st、optimize_st_v2、test_optimizer_v2、test_python_ascir ### 三、代码修改流程图 mermaid flowchart TD A[Optimize 生成 schedule 模板] --> B[BufQueAllocator::AllocBufQue] B --> C[StaticUbTemplateFilter::Filter] C --> D{PlatformInfo 可用且 ub_size > 0?} D -- 否 --> E[跳过过滤, 保留全部模板] D -- 是 --> F[遍历 ScheduledResult] F --> G[AscGraphUbExprBuilder::Build] G --> H[UbExprUtils::BuildUbExpr] H --> I[tile=1, 动态轴=1 替换] I --> J{静态求值成功?} J -- 否 --> K[WARNING, 保留模板] J -- 是 --> L{min_ub > ub_size?} L -- 是 --> M[丢弃模板] L -- 否 --> N[保留模板] M --> O[继续后续流程] N --> O K --> O E --> O style C fill:#90EE90,stroke:#006400,stroke-width:2px style G fill:#90EE90,stroke:#006400,stroke-width:2px style H fill:#90EE90,stroke:#006400,stroke-width:2px ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 ### 一、测试用例说明 #### 1.1 单元测试 - test_static_ub_template_filter:覆盖平台信息可用/不可用、UB 超限/未超限、表达式求值失败、全部模板被过滤等场景 - test_ub_expr_utils:覆盖 BuildUbExpr 正向和空表达式场景 - test_platform_context:覆盖 TryGetInitializedPlatformInfo 和 TryGetUbSizeOverride - test_gen_model_info:覆盖 UB 表达式刷新 - test_axes_reorder_gen:覆盖命名化 UB 表达式构建 #### 1.2 系统测试 - optimize_st、optimize_st_v2:验证 optimize 全流程包含 UB 过滤 - test_optimizer_v2:v35 optimize 流程适配 - test_python_ascir:Python ASCIR 测试适配 ### 二、构建命令 bash sh build.sh -u --module=autofuse_framework -j 8 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 ### 验证方法 - 静态 shape 场景:构造 UB 超限模板,验证被正确过滤 - 动态 shape 场景:动态轴取 1 后 UB 超限模板被过滤 - 平台信息不可用:验证跳过过滤,保留全部模板 - 表达式求值失败:验证 WARNING 日志和模板保留 ### 注意事项 - 本 PR 仅做必要条件过滤(保守过滤),不替换 ATT 最终 UB solver - 不修改对外 ABI/API,不新增 Python 绑定 - 不引入新的用户配置项或环境变量 - 不触发 runtime platform 初始化 ### 提交记录 | Commit | 描述 | 修改文件数 | 修改行数 | |--------|------|-----------|----------| | 15856eb | feat: add static ub template filter | 28 | +1790/-56 | | a8bd396 | test: cover named ub expr builder | 2 | +17/-0 | | aedf707 | fix: preserve platform info semantics for ub filter | 5 | +52/-12 | ### 修改文件清单 | 文件路径 | 修改类型 | 说明 | |---------|---------|------| | autofuse/optimize/static_ub_template_filter.h | 新增 | 静态 UB 模板过滤器头文件 | | autofuse/optimize/static_ub_template_filter.cpp | 新增 | 过滤器实现:遍历模板、求值、剪枝 | | autofuse/common/ub_expr/ub_expr_types.h | 新增 | UbExprContext/UbExprBuildResult 等公共类型 | | autofuse/common/ub_expr/asc_graph_ub_expr_builder.h | 新增 | AscGraph UB 表达式构建器头文件 | | autofuse/common/ub_expr/asc_graph_ub_expr_builder.cpp | 新增 | Queue/Buffer/TmpBuffer UB 表达式构建实现 | | autofuse/common/ub_expr/ub_expr_utils.h | 新增 | UB 表达式工具类头文件 | | autofuse/common/ub_expr/ub_expr_utils.cpp | 新增 | BuildUbExpr 实现 | | autofuse/common/platform_context.cpp | 修改 | 新增 TryGetInitializedPlatformInfo/TryGetUbSizeOverride | | autofuse/inc/common/platform_context.h | 修改 | 新增无副作用平台信息读取接口 | | autofuse/optimize/optimize.cpp | 修改 | AllocBufQue 后调用 StaticUbTemplateFilter | | autofuse/att/gen_model_info/gen_model_info.cpp | 修改 | 基于公共 UB builder 刷新 context | | autofuse/att/.../ub_named_expr_builder.h | 新增 | ATT 命名化 UB 表达式头文件 | | autofuse/att/.../ub_named_expr_builder.cpp | 新增 | ATT 命名化 UB 表达式实现 | | autofuse/att/.../axes_reorder_solver_gen.cpp | 修改 | 适配公共 UB 表达式接口 | | autofuse/tests/... (16 files) | 新增/修改 | UT/ST 测试用例和 runtime stub 适配 | See merge request: cann/graph-autofusion!964 | 3 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 18 天前 | ||
| 18 天前 | ||
| 18 天前 | ||
| 3 个月前 | ||
| 3 个月前 |