| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: 修复while子图内Const到ref算子读写冲突漏插Identity问题 Co-authored-by: tang-haojie<tanghaojie1@huawei.com> # message auto-generated for no-merge-commit merge: !5322 merge fix/while-subgraph-rw-conflict into develop fix: 修复while子图内Const到ref算子读写冲突漏插Identity问题 Created-by: tang-haojie Commit-by: tang-haojie Merged-by: cann-robot Description: # Pull Request ## 描述 修复 while 子图内语义级内存读写冲突漏插 Identity 的问题。 GraphOptimize::HandleMemoryRWConflict 原先对 while 子图内节点整体跳过(while 子图因循环依赖不做 RW 类型标注),导致 body/cond 内 Const -> ref 算子(kReadOnlyConst × kWriteable = INSERT_IDENTITY)等语义级读写冲突无人处理——SubgraphPass 只覆盖子图边界结构隔离(Data/NetOutput/While 输入侧),HcclMemcpyPass 只认 _input_mutable 算子。while 循环下 Const 被覆写后不会恢复(常量节点不每轮重新执行),后续迭代读到污染数据。 本次变更:将 while 子图的过滤从“整体跳过”收窄为“跳过 Identity 拆分/删除重排,保留冲突矩阵插入”: 1. while 子图内跳过 SplitIdentity/RemoveNoUseIdentity,防止破坏 SubgraphPass 已建立的结构隔离(如 while body 的 input_Memcpy/output_Memcpy,这些节点无 CANNOT_BE_DELETED 保护) 2. 保留 InsertIdentityAsNeeded 矩阵插入,补上 while 子图内 Const→ref、Const/ref 输出→ScopeWrite 类语义级冲突的隔离;矩阵自带 _skip_rw_conflict/CANNOT_BE_DELETED 双豁免,与 HcclMemcpyPass/SubgraphPass 不重复插入 3. 循环变量边(Data 出边/NetOutput 入边)仍由通用子图边界过滤保护,地址轮转不受影响 4. 同步更新 docs/zh/design/features/memory_conflict.md 架构文档 ## 变更类型 - [x] 🐛 Bug 修复 ## 关联的Issue 无 ## 如何测试 1. UT:tests/ge/ut/ge/graph/optimize/mem_rw_conflict_optimize_unittest.cc 新增 3 个用例 - WhileBodyConstToRef_InsertIdentity:while body 内 Const→Assign(ref) 插入 Identity 且带 CANNOT_BE_DELETED - WhileBodyDataToRef_NotInsertIdentity:while body 内 Data→ref 不重复插入 - WhileBodyExistIdentity_NotSplitNotRemove:while body 内已有 Identity(多消费者)不被拆分/删除/直连重排 2. 回归:ut_libge_multiparts_utest 全量 3163 用例通过;同 suite 24 用例通过;pre-commit 全部 Passed ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/ge!5322 | 20 天前 | |
fix: 修复while子图内Const到ref算子读写冲突漏插Identity问题 Co-authored-by: tang-haojie<tanghaojie1@huawei.com> # message auto-generated for no-merge-commit merge: !5322 merge fix/while-subgraph-rw-conflict into develop fix: 修复while子图内Const到ref算子读写冲突漏插Identity问题 Created-by: tang-haojie Commit-by: tang-haojie Merged-by: cann-robot Description: # Pull Request ## 描述 修复 while 子图内语义级内存读写冲突漏插 Identity 的问题。 GraphOptimize::HandleMemoryRWConflict 原先对 while 子图内节点整体跳过(while 子图因循环依赖不做 RW 类型标注),导致 body/cond 内 Const -> ref 算子(kReadOnlyConst × kWriteable = INSERT_IDENTITY)等语义级读写冲突无人处理——SubgraphPass 只覆盖子图边界结构隔离(Data/NetOutput/While 输入侧),HcclMemcpyPass 只认 _input_mutable 算子。while 循环下 Const 被覆写后不会恢复(常量节点不每轮重新执行),后续迭代读到污染数据。 本次变更:将 while 子图的过滤从“整体跳过”收窄为“跳过 Identity 拆分/删除重排,保留冲突矩阵插入”: 1. while 子图内跳过 SplitIdentity/RemoveNoUseIdentity,防止破坏 SubgraphPass 已建立的结构隔离(如 while body 的 input_Memcpy/output_Memcpy,这些节点无 CANNOT_BE_DELETED 保护) 2. 保留 InsertIdentityAsNeeded 矩阵插入,补上 while 子图内 Const→ref、Const/ref 输出→ScopeWrite 类语义级冲突的隔离;矩阵自带 _skip_rw_conflict/CANNOT_BE_DELETED 双豁免,与 HcclMemcpyPass/SubgraphPass 不重复插入 3. 循环变量边(Data 出边/NetOutput 入边)仍由通用子图边界过滤保护,地址轮转不受影响 4. 同步更新 docs/zh/design/features/memory_conflict.md 架构文档 ## 变更类型 - [x] 🐛 Bug 修复 ## 关联的Issue 无 ## 如何测试 1. UT:tests/ge/ut/ge/graph/optimize/mem_rw_conflict_optimize_unittest.cc 新增 3 个用例 - WhileBodyConstToRef_InsertIdentity:while body 内 Const→Assign(ref) 插入 Identity 且带 CANNOT_BE_DELETED - WhileBodyDataToRef_NotInsertIdentity:while body 内 Data→ref 不重复插入 - WhileBodyExistIdentity_NotSplitNotRemove:while body 内已有 Identity(多消费者)不被拆分/删除/直连重排 2. 回归:ut_libge_multiparts_utest 全量 3163 用例通过;同 suite 24 用例通过;pre-commit 全部 Passed ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无 See merge request: cann/ge!5322 | 20 天前 | |
【PR】: 新增中英文跳转链接 Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !4750 merge develop into develop 【PR】: 新增中英文跳转链接 Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: # Pull Request ## 描述 RAEDME以及一级文件夹根目录添加中英文跳转链接。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 不涉及 ## 如何测试 根据最新资料进行测试 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4750 | 1 个月前 | |
【PR】: 新增中英文跳转链接 Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !4750 merge develop into develop 【PR】: 新增中英文跳转链接 Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: # Pull Request ## 描述 RAEDME以及一级文件夹根目录添加中英文跳转链接。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 不涉及 ## 如何测试 根据最新资料进行测试 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4750 | 1 个月前 |
项目文档
简体中文 | English
目录结构
└── zh
├── api/ # API参考文档
├── contributions/ # 开发规范与指南
├── design/ # 设计文档
├── figures/ # 图片资源
├── user_guides/ # 用户指南
├── build.md # 源码构建
└── quick_install.md # 环境部署