文件最后提交记录最后更新时间
【test】: 重构att测试目录结构 Co-authored-by: zhang_shengjie<804425610@qq.com> # message auto-generated for no-merge-commit merge: !1730 merge develop into develop 【test】: 重构att测试目录结构 Created-by: zhang_shengjie Commit-by: zhang_shengjie Merged-by: cann-robot Description: # Pull Request ## 描述 ### 一、主要解决的问题 #### 1.1 测试目录结构重构 原测试目录结构不符合镜像源码规范,UT和ST测试文件平铺在 testcase/ 下,难以维护。需要重构为严格镜像 compiler/graph/optimize/autofuse/att/ 源码模块的目录结构。 #### 1.2 静态检查告警 MR静态检查发现大量告警,包括: - **超大函数** (>50行):测试代码中大量超长TEST_F函数、构建图函数 - **超大头文件** (>500行):general_solver.h 含1488行纯字符串数据 - **冗余/重复文件**:gelu/gelu_v2重复、create_struct重复、sample目录废弃 - **using namespace 违规**:多处使用 using namespace att 而非具体using声明 - **extern声明违规** (G.EXP.05-CPP):直接在cpp中extern声明外部变量 - **命名风格违规** (G.NAM.01):Python代码使用PascalCase而非snake_case - **空行/格式违规** (G.FMT.03):函数间缺少空行 - **超大深度函数**:Python代码函数嵌套深度过大 ### 二、修改方案 #### 2.1 目录结构重构 ``` tests/autofuse/ut/att/testcase/ # UT镜像att源码结构 ├── base/ ├── concat/ ├── gen_model_info/ │ ├── core/ # test_fa_ascir_graph, test_concat等 │ └── reuse_group_utils/ ├── generator/ │ ├── core/ │ ├── preprocess/ │ └── solver_pass*/ └── util/ tests/autofuse/st/att/testcase/ ├── source_mirror/ # ST镜像att源码(编译侧) │ ├── generator/ │ ├── gen_model_info_content/ │ └── util/ └── scenario/ # ST场景测试(运行侧) ├── concat/ ├── add_layer_norm/ ├── matmul/ └── tiling_data/ ``` #### 2.2 超大函数修复策略 - **提取辅助函数**:将重复的节点初始化、调度配置、内存分配代码提取为helper函数 - **长字符串提取为static const成员**:TEST_F中的超长表达式字符串改为类static成员 - **超大函数拆分为子函数**:如 GetExpectedSolverImplCodes 拆为8个 AppendSolverImplPart* 子函数 - **公共stub提取到common目录**:stub_model_infostub_matmul_modelinfo等提取到 tests/autofuse/common/stub/ #### 2.3 其他告警修复 - **general_solver.h → general_solver_data.cpp**:超大头文件改为.cpp编译单元 - **extern声明 → include头文件**:新建 general_solver_data.h,通过include引用 - **删除sample目录**:已废弃的示例目录整体删除 - **删除solver_pass/src目录**:编译从ATT_DIR源码目录进行 ### 三、代码修改流程图 #### 3.1 文件调用关系图 ```mermaid graph TD subgraph ST_tests["ST测试"] CMake["CMakeLists.txt"] SM["source_mirror/"] SC["scenario/"] STUB["stub/"] end subgraph UT_tests["UT测试"] UCMake["ut/att/CMakeLists.txt"] UM["testcase/模块镜像/"] end subgraph Common["公共stub"] CS["common/stub/"] end subgraph Source["ATT源码"] ATT["compiler/.../autofuse/att/"] end CMake -->|编译| SM CMake -->|编译| SC CMake -->|编译| STUB UCMake -->|编译| UM SM -->|include| ATT UM -->|include| ATT SM -->|编译| CS UM -->|编译| CS style SM fill:#90EE90,stroke:#006400 style SC fill:#90EE90,stroke:#006400 style CS fill:#FFD700,stroke:#B8860B style ATT fill:#e1f5ff,stroke:#4682B4 ``` #### 3.2 超大函数修复流程 ```mermaid flowchart TD Start([检测超大函数告警]) --> Type{告警类型} Type -->|超大TEST_F| Extract["提取长字符串为static const成员"] Type -->|超大构建函数| Split["拆分为子函数,通过引用参数传递"] Type -->|超大头文件| Rename["重命名为.cpp编译单元"] Type -->|extern声明| Header["新建.h头文件,改用include"] Extract --> Verify1["语法检查"] Split --> Verify2["语法检查"] Rename --> Verify3["更新CMakeLists"] Header --> Verify4["更新include路径"] Verify1 --> Build["编译验证"] Verify2 --> Build Verify3 --> Build Verify4 --> Build Build --> Test["运行ST/UT测试"] Test --> Pass([全部通过]) style Start fill:#90EE90 style Pass fill:#90EE90 style Type fill:#FFD700 ``` ## 变更类型 - [ ] Bug 修复 - [x] 代码风格更新(格式化,局部变量) - [x] 重构(既不修复错误也不增加功能的代码变动) - [ ] 新功能 - [x] 构建过程或辅助工具的变动 ## 关联的Issue <!-- 待关联 --> ## 如何测试 ### 一 测试用例说明 #### 1.1 单元测试 (UT) - att_ut 全量测试:855个测试用例,100%通过 - 涉及模块:gen_model_info、generator、preprocess、solver_pass等 #### 1.2 系统测试 (ST) - att_st 全量测试:20个测试用例,100%通过 - 涉及场景:concat、matmul、add_layer_norm、ffn、reduce_split_penalty等 ### 验证方法 ```bash # UT编译和运行 cd build/tests/autofuse/ut/att && make att_ut -j$(nproc) && ./att_ut # ST编译和运行 cd build && make att_st -j$(nproc) && ./tests/autofuse/st/att/att_st ``` ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签 - [x] 我已经详细阅读了贡献指南 ## 其他信息 ### 注意事项 1. 删除了整个 sample/ 目录(已废弃),相关ST不再编译 2. general_solver.h 重命名为 general_solver_data.cpp,需确认下游无直接include 3. 公共stub迁移到 tests/autofuse/common/stub/,UT和ST共享 4. CMakeLists.txt include 路径新增 general_solver 子目录 See merge request: cann/ge!17301 个月前
【PR】: [autofuse] Unify Open-source repository and development repository. Co-authored-by: xingzhixiong<xingzhixiong@huawei.com> # message auto-generated for no-merge-commit merge: !237 merge master_ge_dev into master 【PR】: [autofuse] Unify Open-source repository and development repository. Created-by: xingzhixiong Commit-by: xingzhixiong Merged-by: cann-robot Description: # Pull Request ## 描述 将autofuse组件的开发仓代码归一到开源ge仓 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!2374 个月前
【fix】: Unified compilation options Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !1108 merge develop into develop 【fix】: Unified compilation options Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 编译选项整改,构建工程公共编译选项统一通过intf_pub设置,测试工程编译选项统一通过intf_llt_pub设置。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.编译通过,UT,ST运行正确 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!11082 个月前