| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: fix op splitV no_task attribute Co-authored-by: lushiming0<lushiming1@h-partners.com> # message auto-generated for no-merge-commit merge: !4690 merge lsmge_20260902 into develop fix: fix op splitV no_task attribute Created-by: lushiming0 Commit-by: lushiming0 Merged-by: cann-robot Description: # Pull Request ## 描述 splitV 算子的 split_dim 和 size_splits 都是数据流输入,不属于属性。fe无法支持 no_task 属性,现支持 splitV 是 const 输入时的 no_task 属性。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.构造 splitV 算子图,同时 split_dim 和 size_splits 均是 const 输入。 2.通过 dump 观察 splitV 算子是否打上了 no_task 属性标签。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4690 | 17 天前 | |
perf: 优化stream间内存复用性能 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4569 merge perf/optimize-stream-mem-reuse into develop perf: 优化stream间内存复用性能 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 优化 compiler/graph/build/memory/ 下 stream 间内存复用相关代码的性能,减少冗余计算和内存拷贝。 具体改动: 1. **block_mem_zero_copy.cc**: SetReleaseBlockLifeEnd 中 out_stream_life_time_ 的 const auto 改为 const auto &,避免每次调用产生整个 map 的深拷贝 2. **block_mem_assigner.cc**: GetDiffStreamEdgeLife 中将 GetStreamId(node_desc) 提到循环外,避免在 peer anchor 循环内重复调用 3. **block_mem_assigner.cc/h**: AddInStreamEdge 中新增 InsertStreamInEdge(set&, ...) 重载,直接传入已查找的 in_edge_set 引用,消除 InsertStreamInEdge 内部的重复 map 查找 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 编译 GE 项目确认无编译错误 2. 运行内存复用相关 UT 确认无功能回归 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 性能改进点: - map 值拷贝消除:每次 SetReleaseBlockLifeEnd 调用避免一次堆分配+拷贝 - 循环内冗余调用消除:GetStreamId 每个 peer anchor 少一次调用 - 重复 map 查找消除:AddInStreamEdge 中每条跨流边少一次 O(log S) 查找 See merge request: cann/ge!4569 | 25 天前 | |
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 | 11 天前 | |
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 个月前 | |
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 个月前 | |
refactor: BlockMemAssigner::InsertStreamInEdge 成员函数补充 const 限定 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4778 merge refactor/block-mem-insert-stream-in-edge-const into develop refactor: BlockMemAssigner::InsertStreamInEdge 成员函数补充 const 限定 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 BlockMemAssigner::InsertStreamInEdge 仅修改入参 in_edge_set(按引用传入的局部集合),不修改任何成员变量,为其补充 const 成员函数限定,明确接口语义、提升代码可读性。 涉及文件: - compiler/graph/build/memory/block_mem_assigner.h(声明补充 const) - compiler/graph/build/memory/block_mem_assigner.cc(定义同步补充 const) ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 基于 develop 分支,仅改动两处 const 限定符 2. 使用 compile_commands.json 单独编译 block_mem_assigner.cc,编译通过(退出码 0) 3. pre-commit 检查(clang-format/codespell 等)全部通过 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/ge!4778 | 15 天前 | |
refactor: BlockMemAssigner::InsertStreamInEdge 成员函数补充 const 限定 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4778 merge refactor/block-mem-insert-stream-in-edge-const into develop refactor: BlockMemAssigner::InsertStreamInEdge 成员函数补充 const 限定 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 BlockMemAssigner::InsertStreamInEdge 仅修改入参 in_edge_set(按引用传入的局部集合),不修改任何成员变量,为其补充 const 成员函数限定,明确接口语义、提升代码可读性。 涉及文件: - compiler/graph/build/memory/block_mem_assigner.h(声明补充 const) - compiler/graph/build/memory/block_mem_assigner.cc(定义同步补充 const) ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 基于 develop 分支,仅改动两处 const 限定符 2. 使用 compile_commands.json 单独编译 block_mem_assigner.cc,编译通过(退出码 0) 3. pre-commit 检查(clang-format/codespell 等)全部通过 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/ge!4778 | 15 天前 | |
perf: 优化stream间内存复用性能 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4569 merge perf/optimize-stream-mem-reuse into develop perf: 优化stream间内存复用性能 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 优化 compiler/graph/build/memory/ 下 stream 间内存复用相关代码的性能,减少冗余计算和内存拷贝。 具体改动: 1. **block_mem_zero_copy.cc**: SetReleaseBlockLifeEnd 中 out_stream_life_time_ 的 const auto 改为 const auto &,避免每次调用产生整个 map 的深拷贝 2. **block_mem_assigner.cc**: GetDiffStreamEdgeLife 中将 GetStreamId(node_desc) 提到循环外,避免在 peer anchor 循环内重复调用 3. **block_mem_assigner.cc/h**: AddInStreamEdge 中新增 InsertStreamInEdge(set&, ...) 重载,直接传入已查找的 in_edge_set 引用,消除 InsertStreamInEdge 内部的重复 map 查找 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 编译 GE 项目确认无编译错误 2. 运行内存复用相关 UT 确认无功能回归 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 性能改进点: - map 值拷贝消除:每次 SetReleaseBlockLifeEnd 调用避免一次堆分配+拷贝 - 循环内冗余调用消除:GetStreamId 每个 peer anchor 少一次调用 - 重复 map 查找消除:AddInStreamEdge 中每条跨流边少一次 O(log S) 查找 See merge request: cann/ge!4569 | 25 天前 | |
refactor: 从block_mem_assigner抽取零拷贝及辅助函数到独立文件 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4229 merge refactor/extract-block-mem-zero-copy into develop refactor: 从block_mem_assigner抽取零拷贝及辅助函数到独立文件 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 从block_mem_assigner.cc中抽取零拷贝判断、内存块生命周期管理、复用策略等函数到独立文件,降低block_mem_assigner.cc复杂度。 抽取的文件: - block_mem_zero_copy.cc/h:零拷贝判断相关函数(IsNodeSupportZeroCopy、IsNodeAndPeerNodeTaskSupportZeroCopy等) - block_mem_stream.cc/h:流相关函数 - memory_block.cc/h:内存块管理函数 - mem_reuse_strategy.cc/h:复用策略函数 - dynamic_batch_mem_assigner.cc/h:动态batch相关函数 同时补充HCCL算子零拷贝地址刷新判断。 ## 变更类型 - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) ## 关联的Issue ## 如何测试 1. 基于 develop 分支编译 ge_compiler 2. 运行 block_mem_assigner_unittest 单元测试 3. 确认 IsZeroCopyBlock 相关测试全部通过 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签 - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md) ## 其他信息 与 PR #4171(抽取AtomicMemoryAssigner)拆分,本PR仅包含block_mem_assigner.cc的函数拆分,不涉及atomic内存分配逻辑。 See merge request: cann/ge!4229 | 1 个月前 | |
perf: 优化stream间内存复用性能 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4569 merge perf/optimize-stream-mem-reuse into develop perf: 优化stream间内存复用性能 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 优化 compiler/graph/build/memory/ 下 stream 间内存复用相关代码的性能,减少冗余计算和内存拷贝。 具体改动: 1. **block_mem_zero_copy.cc**: SetReleaseBlockLifeEnd 中 out_stream_life_time_ 的 const auto 改为 const auto &,避免每次调用产生整个 map 的深拷贝 2. **block_mem_assigner.cc**: GetDiffStreamEdgeLife 中将 GetStreamId(node_desc) 提到循环外,避免在 peer anchor 循环内重复调用 3. **block_mem_assigner.cc/h**: AddInStreamEdge 中新增 InsertStreamInEdge(set&, ...) 重载,直接传入已查找的 in_edge_set 引用,消除 InsertStreamInEdge 内部的重复 map 查找 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 编译 GE 项目确认无编译错误 2. 运行内存复用相关 UT 确认无功能回归 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 性能改进点: - map 值拷贝消除:每次 SetReleaseBlockLifeEnd 调用避免一次堆分配+拷贝 - 循环内冗余调用消除:GetStreamId 每个 peer anchor 少一次调用 - 重复 map 查找消除:AddInStreamEdge 中每条跨流边少一次 O(log S) 查找 See merge request: cann/ge!4569 | 25 天前 | |
fix: 修正动态shape静态子图HCCL零拷贝判断逻辑 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4321 merge revert/pr-4299 into develop fix: 修正动态shape静态子图HCCL零拷贝判断逻辑 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 修正动态shape静态子图场景下HCCL零拷贝判断逻辑。 问题: IsGraphFeatureMapRefreshable在动态shape静态子图场景下,hccl判断时还未拆图,导致判断结果与实际执行阶段不一致。另外静态子图里hccl支持刷新会有性能劣化,hccl内部会做数据拷贝等额外处理。 修改方案: - 移除is_feature_map_refreshable参数传递,恢复使用IsHcomNodeNotSupportAddrRefresh+is_dynamic_shape_sub_graph判断 - MarkReuseZeroCopyBlockFlag移除data_connect_unsupport_zero_copy检查逻辑(动态shape静态子图data,ge执行流程没有对输入做拷贝处理,只能按支持零拷贝处理) 同时构造动态shape两个静态子图HCCL零拷贝ST用例: - 子图1输出作为子图2输入 - GenerateTaskForHcomAllReduce新增memcpy做数据拷贝 - 执行后在fixed feature memory写入magic数据校验子图间数据传递 ## 变更文件 - block_mem_zero_copy.cc:IsNodeSupportZeroCopy使用is_dynamic_shape_sub_graph判断;MarkReuseZeroCopyBlockFlag移除is_feature_map_refreshable参数和data_connect_unsupport_zero_copy检查逻辑;IsNodeAndPeerNodeTaskSupportZeroCopy移除is_feature_map_refreshable参数 - block_mem_zero_copy.h:同步函数签名修改 - block_mem_assigner.cc:IsZeroCopyBlock和两处MarkReuseZeroCopyBlockFlag调用移除is_feature_map_refreshable_参数 - block_mem_assigner_unittest.cc:适配函数签名变更 - test_fm_memory_refresh.cc:新增动态shape静态子图HCCL零拷贝ST用例 ## 变更类型 - [x] 🐛 Bug 修复 ## 关联的Issue ## 如何测试 1. 编译UT:make -C cmake-build-gcov ut_libge_distinct_load_utest 2. 运行UT:--gtest_filter=*IsZeroCopyBlock* 3. 编译ST:bash build.sh --ge_executor 4. 运行ST:test_fm_memory_refresh --gtest_filter=*HcclZeroCopy* ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 dump相关修复已拆分到独立PR #4390。 See merge request: cann/ge!4321 | 1 个月前 | |
perf: 优化stream间内存复用性能 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4569 merge perf/optimize-stream-mem-reuse into develop perf: 优化stream间内存复用性能 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 优化 compiler/graph/build/memory/ 下 stream 间内存复用相关代码的性能,减少冗余计算和内存拷贝。 具体改动: 1. **block_mem_zero_copy.cc**: SetReleaseBlockLifeEnd 中 out_stream_life_time_ 的 const auto 改为 const auto &,避免每次调用产生整个 map 的深拷贝 2. **block_mem_assigner.cc**: GetDiffStreamEdgeLife 中将 GetStreamId(node_desc) 提到循环外,避免在 peer anchor 循环内重复调用 3. **block_mem_assigner.cc/h**: AddInStreamEdge 中新增 InsertStreamInEdge(set&, ...) 重载,直接传入已查找的 in_edge_set 引用,消除 InsertStreamInEdge 内部的重复 map 查找 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 编译 GE 项目确认无编译错误 2. 运行内存复用相关 UT 确认无功能回归 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 性能改进点: - map 值拷贝消除:每次 SetReleaseBlockLifeEnd 调用避免一次堆分配+拷贝 - 循环内冗余调用消除:GetStreamId 每个 peer anchor 少一次调用 - 重复 map 查找消除:AddInStreamEdge 中每条跨流边少一次 O(log S) 查找 See merge request: cann/ge!4569 | 25 天前 | |
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】: 内部头文件重名整改 -- 同名不同内容 Co-authored-by: jikai-tyler<jikai5@huawei.com> # message auto-generated for no-merge-commit merge: !3497 merge ge_header_internal_2 into develop 【PR】: 内部头文件重名整改 -- 同名不同内容 Created-by: jikai-tyler Commit-by: jikai-tyler Merged-by: cann-robot Description: # Pull Request ## 描述 | 原文件路径 | 原名 | 修改后名称 | |-----------|------|-----------| | base/common/helper/mobile/ | model.h | mobile_model.h | | base/common/math/ | math_util.h | ge_math_util.h | | compiler/engines/cpu_engine/common/util/ | log.h | aicpu_log.h | | compiler/engines/cpu_engine/inc/ | graph_pass.h | cpu_engine_graph_pass.h | | compiler/engines/cpu_engine/inc/ | pass.h | cpu_engine_pass.h | | compiler/engines/cpu_engine/tf_engine/tf_optimizer/ | tensorflow_util.h | tf_optimizer_tensorflow_util.h | | compiler/engines/hccl_engine/hcom_graph_adaptor/ge_plugin/calculation_tool/ | model.h | hcom_model.h | | compiler/engines/hccl_engine/hcom_graph_adaptor/ge_plugin/ | plugin_manager.h | hcom_plugin_manager.h | | compiler/engines/local_engine/ops_kernel_store/op/ | op.h | ge_local_op.h | | compiler/engines/local_engine/ops_kernel_store/op/ | op_factory.h | ge_local_op_factory.h | | compiler/engines/manager/engine/ | engine_manager.h | dnn_engine_manager.h | | compiler/engines/manager/opskernel_manager/ | ops_kernel_manager.h | dnn_ops_kernel_manager.h | | compiler/engines/nn_engine/inc/common/ | math_util.h | nn_engine_math_util.h | | compiler/engines/nn_engine/optimizer/ops_kernel_builder/task_builder/ | dsa_task_builder.h | ops_kernel_dsa_task_builder.h | | compiler/engines/nn_engine/utils/common/ | plugin_manager.h | nn_engine_plugin_manager.h | | compiler/engines/rts_engine/common/util/ | log.h | rts_log.h | | compiler/graph/build/stream/ | stream_allocator.h | graph_stream_allocator.h | | compiler/graph/common/compress/inc/ | log.h | compress_log.h | | compiler/graph/eager_style_graph_builder/es_generator/ | utils.h | es_generator_utils.h | | compiler/graph/passes/ | pass.h | compiler_pass.h | | compiler/opcompiler/op_compile_adapter/source/compile/ | fusion_manager.h | opcompiler_fusion_manager.h | | dflow/llm_datadist/v1/common/ | cache_manager.h | llm_datadist_cache_manager.h | | dflow/llm_datadist/v1/common/ | llm_common.h | llm_datadist_common.h | | dflow/llm_datadist/v1/common/ | mem_utils.h | llm_datadist_mem_utils.h | | dflow/pydflow/wrapper/ | utils.h | pydflow_utils.h | | dflow/udf/execute/ | memory_statistic_manager.h | udf_memory_statistic_manager.h | | dflow/udf/flow_func/ | flow_model.h | udf_flow_model.h | | inc/framework/common/ | op_types.h | framework_op_types.h | | inc/graph_metadef/common/ge_common/debug/ | log.h | ge_common_log.h | | inc/graph_metadef/graph/utils/ | mem_utils.h | graph_mem_utils.h | | inc/graph_metadef/register/graph_optimizer/graph_fusion/ | connection_matrix.h | fusion_connection_matrix.h | | inc/graph_metadef/register/graph_optimizer/graph_fusion/ | graph_pass.h | graph_fusion_graph_pass.h | | inc/graph_metadef/register/graph_optimizer/graph_fusion/ | pass.h | graph_fusion_pass.h | | parser/parser/common/ | graph_pass.h | parser_graph_pass.h | | parser/parser/common/ | pass.h | parser_pass.h | | runtime/v1/graph/load/model_manager/task_info/ffts_plus/ | ffts_plus_proto_transfer.h | v1_ffts_plus_proto_transfer.h | | runtime/v1/graph/manager/ | host_mem_allocator.h | v1_host_mem_allocator.h | | runtime/v1/hybrid/model/infer/ | shape_utils.h | hybrid_shape_utils.h | | runtime/v2/core/utils/ | executor_utils.h | rt2_executor_utils.h | | runtime/v2/core/utils/ | tensor_utils.h | rt2_tensor_utils.h | | runtime/v2/utils/ | utils.h | rt2_utils.h | ## 变更类型 请选择本次引入的变更类型: <!-- [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!3497 | 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 个月前 | |
perf: 优化stream间内存复用性能 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4569 merge perf/optimize-stream-mem-reuse into develop perf: 优化stream间内存复用性能 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 优化 compiler/graph/build/memory/ 下 stream 间内存复用相关代码的性能,减少冗余计算和内存拷贝。 具体改动: 1. **block_mem_zero_copy.cc**: SetReleaseBlockLifeEnd 中 out_stream_life_time_ 的 const auto 改为 const auto &,避免每次调用产生整个 map 的深拷贝 2. **block_mem_assigner.cc**: GetDiffStreamEdgeLife 中将 GetStreamId(node_desc) 提到循环外,避免在 peer anchor 循环内重复调用 3. **block_mem_assigner.cc/h**: AddInStreamEdge 中新增 InsertStreamInEdge(set&, ...) 重载,直接传入已查找的 in_edge_set 引用,消除 InsertStreamInEdge 内部的重复 map 查找 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 编译 GE 项目确认无编译错误 2. 运行内存复用相关 UT 确认无功能回归 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 性能改进点: - map 值拷贝消除:每次 SetReleaseBlockLifeEnd 调用避免一次堆分配+拷贝 - 循环内冗余调用消除:GetStreamId 每个 peer anchor 少一次调用 - 重复 map 查找消除:AddInStreamEdge 中每条跨流边少一次 O(log S) 查找 See merge request: cann/ge!4569 | 25 天前 | |
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 个月前 | |
perf: 优化stream间内存复用性能 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4569 merge perf/optimize-stream-mem-reuse into develop perf: 优化stream间内存复用性能 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 优化 compiler/graph/build/memory/ 下 stream 间内存复用相关代码的性能,减少冗余计算和内存拷贝。 具体改动: 1. **block_mem_zero_copy.cc**: SetReleaseBlockLifeEnd 中 out_stream_life_time_ 的 const auto 改为 const auto &,避免每次调用产生整个 map 的深拷贝 2. **block_mem_assigner.cc**: GetDiffStreamEdgeLife 中将 GetStreamId(node_desc) 提到循环外,避免在 peer anchor 循环内重复调用 3. **block_mem_assigner.cc/h**: AddInStreamEdge 中新增 InsertStreamInEdge(set&, ...) 重载,直接传入已查找的 in_edge_set 引用,消除 InsertStreamInEdge 内部的重复 map 查找 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 编译 GE 项目确认无编译错误 2. 运行内存复用相关 UT 确认无功能回归 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 性能改进点: - map 值拷贝消除:每次 SetReleaseBlockLifeEnd 调用避免一次堆分配+拷贝 - 循环内冗余调用消除:GetStreamId 每个 peer anchor 少一次调用 - 重复 map 查找消除:AddInStreamEdge 中每条跨流边少一次 O(log S) 查找 See merge request: cann/ge!4569 | 25 天前 | |
perf: 优化stream间内存复用性能 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4569 merge perf/optimize-stream-mem-reuse into develop perf: 优化stream间内存复用性能 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 优化 compiler/graph/build/memory/ 下 stream 间内存复用相关代码的性能,减少冗余计算和内存拷贝。 具体改动: 1. **block_mem_zero_copy.cc**: SetReleaseBlockLifeEnd 中 out_stream_life_time_ 的 const auto 改为 const auto &,避免每次调用产生整个 map 的深拷贝 2. **block_mem_assigner.cc**: GetDiffStreamEdgeLife 中将 GetStreamId(node_desc) 提到循环外,避免在 peer anchor 循环内重复调用 3. **block_mem_assigner.cc/h**: AddInStreamEdge 中新增 InsertStreamInEdge(set&, ...) 重载,直接传入已查找的 in_edge_set 引用,消除 InsertStreamInEdge 内部的重复 map 查找 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 编译 GE 项目确认无编译错误 2. 运行内存复用相关 UT 确认无功能回归 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 性能改进点: - map 值拷贝消除:每次 SetReleaseBlockLifeEnd 调用避免一次堆分配+拷贝 - 循环内冗余调用消除:GetStreamId 每个 peer anchor 少一次调用 - 重复 map 查找消除:AddInStreamEdge 中每条跨流边少一次 O(log S) 查找 See merge request: cann/ge!4569 | 25 天前 | |
perf: 优化stream间内存复用性能 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4569 merge perf/optimize-stream-mem-reuse into develop perf: 优化stream间内存复用性能 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 优化 compiler/graph/build/memory/ 下 stream 间内存复用相关代码的性能,减少冗余计算和内存拷贝。 具体改动: 1. **block_mem_zero_copy.cc**: SetReleaseBlockLifeEnd 中 out_stream_life_time_ 的 const auto 改为 const auto &,避免每次调用产生整个 map 的深拷贝 2. **block_mem_assigner.cc**: GetDiffStreamEdgeLife 中将 GetStreamId(node_desc) 提到循环外,避免在 peer anchor 循环内重复调用 3. **block_mem_assigner.cc/h**: AddInStreamEdge 中新增 InsertStreamInEdge(set&, ...) 重载,直接传入已查找的 in_edge_set 引用,消除 InsertStreamInEdge 内部的重复 map 查找 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 编译 GE 项目确认无编译错误 2. 运行内存复用相关 UT 确认无功能回归 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 性能改进点: - map 值拷贝消除:每次 SetReleaseBlockLifeEnd 调用避免一次堆分配+拷贝 - 循环内冗余调用消除:GetStreamId 每个 peer anchor 少一次调用 - 重复 map 查找消除:AddInStreamEdge 中每条跨流边少一次 O(log S) 查找 See merge request: cann/ge!4569 | 25 天前 | |
perf: 优化stream间内存复用性能 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4569 merge perf/optimize-stream-mem-reuse into develop perf: 优化stream间内存复用性能 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 优化 compiler/graph/build/memory/ 下 stream 间内存复用相关代码的性能,减少冗余计算和内存拷贝。 具体改动: 1. **block_mem_zero_copy.cc**: SetReleaseBlockLifeEnd 中 out_stream_life_time_ 的 const auto 改为 const auto &,避免每次调用产生整个 map 的深拷贝 2. **block_mem_assigner.cc**: GetDiffStreamEdgeLife 中将 GetStreamId(node_desc) 提到循环外,避免在 peer anchor 循环内重复调用 3. **block_mem_assigner.cc/h**: AddInStreamEdge 中新增 InsertStreamInEdge(set&, ...) 重载,直接传入已查找的 in_edge_set 引用,消除 InsertStreamInEdge 内部的重复 map 查找 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 编译 GE 项目确认无编译错误 2. 运行内存复用相关 UT 确认无功能回归 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 性能改进点: - map 值拷贝消除:每次 SetReleaseBlockLifeEnd 调用避免一次堆分配+拷贝 - 循环内冗余调用消除:GetStreamId 每个 peer anchor 少一次调用 - 重复 map 查找消除:AddInStreamEdge 中每条跨流边少一次 O(log S) 查找 See merge request: cann/ge!4569 | 25 天前 | |
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 个月前 | |
refactor: 抽取AtomicMemoryAssigner独立类 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4171 merge refactor/extract-atomic-memory-assigner into develop refactor: 抽取AtomicMemoryAssigner独立类 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 将GraphMemoryAssigner中的atomic内存分配与清零相关逻辑抽取为独立的AtomicMemoryAssigner类,降低graph_mem_assigner.cc复杂度,提升可维护性。 抽取内容: - atomic_memory_assigner.cc/h:新增文件,包含atomic清零相关的结构体(MemoryOffset、CleanMemInfo、CleanDataTypeValue、AtomicNodeCleanTypeVals)、成员函数(ReAssign、SetAtomicCleanOffset、FilterAtomicNodes、AssignAtomicOutputMemory、AssignFusionAtomicWorkspaceMemory等)及辅助函数 - graph_mem_assigner.cc/h:移除atomic相关函数和结构体,通过atomic_memory_assigner_成员委托调用 - graph_mem_splitter.h:新增GraphMemSplitterPtr类型别名 - 测试用例:适配AtomicMemoryAssigner拆分,封装InitAtomicMemoryAssigner辅助函数 同时补充HCCL算子零拷贝地址刷新判断:IsAddressRefreshable在动态shape静态子图场景认为hccl算子可刷新,统一使用IsHcomNodeNotSupportAddrRefresh的结果。 ## 变更类型 - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) ## 关联的Issue ## 如何测试 1. 基于develop分支编译ge_compiler 2. 运行graph_mem_assigner_unittest、mem_assigner_unittest等单元测试 3. 运行test_graph_compiler系统测试 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签 - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md) ## 其他信息 与PR #4229(从block_mem_assigner抽取零拷贝及辅助函数)拆分,本PR仅包含atomic内存分配逻辑的抽取。 See merge request: cann/ge!4171 | 1 个月前 | |
perf: 优化stream间内存复用性能 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4569 merge perf/optimize-stream-mem-reuse into develop perf: 优化stream间内存复用性能 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 优化 compiler/graph/build/memory/ 下 stream 间内存复用相关代码的性能,减少冗余计算和内存拷贝。 具体改动: 1. **block_mem_zero_copy.cc**: SetReleaseBlockLifeEnd 中 out_stream_life_time_ 的 const auto 改为 const auto &,避免每次调用产生整个 map 的深拷贝 2. **block_mem_assigner.cc**: GetDiffStreamEdgeLife 中将 GetStreamId(node_desc) 提到循环外,避免在 peer anchor 循环内重复调用 3. **block_mem_assigner.cc/h**: AddInStreamEdge 中新增 InsertStreamInEdge(set&, ...) 重载,直接传入已查找的 in_edge_set 引用,消除 InsertStreamInEdge 内部的重复 map 查找 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 编译 GE 项目确认无编译错误 2. 运行内存复用相关 UT 确认无功能回归 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 性能改进点: - map 值拷贝消除:每次 SetReleaseBlockLifeEnd 调用避免一次堆分配+拷贝 - 循环内冗余调用消除:GetStreamId 每个 peer anchor 少一次调用 - 重复 map 查找消除:AddInStreamEdge 中每条跨流边少一次 O(log S) 查找 See merge request: cann/ge!4569 | 25 天前 | |
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 个月前 | |
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 个月前 | |
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 个月前 | |
fix: 代码规范优化 - 精确头文件引用、const修饰、全局对象初始化顺序修复 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !4854 merge dev-codecheck0910 into develop fix: 代码规范优化 - 精确头文件引用、const修饰、全局对象初始化顺序修复 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 代码规范优化,修复头文件引用、const修饰和全局对象初始化顺序问题。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. 编译验证:bash build.sh --ge_compiler 2. 运行单元测试验证 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 变更详情: 1. mem_assigner.h: 替换冗余include为精确头文件引用 2. variable_op_pass: DealFusion/CheckVariableRefLegally添加const修饰 3. parser_model_saver.h: 替换废弃头文件为精确引用 4. reshape_remove_pass.cc: 全局对象改为construct on first use惯用法,避免跨编译单元初始化顺序问题 5. task_producer.h: 替换废弃ge_api_types.h为精确头文件 See merge request: cann/ge!4854 | 12 天前 | |
perf: 优化stream间内存复用性能 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4569 merge perf/optimize-stream-mem-reuse into develop perf: 优化stream间内存复用性能 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 优化 compiler/graph/build/memory/ 下 stream 间内存复用相关代码的性能,减少冗余计算和内存拷贝。 具体改动: 1. **block_mem_zero_copy.cc**: SetReleaseBlockLifeEnd 中 out_stream_life_time_ 的 const auto 改为 const auto &,避免每次调用产生整个 map 的深拷贝 2. **block_mem_assigner.cc**: GetDiffStreamEdgeLife 中将 GetStreamId(node_desc) 提到循环外,避免在 peer anchor 循环内重复调用 3. **block_mem_assigner.cc/h**: AddInStreamEdge 中新增 InsertStreamInEdge(set&, ...) 重载,直接传入已查找的 in_edge_set 引用,消除 InsertStreamInEdge 内部的重复 map 查找 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 编译 GE 项目确认无编译错误 2. 运行内存复用相关 UT 确认无功能回归 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 性能改进点: - map 值拷贝消除:每次 SetReleaseBlockLifeEnd 调用避免一次堆分配+拷贝 - 循环内冗余调用消除:GetStreamId 每个 peer anchor 少一次调用 - 重复 map 查找消除:AddInStreamEdge 中每条跨流边少一次 O(log S) 查找 See merge request: cann/ge!4569 | 25 天前 | |
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 个月前 | |
perf: 缓存batch_all_memory_size引用消除重复查找 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4609 merge perf/optimize-batch-memory-lookup into develop perf: 缓存batch_all_memory_size引用消除重复查找 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 优化 compiler/graph/build/memory/ 下连续节点生命期遍历和 batch 内存大小查找的性能。 具体改动: 1. **递归改迭代**:GetContinuousNodeLifeTimeBegin 和 SetContinuousNodeLifeTimeBegin 从递归改为迭代式(std::stack + std::unordered_set 防环),消除递归深度限制 kMaxDepthNum,不再需要兜底处理 2. **简化函数签名**:移除冗余的 org_node 和 depth 参数(调用方始终传相同值),SetContinuousNodeLifeTimeBegin 移除 depth 参数 3. **消除重复属性查询**:ATTR_NAME_NOPADDING_CONTINUOUS_INPUT 只获取一次,is_continuous 从循环中保存 4. **缓存 batch_mem 引用**:batch_all_memory_size[batch_label] 缓存为局部引用,消除循环内重复 operator[] 查找 5. **新增 UT**:NoPaddingContinuousCascadedLifeTimeBegin 验证级联连续输入场景下生命期传播正确性 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 编译 GE 项目确认无编译错误 2. 运行 UtestBlockMemAssigner.* 全部 68 个 UT 3. 运行 ut_libge_multiparts_utest 全量 3065 个 UT 4. 差分验证:递归版与迭代版在级联场景(BuildNoPaddingContinuousInCascadedGraph)上结果一致 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 See merge request: cann/ge!4609 | 21 天前 | |
perf: 缓存batch_all_memory_size引用消除重复查找 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4609 merge perf/optimize-batch-memory-lookup into develop perf: 缓存batch_all_memory_size引用消除重复查找 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 优化 compiler/graph/build/memory/ 下连续节点生命期遍历和 batch 内存大小查找的性能。 具体改动: 1. **递归改迭代**:GetContinuousNodeLifeTimeBegin 和 SetContinuousNodeLifeTimeBegin 从递归改为迭代式(std::stack + std::unordered_set 防环),消除递归深度限制 kMaxDepthNum,不再需要兜底处理 2. **简化函数签名**:移除冗余的 org_node 和 depth 参数(调用方始终传相同值),SetContinuousNodeLifeTimeBegin 移除 depth 参数 3. **消除重复属性查询**:ATTR_NAME_NOPADDING_CONTINUOUS_INPUT 只获取一次,is_continuous 从循环中保存 4. **缓存 batch_mem 引用**:batch_all_memory_size[batch_label] 缓存为局部引用,消除循环内重复 operator[] 查找 5. **新增 UT**:NoPaddingContinuousCascadedLifeTimeBegin 验证级联连续输入场景下生命期传播正确性 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 编译 GE 项目确认无编译错误 2. 运行 UtestBlockMemAssigner.* 全部 68 个 UT 3. 运行 ut_libge_multiparts_utest 全量 3065 个 UT 4. 差分验证:递归版与迭代版在级联场景(BuildNoPaddingContinuousInCascadedGraph)上结果一致 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 See merge request: cann/ge!4609 | 21 天前 | |
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 个月前 | |
perf: 优化stream间内存复用性能 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4569 merge perf/optimize-stream-mem-reuse into develop perf: 优化stream间内存复用性能 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 优化 compiler/graph/build/memory/ 下 stream 间内存复用相关代码的性能,减少冗余计算和内存拷贝。 具体改动: 1. **block_mem_zero_copy.cc**: SetReleaseBlockLifeEnd 中 out_stream_life_time_ 的 const auto 改为 const auto &,避免每次调用产生整个 map 的深拷贝 2. **block_mem_assigner.cc**: GetDiffStreamEdgeLife 中将 GetStreamId(node_desc) 提到循环外,避免在 peer anchor 循环内重复调用 3. **block_mem_assigner.cc/h**: AddInStreamEdge 中新增 InsertStreamInEdge(set&, ...) 重载,直接传入已查找的 in_edge_set 引用,消除 InsertStreamInEdge 内部的重复 map 查找 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 编译 GE 项目确认无编译错误 2. 运行内存复用相关 UT 确认无功能回归 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 性能改进点: - map 值拷贝消除:每次 SetReleaseBlockLifeEnd 调用避免一次堆分配+拷贝 - 循环内冗余调用消除:GetStreamId 每个 peer anchor 少一次调用 - 重复 map 查找消除:AddInStreamEdge 中每条跨流边少一次 O(log S) 查找 See merge request: cann/ge!4569 | 25 天前 | |
perf: 优化stream间内存复用性能 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4569 merge perf/optimize-stream-mem-reuse into develop perf: 优化stream间内存复用性能 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 优化 compiler/graph/build/memory/ 下 stream 间内存复用相关代码的性能,减少冗余计算和内存拷贝。 具体改动: 1. **block_mem_zero_copy.cc**: SetReleaseBlockLifeEnd 中 out_stream_life_time_ 的 const auto 改为 const auto &,避免每次调用产生整个 map 的深拷贝 2. **block_mem_assigner.cc**: GetDiffStreamEdgeLife 中将 GetStreamId(node_desc) 提到循环外,避免在 peer anchor 循环内重复调用 3. **block_mem_assigner.cc/h**: AddInStreamEdge 中新增 InsertStreamInEdge(set&, ...) 重载,直接传入已查找的 in_edge_set 引用,消除 InsertStreamInEdge 内部的重复 map 查找 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 编译 GE 项目确认无编译错误 2. 运行内存复用相关 UT 确认无功能回归 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 性能改进点: - map 值拷贝消除:每次 SetReleaseBlockLifeEnd 调用避免一次堆分配+拷贝 - 循环内冗余调用消除:GetStreamId 每个 peer anchor 少一次调用 - 重复 map 查找消除:AddInStreamEdge 中每条跨流边少一次 O(log S) 查找 See merge request: cann/ge!4569 | 25 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 17 天前 | ||
| 25 天前 | ||
| 11 天前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 15 天前 | ||
| 15 天前 | ||
| 25 天前 | ||
| 1 个月前 | ||
| 25 天前 | ||
| 1 个月前 | ||
| 25 天前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 25 天前 | ||
| 2 个月前 | ||
| 25 天前 | ||
| 25 天前 | ||
| 25 天前 | ||
| 25 天前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 25 天前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 12 天前 | ||
| 25 天前 | ||
| 2 个月前 | ||
| 21 天前 | ||
| 21 天前 | ||
| 2 个月前 | ||
| 25 天前 | ||
| 25 天前 |