| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【PR】: [fix] [autofuse] adapt reform of the same-named header files of ge. Co-authored-by: xingzhixiong<xingzhixiong@huawei.com> # message auto-generated for no-merge-commit merge: !1149 merge develop_change_dir_of_metadef_headers into develop 【PR】: [fix] [autofuse] adapt reform of the same-named header files of ge. Created-by: xingzhixiong Commit-by: xingzhixiong Merged-by: cann-robot Description: # Pull Request ## 描述 metadef在做同名头文件整改,整改完编译发现gaf失败,原因是gaf仓和ge仓也有同名且子目录相同的头文件,故需要将gaf仓的同名头文件的子目录进行整改,只给gaf仓内部使用,避免产生耦合编译问题。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. ci流水线pass 2. RDV pass ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!1149 | 2 个月前 | |
style: 统一 Autofuse 代码格式 Co-authored-by: Ling-DT<lingxing@huawei.com> # message auto-generated for no-merge-commit merge: !921 merge style/clang-format-autofuse-20260611 into develop style: 统一 Autofuse 代码格式 Created-by: ling-DT Commit-by: Ling-DT Merged-by: cann-robot Description: # Pull Request ## 描述 基于 cann/graph-autofusion:develop 最新提交 46a23b0,使用仓库根目录 .clang-format 对 autofuse/ 目录内受版本管理的 C/C++/AscendC 源文件执行统一格式化。 本 PR 仅包含 autofuse/ 目录格式化变更;super_kernel/ 目录格式化变更按要求暂留本地,未提交到本 PR。 格式化工具:clang-format 18.1.8,参数:--style=file。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 描述测试此变更的步骤和前提条件: 1. /tmp/opencode/clang-format-18-venv/bin/clang-format -i --style=file <autofuse C/C++/AscendC files> 2. git diff --cached --check 3. git diff --name-only HEAD~1..HEAD | cut -d/ -f1 | sort | uniq -c 确认 PR 提交仅包含 autofuse/。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本 PR 为纯格式化变更,不涉及功能逻辑、接口、构建脚本或打包内容修改。 See merge request: cann/graph-autofusion!921 | 2 个月前 | |
fix: 优化Gather Reduce融合场景核数惩罚 Co-authored-by: zhang_shengjie<804425610@qq.com> # message auto-generated for no-merge-commit merge: !1314 merge fix/gather-reduce-core-penalty into develop fix: 优化Gather Reduce融合场景核数惩罚 Created-by: zhang_shengjie Commit-by: zhang_shengjie Merged-by: cann-robot Description: ## 描述 ### 一、主要解决的问题 Gather 与 Reduce 融合且拆分为多个串行 Schedule Group 时,Reduce Group 沿 R 轴切分仍按 128B Cache Line 计算核数惩罚,生成 Rational(1, 32),倾向仅使用约 2 核。Gather 容易受 Vector Bound 限制,该场景需要放宽 Reduce 核数惩罚,以提升整体并行度。 ### 二、修改方案 1. ATT 识别非 Group Parallel、多 Schedule Group、包含 Gather 且当前 Group 包含 Reduce 的场景。 2. 将该 Reduce Group 的核数惩罚粒度从默认 Cache Line 调整为 32B,使惩罚系数由 Rational(1, 32) 调整为 Rational(1, 8)。 3. Gather 转换为 Load 后仍按原始 op type 判断,避免 compute_type 被改写后规则失效。 4. 增加 DEBUG 级别决策日志,输出命中状态、未命中原因和实际惩罚粒度。 5. 补充正向、反向、Group Parallel、单 Group、无 Gather 及 Gather 已转换为 Load 的回归用例。 ### 三、代码修改流程图 mermaid flowchart TD A[遍历 Schedule Group] --> B{非 Group Parallel 且多 Group} B -->|否| F[使用默认 Cache Line] B -->|是| C{当前 Group 包含 Reduce} C -->|否| F C -->|是| D{原始 op type 包含 Gather} D -->|否| F D -->|是| E[Reduce 惩罚粒度设为 32B] E --> G[生成 Rational 1/8 核数惩罚] F --> H[生成默认核数惩罚] ## 变更类型 - [x] Bug 修复 - [ ] 新功能 - [ ] 代码风格更新 - [ ] 重构 - [ ] 构建过程或辅助工具的变动 - [ ] 文档内容更新 ## 关联的Issue 无。 ## 如何测试 ### 一、测试用例说明 #### 1.1 单元测试 - ATT 全量 UT:1002/1002 PASS。 - Optimize Gather UT:1/1 PASS。 - 覆盖 Gather + Reduce 多 Group 命中 Rational(1, 8)。 - 覆盖 Gather 的 compute_type 已转换为 Load 后仍命中 Rational(1, 8)。 - 覆盖 Group Parallel、单 Reduce Group、多 Reduce Group 无 Gather 时保持 Rational(1, 32)。 #### 1.2 系统测试 - Backend V2 Gather Reduce codegen/E2E ST:2/2 PASS。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 本变更无需更新用户文档 - [x] 我在标题中使用了合适的类型标签 - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md) ## 其他信息 ### 验证方法 - clang-format:PASS。 - pre-commit:PASS。 - OAT:PASS。 ### 注意事项 - 仅对非 Group Parallel 的 Gather + Reduce 多 Group 场景生效。 - 不修改 Schedule 阶段 Gather 转 Load 的既有逻辑。 - 运行 Backend E2E 时需保证 CANN 运行库可被动态链接器找到。 ### 提交记录 | Commit | 描述 | 修改文件数 | |--------|------|-----------| | 99b361cd | 调整 Gather Reduce 融合核数惩罚粒度 | 5 | | bfe1faf5 | 补充 Gather Reduce 核数惩罚多 Group 用例 | 2 | | f5f1ccba | 补充 Gather Reduce 核数惩罚维测日志 | 2 | | 78b79a43 | 按 Gather 原始类型应用 Reduce 核数惩罚 | 2 | ### 修改文件清单 | 文件路径 | 修改类型 | 说明 | |---------|---------|------| | autofuse/att/gen_model_info/gen_model_info.cpp | 修改 | 识别 Gather Reduce 多 Group 并配置惩罚粒度及日志 | | autofuse/att/gen_model_info/gen_model_info.h | 修改 | 增加惩罚配置参数接口 | | autofuse/att/gen_model_info/parser/tuning_space.h | 修改 | 保存核数惩罚 Cache Line 粒度 | | autofuse/att/expr_gen/generate_tiling_expr.cpp | 修改 | 使用场景化惩罚粒度生成核数约束 | | autofuse/v35/optimize/graph_pass/gather_to_load.cpp | 修改 | 补充 Gather 转 Load 的 DEBUG 日志 | | autofuse/tests/ut/att/testcase/gen_model_info/parser/test_ascend_graph_parser.cpp | 修改 | 增加 Gather Reduce 多 Group 回归用例 | | autofuse/tests/ut/att/testcase/expr_gen/test_generate_tiling_expr_penalty.cpp | 修改 | 增加惩罚表达式生成用例 | See merge request: cann/graph-autofusion!1314 | 1 个月前 | |
style: 统一 Autofuse 代码格式 Co-authored-by: Ling-DT<lingxing@huawei.com> # message auto-generated for no-merge-commit merge: !921 merge style/clang-format-autofuse-20260611 into develop style: 统一 Autofuse 代码格式 Created-by: ling-DT Commit-by: Ling-DT Merged-by: cann-robot Description: # Pull Request ## 描述 基于 cann/graph-autofusion:develop 最新提交 46a23b0,使用仓库根目录 .clang-format 对 autofuse/ 目录内受版本管理的 C/C++/AscendC 源文件执行统一格式化。 本 PR 仅包含 autofuse/ 目录格式化变更;super_kernel/ 目录格式化变更按要求暂留本地,未提交到本 PR。 格式化工具:clang-format 18.1.8,参数:--style=file。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 描述测试此变更的步骤和前提条件: 1. /tmp/opencode/clang-format-18-venv/bin/clang-format -i --style=file <autofuse C/C++/AscendC files> 2. git diff --cached --check 3. git diff --name-only HEAD~1..HEAD | cut -d/ -f1 | sort | uniq -c 确认 PR 提交仅包含 autofuse/。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本 PR 为纯格式化变更,不涉及功能逻辑、接口、构建脚本或打包内容修改。 See merge request: cann/graph-autofusion!921 | 2 个月前 | |
【feat】: 支持norm融合R轴分tile Co-authored-by: wang-yan-male<wangyan220@huawei.com> # message auto-generated for no-merge-commit merge: !1626 merge develop into develop 【feat】: 支持norm融合R轴分tile Created-by: WangYanMale Commit-by: wang-yan-male Merged-by: cann-robot Description: # Pull Request ## 描述 1、norm类也生成双切分模板; 2、增加重复sub消除pass; 3、后移softmax pattern pass。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 1、inductor的norm算子开启自动融合,观察生成模板; 2、layernorm算子开启自动融合,观察pass前后是否存在重复的sub节点(输入一样); 3、softmax开启自动融合,观察是否是全载模板,模板里直接调用softmax api。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 NA See merge request: cann/graph-autofusion!1626 | 25 天前 | |
feat: 优化 Norm 场景的固定输入缓存、同源 Broadcast 消除与 VF 融合 Co-authored-by: JaydenChu<zhumin54@huawei.com> # message auto-generated for no-merge-commit merge: !1654 merge norm_develop_8.5 into develop feat: 优化 Norm 场景的固定输入缓存、同源 Broadcast 消除与 VF 融合 Created-by: JaydenChu Commit-by: JaydenChu Merged-by: cann-robot Description: # Pull Request ## 描述 本次 Pull Request 针对 Norm 类计算中的通用性能问题进行优化,重点覆盖固定输入重复处理、同源 Broadcast 重复计算以及归约后 Elementwise API 碎片化等场景。 本次变更不匹配固定的 LayerNorm 完整 Pattern,也不依赖特定 Shape、节点名称或前端算子名称,而是根据图结构、Tensor View 和调度属性识别可优化的局部计算。当前主要以 LayerNorm 作为功能和性能验证对象。 主要变更如下: ### 1. 统一固定输入缓存逻辑 重构 Kernel Loop Codegen 中的缓存条件判断与 cache guard 生成流程: - 统一 Reduce 图和非 Reduce 图的缓存资格判断。 - 支持 Origin、Fused 等缓存刷新方式。 - 支持双 Tile Reduce 场景下的 A/R 刷新条件。 - 对满足条件的固定输入 Load/Broadcast 链,仅在缓存刷新点重新生成结果。 - 后续 Tile 迭代复用 UB 中已有的 LocalTensor,减少重复数据搬运和 Broadcast。 - 无法证明输入在缓存周期内保持不变时,保留原执行路径。 ### 2. 新增同源 Broadcast CSE Pass 新增面向 Norm-like 图的同源 Broadcast 公共子表达式消除能力: - 收集来自实际降维 Reduce 输出的 Broadcast 节点。 - 按相同输入源对候选 Broadcast 分组。 - 比较 dtype、axis、repeats、strides、vectorized view 和调度属性。 - 检查控制依赖、消费者顺序和 Tensor 生命周期安全性。 - 对满足等价和安全条件的 Broadcast,保留拓扑较早的节点。 - 将重复 Broadcast 的消费者重连到保留节点,并删除重复节点。 - View、调度或生命周期条件不满足时不执行合并。 该 Pass 已注册到 v35 GraphPassRunner,在 Tensor View 和调度属性稳定后、VF 分区前执行。 ### 3. 支持归约后 Elementwise VF 融合 扩展 Rsqrt 和 TrueDiv 的 VF 能力,使 LayerNorm 等场景中的归约后 Elementwise 链能够连续执行: - 新增 MicroRsqrtApiCall。 - 使用 RegBase 基础指令组合实现 Rsqrt 计算。 - 为 Rsqrt 开启 VF 能力。 - 支持合法场景下的 TrueDiv -> Add -> Rsqrt 连续 VF 路径。 - 减少中间 Tensor、UB 读写、同步和独立 API 边界。 - 保持 FP32 TrueDiv 的高精度除法模式。 - View、stride、dtype 或资源条件不满足时,继续使用原有 API 路径。 ### 4. 补充功能验证与回退场景 针对上述优化补充了以下测试能力: - 固定输入缓存条件和 cache guard 生成验证。 - 双 Tile Reduce 缓存刷新条件验证。 - 同源等价 Broadcast 合并验证。 - View、调度、控制依赖或 Reduce 条件不满足时的回退验证。 - MicroRsqrt 代码生成和异常值处理验证。 - TrueDiv -> Add -> Rsqrt VF 分区和生成结果验证。 - 通过完整 GraphPassRunner 验证 Broadcast CSE 的注册、执行和图重连结果。 ### 5. 重构日志和测试代码 - 调整同源 Broadcast CSE 文件命名,使其符合 GraphPass 命名习惯。 - 将测试中的重复图构造逻辑提取为辅助函数。 - 优化长日志语句的排版。 - 清理冗余引用并调整测试代码结构,提高可读性和可维护性。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的 Issue 暂无。 <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧“关联Issue”部分添加相应Issue链接,并勾选“合并后关闭已关联的 Issue”选项。 --> ## 如何测试 ### 测试前提 - 使用支持 v35 后端的 CANN 环境。 - 使用 A5/Ascend 950 目标设备。 - 开启 LayerNorm 到融合后端的执行路径。 - 使用相同输入分别执行 LayerNorm 单算子和融合 Kernel。 ### 测试步骤 1. **执行 LayerNorm 端到端功能测试** - 覆盖不同外轴大小和归约长度。 - 覆盖完整块和尾块场景。 - 覆盖 FP16、BF16 和 FP32。 - 覆盖 gamma+beta、仅 gamma、仅 beta和无仿射参数等输入形态。 2. **验证计算结果** - 对比融合 Kernel、LayerNorm 单算子和参考实现的结果。 - 检查最终输出以及均值、方差和 rstd 等中间统计量。 - 根据不同 dtype 使用对应的误差标准。 - 覆盖全零、全相同值、NaN、正负 Inf、极大值和极小值等特殊输入。 - NaN 结果按照传播位置和范围比较,不使用普通数值误差直接判断。 3. **验证固定输入缓存** - 选择带 gamma、beta 且包含多次 Tile 迭代的 LayerNorm 场景。 - 检查生成 Kernel,确认固定输入的 Load/Broadcast 链受正确的 cache guard 控制。 - 确认结果仅在缓存刷新点重新生成,其他迭代复用 UB 中已有的 LocalTensor。 - 验证普通缓存周期、融合广播周期和双 Tile Reduce 刷新周期。 - 对比优化前后结果,确认不存在未初始化读取或跨周期错误复用。 4. **验证同源 Broadcast CSE** - 构造同一个 Reduce 统计量产生两个等价 Broadcast 的 LayerNorm 图。 - 检查优化后的 Dump 图,确认等价 Broadcast 只保留一个。 - 确认原有消费者均连接到保留节点。 - 执行优化后的 Kernel,并与优化前结果进行对比。 - 使用 View 不同、调度不同或存在控制依赖的图验证安全回退,确认不满足条件的 Broadcast 不会被合并。 5. **验证归约后 Elementwise VF** - 使用包含 TrueDiv -> Add -> Rsqrt 统计量后处理链的 LayerNorm 场景。 - 检查优化后的图和生成 Kernel,确认合法场景中的连续 Elementwise 节点进入同一个 VF。 - 检查 FP32 TrueDiv 仍使用高精度除法模式。 - 验证 Rsqrt 对负数、零值和正常输入的处理与原路径一致。 - 使用 View、stride、dtype 或资源条件不满足的场景验证原 API 路径能够正常回退。 6. **验证性能** - 在目标设备上使用相同输入分别运行 LayerNorm 单算子和融合 Kernel。 - 覆盖多个外轴大小、归约长度和尾块场景,避免使用单一 Shape 判断收益。 - 使用设备侧 Task Duration(us) 作为性能指标。 - 确认优化后不存在明显性能回退。 - 目标为融合 Kernel 达到对应 LayerNorm 单算子性能的 95% 以上,或两者耗时差小于 2 us。 ### 预期结果 - 优化前后 LayerNorm 计算结果满足对应 dtype 的精度要求。 - 固定输入仅在正确的缓存刷新点重新生成。 - 同源且等价的 Broadcast 被安全合并。 - 不满足等价或生命周期条件的 Broadcast 保持不变。 - TrueDiv -> Add -> Rsqrt 在合法条件下进入同一个 VF。 - 任一优化条件不满足时均能够稳定回退到原路径。 - 优化逻辑不依赖固定 Shape 白名单。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于 commit message 的格式、无效 commit 的合并等 ## 其他信息 - 本次优化按照 Norm 类图的共性结构设计,当前主要以 LayerNorm 作为功能和性能验证对象。 - 固定输入缓存、同源 Broadcast CSE 和归约后 Elementwise VF 是相互独立的优化能力。 - 任一优化条件不满足时,不影响其他优化执行,并保留对应原始路径。 - 优化判断基于图结构、Tensor View 和调度属性,不包含固定 Shape、固定节点名称或前端算子名称白名单。 See merge request: cann/graph-autofusion!1654 | 30 天前 | |
【PR】: AF日志易用性整改 Co-authored-by: s00357600sgd<shenguodong1@huawei.com> # message auto-generated for no-merge-commit merge: !1864 merge autofusion_log_daily_develop into develop 【PR】: AF日志易用性整改 Created-by: s003576sgd Commit-by: s00357600sgd Merged-by: cann-robot Description: # Pull Request ## 描述 整改工具扫描的日志中存在的拼写错误、中文、缺少度量单位等低级问题,并排查类似问题统一修改 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/graph-autofusion!1864 | 8 天前 | |
style: 统一 Autofuse 代码格式 Co-authored-by: Ling-DT<lingxing@huawei.com> # message auto-generated for no-merge-commit merge: !921 merge style/clang-format-autofuse-20260611 into develop style: 统一 Autofuse 代码格式 Created-by: ling-DT Commit-by: Ling-DT Merged-by: cann-robot Description: # Pull Request ## 描述 基于 cann/graph-autofusion:develop 最新提交 46a23b0,使用仓库根目录 .clang-format 对 autofuse/ 目录内受版本管理的 C/C++/AscendC 源文件执行统一格式化。 本 PR 仅包含 autofuse/ 目录格式化变更;super_kernel/ 目录格式化变更按要求暂留本地,未提交到本 PR。 格式化工具:clang-format 18.1.8,参数:--style=file。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 描述测试此变更的步骤和前提条件: 1. /tmp/opencode/clang-format-18-venv/bin/clang-format -i --style=file <autofuse C/C++/AscendC files> 2. git diff --cached --check 3. git diff --name-only HEAD~1..HEAD | cut -d/ -f1 | sort | uniq -c 确认 PR 提交仅包含 autofuse/。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本 PR 为纯格式化变更,不涉及功能逻辑、接口、构建脚本或打包内容修改。 See merge request: cann/graph-autofusion!921 | 2 个月前 |