| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: 清理clean code告警 Co-authored-by: likun104<likun104@h-partners.com> # message auto-generated for no-merge-commit merge: !5050 merge br_fix_clean_code_0918 into develop fix: 清理clean code告警 Created-by: likun104 Commit-by: likun104 Merged-by: cann-robot Description: # Pull Request ## 描述 清理clean code告警 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 流水线跑通过,且rdv跑通过 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!5050 | 5 天前 | |
【fix】: fix GetAllIrAttrs logic Co-authored-by: kantao1<kantao1@huawei.com> # message auto-generated for no-merge-commit merge: !4794 merge refactoring into develop 【fix】: fix GetAllIrAttrs logic Created-by: kantao1 Commit-by: kantao1 Merged-by: cann-robot Description: # Pull Request ## 描述 ### 一、问题背景 gert::bg::GetAllIrAttrs(graph_metadef/exe_graph/lowering/bg_ir_attrs.cc)负责在 lowering/序列化阶段把节点声明的 IR 属性 (OpDesc::GetIrAttrNames(),按 IR 顺序)序列化为运行时属性区(RuntimeAttrsDef),是 tiling/kernel 按索引读取 属性的唯一数据源。 原实现中,若名单中某属性在属性 map(AttrUtils::GetAllAttrs)中找不到值,会**清空全部已收集属性并 return true**: 错误被静默吞掉,推迟到 tiling 阶段才暴露,报错点远离根因,且节点上其余真实属性一并失效。 经分析,"声明了 IR 属性但无值"共有 6 类来源,性质不同: | 来源 | 名值关系 | 典型场景 | |------|---------|---------| | proto .ATTR(name, type, default) 注册(Operator API 建图) | 名值俱全 | FE/ATC 正常建图 | | proto .REQUIRED_ATTR(name, type) 注册 | **有名无值**(无默认值,依赖用户显式 set) | 建模遗漏即为错误 | | 模型反序列化恢复(model_serialize.cc) | 随原节点 | om/图加载 | | IR 版本向后兼容恢复(ir_definitions_recover.cc kBackward) | **有名无值**(只补新增属性名) | 旧版本图 + 新版本算子 | | es 构图声明(CompliantNodeBuilder) | optional 属性等于默认值时**有名无值**(CreateFromIfNotEqual 省略,为 IR 层公开设计契约) | PyTorch/eager 建图,如 Gather validate_indices、Reshape axis | | 测试/工具手工登记(AppendIrAttrName) | 看写法 | UT 故意缺属性走默认值(如 Moe 系列用例) | 其中 **REQUIRED 缺值是建模错误**(必须报错);**可选属性缺值是 IR 设计允许的合法状态**(ir_definitions_recover.cc 中已有明确契约注释,框架在符号推导等路径也有对应的默认值回填机制 RecoverIrAttrDefaultValue,但 lowering 链路缺失 同等处理)。一刀切 return true(吞错)或一刀切 return false(误伤合法缺省,曾引发 ut_jit_execution/autofuse 等 ASan 崩溃与多处断言失败)都不正确。 ### 二、修改思路 GetAllIrAttrs 改为三分支分级语义: 1. **REQUIRED 属性缺值** → GELOGE + 清空 + return false:fail-fast,错误在 lowering 阶段暴露(此前被推迟到 tiling);该路径依赖 KernelContextHolder::context_ 初始化为 nullptr,保证调用方(如 symbolic_shape_inference.cc 的判空)能确定性地接住失败,消除野指针(流水线曾出现的 ASan heap-buffer-overflow/UAF 崩溃根因); 三个分支均不改变"只允许整体成功或整体失败"的索引对齐不变量(tiling 按索引读取,绝不能跳过单个属性)。 配套修改: - kernel_run_context_builder.h:KernelContextHolder 默认构造初始化 context_(nullptr)(REQUIRED 失败路径 的确定性保障,1 行); - exe_graph_serializer.cc:CreateComputeNodeInfo 返回 nullptr 时补判空断言,避免空指针进入 AddBuf; - 测试适配:ShapeRuleOp 的 REQUIRED_ATTR(N) 在 UT/ST 建图中显式补值;stub 的 ConstPlaceHolder 补齐 REQUIRED 属性(origin_format/storage_format/expand_dim_rules);符号推导用例显式补设被 es 构图省略的 默认值属性(Gather/Range/SoftmaxV2/Reshape);metadef UT 新增 2 个用例分别覆盖分支 1(REQUIRED 报错)与 分支 2(proto 默认值精确回填)。 ### 三、影响面说明 - 生产建图(FE/ATC 经 Operator API)属性名值俱全,主路径零行为变化; - es 建图的"等于默认值的可选属性"将从省略变为显式包含在属性区(语义等价,对 tiling 无影响); ## 变更类型 <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 ## 关联的Issue 无 ## 如何测试 1. 本地 metadef UT:ut_exe_graph 全量 672 通过(含新增 CreateAttrBufferFailedWhenRequiredIrAttrLoss、 CreateAttrBufferFillOptionalIrAttrWithProtoDefault 两个用例); 2. 本地 GE UT 回归:ut_libge_symbol_infer_utest(512 通过,修复原 ASan 崩溃与 2 个断言失败)、 ut_jit_execution(121 通过,修复原 ASan 崩溃)、ut_fast_runtime2_test(1772 通过,修复原 ShapeRuleOpUT 4 个失败)、ut_libge_others_utest NodeMatcher/AutoFuse(33 通过); 3. 流水线重跑 ut_rt / st_rt / ut_ge_common / st_hetero / ut_fe 确认。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 流水线 ut_fe_shape_common 的 heavy_format_distribution_fzg_01 SEGV 经分析为本 MR 无关的既有测试缺陷 (SetUp 中 GetOpStoreAdapter 可能返回 nullptr 未判空,ut_heavy_format_propagation_fzg.cc:65;崩溃点位于 OpStoreAdapter 注册层,与本 MR 无代码路径交集,且前置 12 个 suite 全部通过),属全局单例初始化顺序类 flaky,建议另行修复测试判空。 See merge request: cann/ge!4794 | 11 天前 | |
fix: 增强符号表达式反序列化与替换环检测的健壮性并补齐JIT推导预处理阶段 Co-authored-by: xiebangrui<xiebangrui@huawei.com> # message auto-generated for no-merge-commit merge: !5005 merge dev-expression-robustness into develop fix: 增强符号表达式反序列化与替换环检测的健壮性并补齐JIT推导预处理阶段 Created-by: xiebangrui2025 Commit-by: xiebangrui Merged-by: cann-robot Description: ## 描述 本 PR 增强符号表达式公共设施的健壮性(反序列化、替换环检测),并补齐 JIT 符号推导前的预处理阶段。 **解决的问题:** 1. **Deserialize 字节精确匹配拒绝合法串(bugfix)**:SymEngine 规范打印会重排负系数 Add 项与交换律算子参数,合法序列化串(如 guard)因字节不等被拒、返回 nullptr,上层 guard 集合比较器解引用空指针断言崩溃;同时 a(s0) 等截断串反而被静默接受(ParserExpression 返回后残留 token 不检查)。 2. **CheckReplacementCycle 复合表达式盲区(bugfix)**:旧实现仅在某一侧根为单符号时用 ContainVar + Simplify 判断,两根均为复合表达式时直接漏判(例如已有 replacement s0 == s2,再 Append(s0 + s1, s2):s0 的根是 s2,构成环但检测不到);逐符号枚举重写后还需拦截**间接环**——已有 s3 == Min(2, s2) 时再建立 s2 == (s0+s3)*Ceil(s1),替换链闭合出 s2 -> 复合 -> s3 -> Min(2, s2) 的环。 3. **JIT 推导预处理阶段缺失**:PrepareBeforeInferSymbol 缺 OptimizeGraphInit/OptimizeOriginalGraphForQuantize,与标准编译管线(GraphManager::PreRunOptimizeOriginalGraph)阶段序列不一致——符号推导基于未经 FE prepare 的图进行,而 sliced graph 最终编译时仍会执行这两个阶段,导致"推导图"与"编译图"状态错位。 4. **Exp/Sqrt 反序列化缺口**:打印侧将 Pow(E, x) 输出为 Exp(x)、Pow(x, 1/2) 输出为 Sqrt(x),但 scanner/expr_parser 未注册对应 token,含这两种形态的序列化串反序列化失败。 **修复方案:** | 文件 | 改动 | |------|------| | expression_impl.cc | Deserialize 重写为三段式:① 完整解析(新增 IsAtEnd 检查输入串无残留 token,拒绝截断串);② 字节相等直接通过;③ 字节不等时将重序列化结果再次解析并 Compare 两棵规范树,语义相等则接受。SymEngine 表达式树是规范形(Add 合并同类项、交换律参数按规范顺序排列),语义相同的表达式解析后得到相同的树,不存在"判等但求值不同";Str() 有损的形态(如未被识别的函数打印)重解析失败,保守拒绝 | | expr_parser.h/.cc + scanner.h/.cc | 补齐 Exp/Sqrt token 注册与解析(Exp(x) → pow(E, x)、Sqrt(x) → pow(x, 1/2)),序列化-反序列化往返闭环;单参函数(Log/Ceil/Floor/Abs/Exp/Sqrt)统一走分发表派发,新增单参函数只需在表中注册 | | attr_group_shape_env_attr.cc | CheckReplacementCycle 重写为逐表达式枚举自由符号并解析其替换根、与对方根比较,覆盖复合表达式对盲区,且无需对根做化简展开(替换链较长时代价高);补充符号根对对方根自由符号的 ContainVar 检查拦截间接环(ContainVar 仅接受无参表达式,复合根需逐自由符号判断);**成环时维持跳过语义不变**——等式两侧共享符号的合法自引用约束(如 s1*s1 == s3)同样命中该检测,拒绝会使推导整体失败并污染 guard 判定结果 | | jit_infer_utils.cc | PrepareBeforeInferSymbol 补齐 OptimizeGraphInit 与 OptimizeOriginalGraphForQuantize,对齐标准编译管线;两个 pass 均幂等,编译期重复执行无副作用;二者依赖 GELib(FE 引擎)就绪,生产 JIT 编译流程中必然满足,UT fixture 的 SetUp 初始化 GELib(带 SOC_VERSION)/TearDown 中 Finalize 使被测代码在前置条件满足下运行 | **新增测试(3 UT,覆盖本 PR 所解决问题/场景):** - 语义相等但字节不等的负系数重排串被接受:-(2 * s1) + s0 经重解析 + Compare 语义树相等接受(曾因字节不等被拒,上层 guard 集合比较器解引用空指针断言崩溃) - Exp/Sqrt 序列化-反序列化往返闭环:Pow(E,x) 打印为 Exp(x)、Pow(x,1/2) 打印为 Sqrt(x),含这两种形态的 guard 串还原为等价 Pow 表达式(补齐 token 注册前该形态反序列化失败) - 间接替换环跳过:已有 s3 == Min(2, s2) 时再建立 s2 == (s0+s3)*Ceil(s1),检测命中后跳过该条替换(s2 不进入替换集合),既有替换保持不变 JIT 推导预处理对齐由既有用例经 fixture 初始化 GELib 覆盖执行路径,两个 pass 幂等无独立可观测行为,不新增专门用例。 **存量用例期望更新(均为语义有意变更非回归):** - Deserialize_Invalid:"s0*s1"/"a+2" 为非规范但语义良好的串,三段式实现按语义相等正确接受,更新为断言接受并保留截断串 "a(s0)"/非法 token "s0++" 的拒绝断言 - ShapeEnvAttrDeserialize_InvalidExpression:非法串换为截断串 "a(s0)",保留六场景"非法表达式被拒"语义 - SimplifyWithShapeEnv:SymEngine 构造 ceiling(ceiling(x)-20) 时移出整数产生未化简两层嵌套形态,解析路径幂等化简为一层,二者数学等价,新实现按语义相等接受,更新为断言非空 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. 全量编译 aihac_symbolizer / jit_exe / ut_expression 通过 2. ut_expression 137/137、ut_jit_execution 121/121 通过 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 单 commit 合入,含生产代码、新增测试(3 UT)与用例期望更新;jit_infer_utils_unittest 存量代码按 CI 同款 clang-format v22.1.5 格式化(纯格式变更无行为影响)。 See merge request: cann/ge!5005 | 8 天前 | |
fix: precommit整改 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !3726 merge dev-precommit into develop fix: precommit整改 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 precommit整改 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.NA ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3726 | 2 个月前 | |
feat: 支持 DT_HIFLOAT4_SCALE 数据类型 Co-authored-by: shangdf<shangdongfang1@huawei.com> # message auto-generated for no-merge-commit merge: !4737 merge feature/hifloat4-scale-datatype into develop feat: 支持 DT_HIFLOAT4_SCALE 数据类型 Created-by: shangdf Commit-by: shangdf Merged-by: cann-robot Description: # Pull Request ## 描述 新增 DT_HIFLOAT4_SCALE(hifloat4 带缩放因子的 4bit 浮点)数据类型支持,与 metadef 仓 C_DT_HIFLOAT4_SCALE = 43 配套。GE 侧登记内容包括: - **proto 定义**:ge_ir.proto、dump_task.proto 的 DataType 枚举新增 DT_HIFLOAT4_SCALE = 42 - **atc/模型转换**:atc --output_type 与 netoutput 的输出类型映射新增 HIF4SCALE,option_utils 校验提示文案同步 - **单算子解析**:single_op_parser 的 kDataTypeDict 新增 hifloat4_scale 字符串映射 - **编译 pass**:cond_remove_pass、switch_dead_branch_elimination 的 1 字节判值分支、IsFloatType(atomic_memory_assigner.h)登记新类型 - **Host CPU 引擎**:PrepareOutputs 支持的数据类型集合登记 - **dump/序列化**:datatype_util dump 数据类型映射、ge_tensor/serialization_util 序列化双向映射、type_utils_inner 字符串映射补充 - **Python API**:pyge DataType 枚举新增 DT_HIFLOAT4_SCALE = 43,DT_MAX 适配为 44,中英文 API 文档与 UT 断言同步 - **说明**:constant_clip_pass 的 clip 上下限尚未适配 hif4_scale,与原方案一致保持现状并在函数处注释标记 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 运行 pyge UT:tests/ge/ut/ge/graph/pyge_tests/types_test.py(含 DT_HIFLOAT4_SCALE=43、DT_MAX=44 断言) 2. atc 转换时指定 --output_type=HIF4SCALE 验证输出类型映射 3. 单算子 IR 传入 hifloat4_scale 数据类型字符串验证解析 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 依赖 metadef 仓头文件新增 C_DT_HIFLOAT4_SCALE = 43(metadef develop 已包含),GE 构建使用该发布包头文件,本仓不重复定义 C++ 枚举。原 diff 中 IsFloatType 位于 graph_mem_assigner.h,当前 develop 上该函数已迁移至 atomic_memory_assigner.h,本次修改跟随函数落位。 See merge request: cann/ge!4737 | 14 天前 | |
feat: 融合Pass注册支持声明默认开关状态(PassSwitch) Co-authored-by: qq_45842700<caodazhou@huawei.com> # message auto-generated for no-merge-commit merge: !4383 merge feat/fusion-pass-default-switch into develop feat: 融合Pass注册支持声明默认开关状态(PassSwitch) Created-by: Dazhou_Cao Commit-by: qq_45842700 Merged-by: cann-robot Description: ## 描述 将融合Pass开关机制中硬编码的 return true 替换为注册时声明的 default_switch 值,作为四层开关优先级的最低层(第四层)。开发者可通过 REG_FUSION_PASS/REG_DECOMPOSE_PASS/REGISTER_CUSTOM_PASS 的变参宏声明 PassSwitch::kOff,使有精度风险或性能回退的pass默认关闭,仅当用户显式配置开启时才执行。 ### 背景与动机 GE 融合Pass原有三层运行时开关机制(graph option > JSON精确匹配 > JSON ALL通配 > **硬编码 return true**)。“默认true”是硬编码的,pass注册时无法声明自己的默认关闭状态。部分pass在特定条件下存在精度风险或性能回退,需要在注册时声明默认关闭,当前只能在pass内部 MeetRequirements 中做条件判断规避,不够直观,也无法在pass初始化阶段就跳过实例创建。 ### 变更内容 - 新增 PassSwitch 枚举(kOn=0, kOff=1),定义于 register_custom_pass.h - FusionPassRegistrationData / PassRegistrationData 新增 DefaultSwitch / GetDefaultSwitch 方法 - 三个注册宏采用变参宏重载:1参兼容(不调用 DefaultSwitch),2参带 switch - IsPassEnable 提取为 PassOptionUtils::IsPassEnable 公共方法,末尾 return true 改为 return default_switch == kOn - CustomPassHelper::Run 新增带 switch map 的重载 - Python Pass 桥接时隐式获得 kOn 默认值,行为不变 ### 兼容性 - **源码兼容**:变参宏分发,旧1参调用无需修改 - **ABI兼容**:PIMPL模式,新增非虚方法不影响布局 - **运行时兼容**:1参宏不调用 DefaultSwitch,旧GE运行时dlopen不受影响 ## 变更类型 - [x] ✨ 新功能 ## 如何测试 1. 编译 ge_compiler 包,验证编译通过 2. 运行 ut_fusion_pass_executor_utest 中新增的9个UT用例 3. 验证场景:kOff+无配置->跳过、kOff+option on->执行、kOff+JSON精确on->执行、kOff+JSON ALL on->执行、不传switch->默认执行 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签 - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 四层开关优先级: 1. graph option (--optimization_switch) 最高,用户运行时覆盖 2. JSON 精确匹配 (fusion_switch.cfg) 用户/产品配置 3. JSON ALL 通配 一键开关 4. 注册默认值 (DefaultSwitch) 最低,开发者声明 ← 新增 See merge request: cann/ge!4383 | 8 天前 | |
fix: precommit整改 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !3726 merge dev-precommit into develop fix: precommit整改 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 precommit整改 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.NA ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3726 | 2 个月前 | |
【PR】: ge_error_codes.h重命名后修改ge仓引用 Co-authored-by: jikai-tyler<jikai5@huawei.com> # message auto-generated for no-merge-commit merge: !4039 merge ge_errorcode into develop 【PR】: ge_error_codes.h重命名后修改ge仓引用 Created-by: jikai-tyler Commit-by: jikai-tyler Merged-by: cann-robot Description: # Pull Request ## 描述 ge_error_codes.h重命名后修改ge仓引用。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4039 | 2 个月前 | |
fix: precommit整改 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !3726 merge dev-precommit into develop fix: precommit整改 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 precommit整改 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.NA ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3726 | 2 个月前 |