Pull Request已成功合入, 合并人@CANN-robot
(感谢 gcw_NLOuEjCz 的贡献)变更摘要
本次重构面向 VV(纯 Vector)融合方向,删除了 HighPerf Tiling 三段式架构(L0 → L2 → General)中的 L0/L2 求解器,将求解路径收敛为单一的 SEARCH_TILE(General)求解器。核心改动包括:移除 L0TileSolver/L2TileSolver 求解器本体及其代码生成器、从 SolverType 枚举中删除 L0_TILE/L2_TILE、剥离 live 模型 stub 中的 L0/L2 轴变量与 Cube 容量约束、清理全部 L0/L2 专属测试用例,并将 IsNeedSolver 简化为"可搜索变量 > 0"。
主要改动
-
删除 L0/L2 求解器本体与代码生成器:移除
l0_solver_code.h、l2_solver_code.h(求解器代码模板)以及l0_solver_gen.cpp/h、l2_solver_gen.cpp/h(代码生成器),共约 1,800 行内联代码和 600 行生成逻辑被删除。(源代码保留,仅删除相关代码) -
移除
SolverType中的L0_TILE/L2_TILE枚举值并精简调度逻辑:SolverType从{L0_TILE, L2_TILE, SEARCH_TILE, ERROR}缩减为{SEARCH_TILE, ERROR};solver_pass_manager.cpp中SolverPassFuncGen、SolverDtFuncGen、SolverPassClassGen仅保留SEARCH_TILE分支,同时移除GetL0Args、GenL0TileSolverGen、GenL2TileSolverGen等辅助方法及kMaxL0VarNum常量。 -
剥离 live 模型 stub 中的 L0/L2 变量与 Cube 容量约束:
stub_matmul_modelinfo.cpp、stub_ffn_modelinfo.cpp、stub_model_info.cpp、stub_solver_model_info.cpp中移除了basem/basen/tilem/tilen/basek等 L0/L2 轴及其related_scope与硬件占用约束(L0A/L0B/L0C/L2),同时删除了 Cube MTE2 性能模型计算逻辑。 -
清理全部 L0/L2 专属测试文件:删除 UT 和 ST 目录下的
test_l0_solver.cpp、test_l2_solver.cpp、test_l0_solver_gen.cpp、test_l2_solver_gen.cpp等 12 个测试文件及其对应的l0_solver.cpp/l2_solver.cpp源码副本,stub_model_info.cpp/h亦被移除。 -
简化
IsNeedSolver判断逻辑:IsNeedSolver从分类检查 L0/L2 可搜索变量数量改为统一判断GetSearchableVars().size() > 0,GenerateSolverPassFunc中移除了"L0+L2 参数数量 ≥ 全部可搜索变量数量时跳过 General 求解"的提前返回逻辑。


Pull Request
描述
【重构】删除 att HighPerf Tiling 三段式架构(
L0 → L2 → General)中的 L0/L2 求解器,收敛为面向 VV(纯 Vector)融合的单一 General(SEARCH_TILE)求解路径。l0/l2_solver_code.h)、代码生成器(l0/l2_solver_gen)、SolverType枚举(L0_TILE/L2_TILE)与专属测试(12 文件 + 死副本)tiling_func_*_main同批联动SEARCH_TILE/General 求解、HardwareDef、axes_reorder、UB Tiling 机制;IsNeedSolver简化为"可搜索变量 > 0"SetSolvedVars掩盖逻辑)验收指标核对(6 项逐条)
变更类型
关联的Issue
https://gitcode.com/cann/graph-autofusion/issues/207
如何测试
描述测试此变更的步骤和前提条件:
cmake --build build/autofuse/tests/ut/att --target att_ut -j 8+cmake --build build/autofuse/tests/st/att --target att_st -j 8;grep -rI 'L0TileSolver\|L2TileSolver\|ExecuteL0Solver\|ExecuteL2Solver' autofuse/应无残留att_ut --gtest_filter='-*Matmul*:*TilingFuncMain*'(1018/1018)+att_ut --gtest_filter='*Matmul*'(6/6)→ 1024/1024LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libasan.so.5 ASAN_OPTIONS=detect_leaks=0 att_st→ 109/109(含 HighPerf concat/matmul/ffn + AxesReorder)核对清单
其他信息
在此添加任何其他关于本次 PR 的说明。
stepm/stepn(L1 作用域,related_scope={L1,CORENUM})作为 General 搜索变量保留,属 L0/L2 之外,未删除;无"L1 求解器",由SEARCH_TILE搜索复现清单与逐文件对照.md