GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【feat】: add acl external api skills Co-authored-by: tang-haojie<tanghaojie1@huawei.com> # message auto-generated for no-merge-commit merge: !4308 merge develop into develop 【feat】: add acl external api skills Created-by: tang-haojie Commit-by: tang-haojie Merged-by: cann-robot Description: # Pull Request ## 描述 新增acl对外接口skills,辅助agent方案分析和需求开发 ## 变更类型 请选择本次引入的变更类型: <!-- [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!4308 | 27 天前 | |
fix: 修复代码提交模板问题&&拼写错误问题 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !3828 merge dev-pull0702 into develop fix: 修复代码提交模板问题&&拼写错误问题 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 修复代码提交模板问题&&拼写错误问题 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的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!3828 | 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 个月前 | |
【Revert】【PR】: Revert jit调度和切图解耦,开启自动融合便走jit执行,SliceSchedule只控制是否切图 Co-authored-by: chengyutao3<chengyutao3@huawei.com> # message auto-generated for no-merge-commit merge: !4524 merge develop into develop 【Revert】【PR】: Revert jit调度和切图解耦,开启自动融合便走jit执行,SliceSchedule只控制是否切图 Created-by: chengyutao3 Commit-by: chengyutao3 Merged-by: cann-robot Description: # Pull Request ## 描述 回退"整图 JIT"特性(对应提交 c165ea09a:jit 调度与切图解耦、开启自动融合即走 JIT 执行),恢复原有行为:**仅当同时开启自动融合(autofuse)与切片调度(slice schedule)时才走 JIT 执行路径**,否则图回退到传统编译/加载路径。 主要变更: 1. 恢复 UserGraphsManager::ShouldUseSliceSchedule() 及 slice_schedule_unsupported_set_ 黑名单机制,AddGraph/BuildGraph/RunGraphAsync/CompileGraph/LoadGraph/RemoveGraph 等分发入口的判断由 EnableAutoFuse() 改回 ShouldUseSliceSchedule(),不支持切图调度的图回退传统模式。 2. 移除 UserGraph::slice_supported 字段及 ExecutionOrder::AddNewSlice() 中的整图模式分支(sliced_graph = graph; remaining_graph = nullptr),切图逻辑恢复为"节点全部可推断则整图不切、否则二分切图"。 3. SetGraphConstMemoryBase、UpdateGraphFeatureMemoryBase、SetGraphFixedFeatureMemoryBaseWithType、UpdateGraphRefreshableFeatureMemoryBase 四个内存类接口的守卫由 EnableAutoFuse() 改回 EnableSliceSchedule(),报错文案由 "JIT executor" 恢复为 "slice scheduler"。 4. 删除 option_utils.{h,cc} 中新增的 EnableAutoFuse() 开关。 5. 测试适配:autofuse_canfuse_test.cc 由 CompileGraph + GetJitCompiledGraph()(取 JIT 编译副本断言)恢复为 BuildGraph + 原图断言;execution_order_unittest、jit_executor_unittest、user_graph_manager_unittest、ge_api_v2_unittest 等同步回退;share_graph.cc 中 BuildStaticTwoReduceNodeGraph 的 shape 由 {2,2,16} 恢复为 {2,2,2}。 ## 变更类型 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动)—— 回退已合入的"整图 JIT"特性 - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 编译并运行 JIT 执行相关单测:tests/ge/ut/ge/jit_execution/ 下的 execution_order_unittest、jit_executor_unittest、user_graph_manager_unittest,以及 tests/ge/ut/ge/session_v2/ge_api_v2_unittest.cc 中的 SliceSchedule_UnsupportedPaths 用例,确认全部通过。 2. 编译并运行 autofuse 场景测试 tests/ge/st/testcase/autofuse/autofuse_canfuse_test.cc(BuildGraph 流程),确认融合结果断言通过。 3. 功能验证:仅设置 --enable_autofuse=true(未开启 experimental_enable_jit_executor_v2)时,确认图走传统编译路径而非 JIT 整图执行;同时开启两者时确认仍走切片调度 JIT 路径,内存基址类接口(SetGraphConstMemoryBase 等)返回 UNSUPPORTED 且日志文案为 "does not support the slice scheduler currently"。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 建议标题使用 revert: 回退整图JIT执行特性(本次为回退提交,未采用 git revert 自动生成信息,而是手动反向修改,改动净效果为 −219/+183 行)。 - 涉及代码路径较多(API 层、JIT 执行器、切图调度、测试),建议合入前完整跑一遍 tests/ge/ut 与 autofuse ST 用例。 See merge request: cann/ge!4524 | 14 天前 | |
【bugfix】: 删除打印二进制的乱码 Co-authored-by: lidaoming1<lidaoming1@huawei.com> # message auto-generated for no-merge-commit merge: !4475 merge fix/remove-binary-tiling-data-log into develop 【bugfix】: 删除打印二进制的乱码 Created-by: lidaoming1 Commit-by: lidaoming1 Merged-by: cann-robot Description: # Pull Request ## 描述 请清晰准确地描述本次 Pull Request 的意图和变更内容。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4475 | 17 天前 | |
fix: 统一USE_CXX11_ABI管理,移除分散的ABI宏定义 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !4408 merge dev-abi0817 into develop fix: 统一USE_CXX11_ABI管理,移除分散的ABI宏定义 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 统一USE_CXX11_ABI管理,将分散在各处的_GLIBCXX_USE_CXX11_ABI宏定义移除,改为在顶层CMakeLists.txt中统一管理。主要变更: 1. **CMakeLists.txt**: 在init_cann_project()后统一设置USE_CXX11_ABI默认值为0,简化ENABLE_BUILD_DEVICE逻辑 2. **build.sh**: USE_CXX11_ABI默认值从1改为0 3. **cmake/ge_intf_pub_linux.cmake**: 移除ge_intf_pub_base对intf_pub_base的链接和_GLIBCXX_USE_CXX11_ABI定义 4. **dflow/llm_datadist/v1/CMakeLists.txt**: 移除分散的add_definitions ABI设置 5. **dflow/udf/cmake/device/protobuf.cmake**: 删除不再需要的protobuf构建文件 6. **parser/parser/func_to_graph/CMakeLists.txt**: 移除-D_GLIBCXX_USE_CXX11_ABI=0 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 适配 https://gitcode.com/cann/ge/pull/4397 ## 如何测试 1. 执行 bash build.sh 验证构建正常 2. 检查各组件编译时ABI一致性 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 从上游PR #4397适配到当前分支。 See merge request: cann/ge!4408 | 19 天前 | |
【Revert】【PR】: Revert jit调度和切图解耦,开启自动融合便走jit执行,SliceSchedule只控制是否切图 Co-authored-by: chengyutao3<chengyutao3@huawei.com> # message auto-generated for no-merge-commit merge: !4524 merge develop into develop 【Revert】【PR】: Revert jit调度和切图解耦,开启自动融合便走jit执行,SliceSchedule只控制是否切图 Created-by: chengyutao3 Commit-by: chengyutao3 Merged-by: cann-robot Description: # Pull Request ## 描述 回退"整图 JIT"特性(对应提交 c165ea09a:jit 调度与切图解耦、开启自动融合即走 JIT 执行),恢复原有行为:**仅当同时开启自动融合(autofuse)与切片调度(slice schedule)时才走 JIT 执行路径**,否则图回退到传统编译/加载路径。 主要变更: 1. 恢复 UserGraphsManager::ShouldUseSliceSchedule() 及 slice_schedule_unsupported_set_ 黑名单机制,AddGraph/BuildGraph/RunGraphAsync/CompileGraph/LoadGraph/RemoveGraph 等分发入口的判断由 EnableAutoFuse() 改回 ShouldUseSliceSchedule(),不支持切图调度的图回退传统模式。 2. 移除 UserGraph::slice_supported 字段及 ExecutionOrder::AddNewSlice() 中的整图模式分支(sliced_graph = graph; remaining_graph = nullptr),切图逻辑恢复为"节点全部可推断则整图不切、否则二分切图"。 3. SetGraphConstMemoryBase、UpdateGraphFeatureMemoryBase、SetGraphFixedFeatureMemoryBaseWithType、UpdateGraphRefreshableFeatureMemoryBase 四个内存类接口的守卫由 EnableAutoFuse() 改回 EnableSliceSchedule(),报错文案由 "JIT executor" 恢复为 "slice scheduler"。 4. 删除 option_utils.{h,cc} 中新增的 EnableAutoFuse() 开关。 5. 测试适配:autofuse_canfuse_test.cc 由 CompileGraph + GetJitCompiledGraph()(取 JIT 编译副本断言)恢复为 BuildGraph + 原图断言;execution_order_unittest、jit_executor_unittest、user_graph_manager_unittest、ge_api_v2_unittest 等同步回退;share_graph.cc 中 BuildStaticTwoReduceNodeGraph 的 shape 由 {2,2,16} 恢复为 {2,2,2}。 ## 变更类型 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动)—— 回退已合入的"整图 JIT"特性 - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 编译并运行 JIT 执行相关单测:tests/ge/ut/ge/jit_execution/ 下的 execution_order_unittest、jit_executor_unittest、user_graph_manager_unittest,以及 tests/ge/ut/ge/session_v2/ge_api_v2_unittest.cc 中的 SliceSchedule_UnsupportedPaths 用例,确认全部通过。 2. 编译并运行 autofuse 场景测试 tests/ge/st/testcase/autofuse/autofuse_canfuse_test.cc(BuildGraph 流程),确认融合结果断言通过。 3. 功能验证:仅设置 --enable_autofuse=true(未开启 experimental_enable_jit_executor_v2)时,确认图走传统编译路径而非 JIT 整图执行;同时开启两者时确认仍走切片调度 JIT 路径,内存基址类接口(SetGraphConstMemoryBase 等)返回 UNSUPPORTED 且日志文案为 "does not support the slice scheduler currently"。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 建议标题使用 revert: 回退整图JIT执行特性(本次为回退提交,未采用 git revert 自动生成信息,而是手动反向修改,改动净效果为 −219/+183 行)。 - 涉及代码路径较多(API 层、JIT 执行器、切图调度、测试),建议合入前完整跑一遍 tests/ge/ut 与 autofuse ST 用例。 See merge request: cann/ge!4524 | 14 天前 | |
fix: 修复DFlowInitialize失败不回滚和DFlowFinalize中aclFinalize顺序错误 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !4473 merge fix/dflow-init-finalize-rollback-dev into develop fix: 修复DFlowInitialize失败不回滚和DFlowFinalize中aclFinalize顺序错误 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: # Pull Request ## 描述 修复 DFlowInitialize 和 DFlowFinalize 中存在的 4 个问题: 1. **初始化失败无回滚,资源泄漏**:DFlowInitialize 中间步骤失败时(如 PNE SO 加载失败),已初始化的 ACL、SessionManager 不会被清理。用户调 DFlowFinalize 时因 g_dflow_ge_initialized 仍为 false 直接返回,资源泄漏。 2. **aclFinalize 顺序错误(use-after-free)**:DFlowFinalize 中 aclFinalize 在 SessionManager Finalize 之前执行,而 SessionManager Finalize 会触发 GeSession 析构调用 DestroyRtContexts,此时 ACL 已释放,存在 use-after-free 风险。 3. **并发初始化竞态**:DFlowInitialize 无锁保护,并发调用会覆盖 g_dflow_session_manager 指针导致泄漏。 4. **重复 Finalize 不清理**:DFlowFinalize 检查 g_dflow_ge_initialized,初始化失败后该标志为 false,导致 Finalize 跳过清理。 ### 修复方案 - 提取 DFlowFinalizeImpl() 到匿名命名空间,包含完整清理逻辑(ACL finalize 在末尾) - DFlowInitialize 入口加 g_dflow_ge_release_mutex 锁,失败时调 DFlowFinalizeImpl() 自动回滚 - DFlowFinalize 去掉 g_dflow_ge_initialized 检查,改为无条件幂等清理 - aclFinalize 移到 DFlowFinalizeImpl 末尾,在 SessionManager/PNE 清理之后 ## 变更类型 - [x] 🐛 Bug 修复 ## 关联的Issue ## 如何测试 1. 编译 dflow UT target ut_libge_helper_utest 2. 运行 DFlowInitialize 相关测试用例 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 测试结果:10 个相关 UT 全部通过,包括验证回滚路径的 DFlowInitialize_pne_init_failed、验证 ACL 重复初始化兼容的 DFlowInitialize_acl_repeat_init、验证 ACL 失败的 DFlowInitialize_acl_init_failed。 See merge request: cann/ge!4473 | 17 天前 | |
modify error | 14 天前 | |
fix: fix GraphNodeSettedFormatPass remove transpose with perm data failed Co-authored-by: lushiming0<lushiming1@h-partners.com> # message auto-generated for no-merge-commit merge: !4478 merge lsmge_20260820 into develop fix: fix GraphNodeSettedFormatPass remove transpose with perm data failed Created-by: lushiming0 Commit-by: lushiming0 Merged-by: cann-robot Description: # Pull Request ## 描述 GraphNodeSettedFormatPass 中删除 transpose 节点时,如果 transpose 节点的 perm 输入是非 const 节点,则在 pass 中不删除。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 构图带 perm 输入是 data 的transpose 节点,配置算子 format 删除该节点。 2. 通过 debug 日志发现删除不成功。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4478 | 17 天前 | |
feat: run Python custom op infer_meta at compile time and RT2 Co-authored-by: lfz<220252399@seu.edu.cn> # message auto-generated for no-merge-commit merge: !4414 merge develop3 into develop feat: run Python custom op infer_meta at compile time and RT2 Created-by: lfz2812 Commit-by: lfz Merged-by: cann-robot Description: # Pull Request ## 描述 在 Python 自定义算子原型注册、Bridge、Adapter 和 canonical IR 链路的基础上,接通 Python infer_meta 回调,使注册的 Python 原型可以参与编译期和 RT2 动态 Shape 推导。 本次主要包含: 1. 接通 Python infer_meta 回调: - 将 register_op 装饰函数作为 Python infer_meta 函数使用。 - 根据 canonical IR 组装 required、optional、dynamic 输入。 - 根据属性 IR 类型读取运行时属性。 - 将输入转换为 TensorDesc,将属性转换为 Python 参数。 - 支持 required、optional、dynamic 输入和 required、dynamic 输出。 - 支持多输出和动态输出实例数量校验。 - 校验 Python 返回值类型、结构和输出数量。 2. 新增 InferShape native context: - 提供输入 shape 和 data type 读取能力。 - 提供动态输入实例数量查询。 - 提供运行时属性读取能力。 - 提供动态输出实例数量查询。 - 提供输出 shape 写回能力。 - callback 结束后使 borrowed context 及其派生对象失效。 3. 接通编译期 Meta 推导: - 在 Graph Metadef 编译期识别 CustomOpInferMetaProvider。 - 每个算子节点只调用一次 Python infer_meta。 - 推导成功后统一更新输出 shape、data type 和 origin data type。 - 使用临时 OpDesc 承载推导结果,所有校验成功后再提交到原始 OpDesc。 - 任意推导、返回值或格式转换失败时,不提交部分输出结果。 4. 接通 RT2 动态 Shape 推导: - RT2 的 custom op shape kernel 优先复用 infer_meta 回调。 - Python callback 读取当前运行时输入元信息和属性。 - 运行期只更新输出 shape,已编译的 data type 不被覆盖。 - 保留普通 C++ custom op 的 ShapeInferOp fallback 路径。 5. 扩展 Bridge、Adapter 和注册结构: - 扩展 Bridge C ABI,传递 Python infer_meta callback。 - 扩展 Python custom op Adapter 的 infer_meta 能力。 - 支持 Python proto-only、Python proto + impl 和 infer-only 场景。 - 保持现有 Python execute、schema-bound execute 和 legacy execute(ctx) 行为。 - 保持 callback、holder、runtime registry 和卸载生命周期管理方式不变。 6. 补充测试和设计说明: - 补充 Python infer_meta 参数组装、属性读取、返回值校验和动态输出测试。 - 补充 InferShapeContext native binding 测试。 - 补充 C++ Adapter、Bridge callback 和 infer-only adapter 测试。 - 补充 Graph Metadef 编译期 shape/dtype/origin dtype 回写及失败原子性测试。 - 补充 RT2 Python infer_meta 动态 Shape ST。 - 同步更新中英文 Python 自定义算子设计文档。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 建议执行: bash cmake --build build_ut \ --target install_ge_py_for_tests \ ut_exe_graph \ ut_libge_multiparts_utest \ ut_fast_runtime2_test \ -j4 python3 -m pytest \ tests/ge/ut/ge/graph/pyge_tests/python_custom_op_infer_meta_test.py \ -q ctest --test-dir build_ut \ -R 'ut_exe_graph|ut_libge_multiparts_utest|ut_fast_runtime2_test' \ --output-on-failure cmake --build build_st --target graph_engine_test -j4 ctest --test-dir build_st \ -R graph_engine_test \ --output-on-failure git diff --check ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 本次仅接通 Python infer_meta 的编译期和 RT2 动态 Shape 链路。 - 本次不新增公开 API,不修改 register_op API 文档,不修改 user_guides。 - 不支持 data-dependent infer、InferShapeRange、format inference、symbolic inference 和 shape rule generation。 - 不修改 OM 格式、DavinciModel 接口或 RT2 到 V1 的边界数据。 - 不修改 build_fwk.sh 等公共构建脚本。 - 保持 Python native、Bridge 和 Adapter 按同一 ABI 版本整体构建和替换。 See merge request: cann/ge!4414 | 17 天前 | |
feat: run Python custom op infer_meta at compile time and RT2 Co-authored-by: lfz<220252399@seu.edu.cn> # message auto-generated for no-merge-commit merge: !4414 merge develop3 into develop feat: run Python custom op infer_meta at compile time and RT2 Created-by: lfz2812 Commit-by: lfz Merged-by: cann-robot Description: # Pull Request ## 描述 在 Python 自定义算子原型注册、Bridge、Adapter 和 canonical IR 链路的基础上,接通 Python infer_meta 回调,使注册的 Python 原型可以参与编译期和 RT2 动态 Shape 推导。 本次主要包含: 1. 接通 Python infer_meta 回调: - 将 register_op 装饰函数作为 Python infer_meta 函数使用。 - 根据 canonical IR 组装 required、optional、dynamic 输入。 - 根据属性 IR 类型读取运行时属性。 - 将输入转换为 TensorDesc,将属性转换为 Python 参数。 - 支持 required、optional、dynamic 输入和 required、dynamic 输出。 - 支持多输出和动态输出实例数量校验。 - 校验 Python 返回值类型、结构和输出数量。 2. 新增 InferShape native context: - 提供输入 shape 和 data type 读取能力。 - 提供动态输入实例数量查询。 - 提供运行时属性读取能力。 - 提供动态输出实例数量查询。 - 提供输出 shape 写回能力。 - callback 结束后使 borrowed context 及其派生对象失效。 3. 接通编译期 Meta 推导: - 在 Graph Metadef 编译期识别 CustomOpInferMetaProvider。 - 每个算子节点只调用一次 Python infer_meta。 - 推导成功后统一更新输出 shape、data type 和 origin data type。 - 使用临时 OpDesc 承载推导结果,所有校验成功后再提交到原始 OpDesc。 - 任意推导、返回值或格式转换失败时,不提交部分输出结果。 4. 接通 RT2 动态 Shape 推导: - RT2 的 custom op shape kernel 优先复用 infer_meta 回调。 - Python callback 读取当前运行时输入元信息和属性。 - 运行期只更新输出 shape,已编译的 data type 不被覆盖。 - 保留普通 C++ custom op 的 ShapeInferOp fallback 路径。 5. 扩展 Bridge、Adapter 和注册结构: - 扩展 Bridge C ABI,传递 Python infer_meta callback。 - 扩展 Python custom op Adapter 的 infer_meta 能力。 - 支持 Python proto-only、Python proto + impl 和 infer-only 场景。 - 保持现有 Python execute、schema-bound execute 和 legacy execute(ctx) 行为。 - 保持 callback、holder、runtime registry 和卸载生命周期管理方式不变。 6. 补充测试和设计说明: - 补充 Python infer_meta 参数组装、属性读取、返回值校验和动态输出测试。 - 补充 InferShapeContext native binding 测试。 - 补充 C++ Adapter、Bridge callback 和 infer-only adapter 测试。 - 补充 Graph Metadef 编译期 shape/dtype/origin dtype 回写及失败原子性测试。 - 补充 RT2 Python infer_meta 动态 Shape ST。 - 同步更新中英文 Python 自定义算子设计文档。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 建议执行: bash cmake --build build_ut \ --target install_ge_py_for_tests \ ut_exe_graph \ ut_libge_multiparts_utest \ ut_fast_runtime2_test \ -j4 python3 -m pytest \ tests/ge/ut/ge/graph/pyge_tests/python_custom_op_infer_meta_test.py \ -q ctest --test-dir build_ut \ -R 'ut_exe_graph|ut_libge_multiparts_utest|ut_fast_runtime2_test' \ --output-on-failure cmake --build build_st --target graph_engine_test -j4 ctest --test-dir build_st \ -R graph_engine_test \ --output-on-failure git diff --check ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 本次仅接通 Python infer_meta 的编译期和 RT2 动态 Shape 链路。 - 本次不新增公开 API,不修改 register_op API 文档,不修改 user_guides。 - 不支持 data-dependent infer、InferShapeRange、format inference、symbolic inference 和 shape rule generation。 - 不修改 OM 格式、DavinciModel 接口或 RT2 到 V1 的边界数据。 - 不修改 build_fwk.sh 等公共构建脚本。 - 保持 Python native、Bridge 和 Adapter 按同一 ABI 版本整体构建和替换。 See merge request: cann/ge!4414 | 17 天前 | |
fix: 增加 ONNX 算子 IO 名称解析失败校验和日志(#503) Co-authored-by: @SeasonChu<zhuxincheng2@huawei.com> # message auto-generated for no-merge-commit merge: !4449 merge issue503fix into develop fix: 增加 ONNX 算子 IO 名称解析失败校验和日志(#503) Created-by: SeasonChu Commit-by: @SeasonChu Merged-by: cann-robot Description: # Pull Request ## 描述 ONNX 模型解析在 SetOperatorInputs 阶段根据输入、输出索引解析 IO 名称并完成算子连边。原流程未显式校验解析结果;当索引无法对应有效 IO 名称时,错误信息不足,难以定位具体的张量和算子。 本次变更: - 提前获取源算子、目的算子的名称、类型及对应 IO 名称; - 在源输出名或目的输入名为空时,输出包含张量名、算子名称/类型、IO 索引及解析结果的错误信息; - 异常场景返回 PARAM_INVALID,避免继续使用空 IO 名称调用 SetInput; - 正常场景继续使用已解析的 IO 名称完成连边,原有处理逻辑不变。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 关联 #503。 ## 如何测试 1. 解析 IO 名称有效的 ONNX 模型,确认算子输入连边行为保持不变。 2. 构造源输出或目的输入索引无法解析出 IO 名称的场景,确认解析返回 PARAM_INVALID。 3. 检查错误日志,确认包含张量名、源/目的算子名称与类型、IO 索引及解析出的 IO 名称。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [x] 本次变更不涉及对外接口或架构,无需更新相关文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次 PR 仅修改 parser/parser/onnx/onnx_parser.cc 的异常校验和诊断信息,未新增测试用例。 See merge request: cann/ge!4449 | 19 天前 | |
【refactor】: move amct headers to pkg_inc dir Co-authored-by: kantao1<kantao1@huawei.com> # message auto-generated for no-merge-commit merge: !3863 merge develop into develop 【refactor】: move amct headers to pkg_inc dir Created-by: kantao1 Commit-by: kantao1 Merged-by: cann-robot Description: # Pull Request ## 描述 将与 amct 相关的两个头文件移到 pkg_inc/ 目录下,方便统一管控。 上一单合入PR是:https://gitcode.com/cann/ge/pull/3317 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.不影响 toolkit 包内头文件位置 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3863 | 2 个月前 | |
feat: run Python custom op infer_meta at compile time and RT2 Co-authored-by: lfz<220252399@seu.edu.cn> # message auto-generated for no-merge-commit merge: !4414 merge develop3 into develop feat: run Python custom op infer_meta at compile time and RT2 Created-by: lfz2812 Commit-by: lfz Merged-by: cann-robot Description: # Pull Request ## 描述 在 Python 自定义算子原型注册、Bridge、Adapter 和 canonical IR 链路的基础上,接通 Python infer_meta 回调,使注册的 Python 原型可以参与编译期和 RT2 动态 Shape 推导。 本次主要包含: 1. 接通 Python infer_meta 回调: - 将 register_op 装饰函数作为 Python infer_meta 函数使用。 - 根据 canonical IR 组装 required、optional、dynamic 输入。 - 根据属性 IR 类型读取运行时属性。 - 将输入转换为 TensorDesc,将属性转换为 Python 参数。 - 支持 required、optional、dynamic 输入和 required、dynamic 输出。 - 支持多输出和动态输出实例数量校验。 - 校验 Python 返回值类型、结构和输出数量。 2. 新增 InferShape native context: - 提供输入 shape 和 data type 读取能力。 - 提供动态输入实例数量查询。 - 提供运行时属性读取能力。 - 提供动态输出实例数量查询。 - 提供输出 shape 写回能力。 - callback 结束后使 borrowed context 及其派生对象失效。 3. 接通编译期 Meta 推导: - 在 Graph Metadef 编译期识别 CustomOpInferMetaProvider。 - 每个算子节点只调用一次 Python infer_meta。 - 推导成功后统一更新输出 shape、data type 和 origin data type。 - 使用临时 OpDesc 承载推导结果,所有校验成功后再提交到原始 OpDesc。 - 任意推导、返回值或格式转换失败时,不提交部分输出结果。 4. 接通 RT2 动态 Shape 推导: - RT2 的 custom op shape kernel 优先复用 infer_meta 回调。 - Python callback 读取当前运行时输入元信息和属性。 - 运行期只更新输出 shape,已编译的 data type 不被覆盖。 - 保留普通 C++ custom op 的 ShapeInferOp fallback 路径。 5. 扩展 Bridge、Adapter 和注册结构: - 扩展 Bridge C ABI,传递 Python infer_meta callback。 - 扩展 Python custom op Adapter 的 infer_meta 能力。 - 支持 Python proto-only、Python proto + impl 和 infer-only 场景。 - 保持现有 Python execute、schema-bound execute 和 legacy execute(ctx) 行为。 - 保持 callback、holder、runtime registry 和卸载生命周期管理方式不变。 6. 补充测试和设计说明: - 补充 Python infer_meta 参数组装、属性读取、返回值校验和动态输出测试。 - 补充 InferShapeContext native binding 测试。 - 补充 C++ Adapter、Bridge callback 和 infer-only adapter 测试。 - 补充 Graph Metadef 编译期 shape/dtype/origin dtype 回写及失败原子性测试。 - 补充 RT2 Python infer_meta 动态 Shape ST。 - 同步更新中英文 Python 自定义算子设计文档。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 建议执行: bash cmake --build build_ut \ --target install_ge_py_for_tests \ ut_exe_graph \ ut_libge_multiparts_utest \ ut_fast_runtime2_test \ -j4 python3 -m pytest \ tests/ge/ut/ge/graph/pyge_tests/python_custom_op_infer_meta_test.py \ -q ctest --test-dir build_ut \ -R 'ut_exe_graph|ut_libge_multiparts_utest|ut_fast_runtime2_test' \ --output-on-failure cmake --build build_st --target graph_engine_test -j4 ctest --test-dir build_st \ -R graph_engine_test \ --output-on-failure git diff --check ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 本次仅接通 Python infer_meta 的编译期和 RT2 动态 Shape 链路。 - 本次不新增公开 API,不修改 register_op API 文档,不修改 user_guides。 - 不支持 data-dependent infer、InferShapeRange、format inference、symbolic inference 和 shape rule generation。 - 不修改 OM 格式、DavinciModel 接口或 RT2 到 V1 的边界数据。 - 不修改 build_fwk.sh 等公共构建脚本。 - 保持 Python native、Bridge 和 Adapter 按同一 ABI 版本整体构建和替换。 See merge request: cann/ge!4414 | 17 天前 | |
【PR】: delete redundant code Co-authored-by: hd920483084<handong38@h-partners.com> # message auto-generated for no-merge-commit merge: !4431 merge develop into develop 【PR】: delete redundant code Created-by: hd920483084 Commit-by: hd920483084 Merged-by: cann-robot Description: # Pull Request ## 描述 删除fe build冗余脚本 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4431 | 19 天前 | |
【Revert】【PR】: Revert jit调度和切图解耦,开启自动融合便走jit执行,SliceSchedule只控制是否切图 Co-authored-by: chengyutao3<chengyutao3@huawei.com> # message auto-generated for no-merge-commit merge: !4524 merge develop into develop 【Revert】【PR】: Revert jit调度和切图解耦,开启自动融合便走jit执行,SliceSchedule只控制是否切图 Created-by: chengyutao3 Commit-by: chengyutao3 Merged-by: cann-robot Description: # Pull Request ## 描述 回退"整图 JIT"特性(对应提交 c165ea09a:jit 调度与切图解耦、开启自动融合即走 JIT 执行),恢复原有行为:**仅当同时开启自动融合(autofuse)与切片调度(slice schedule)时才走 JIT 执行路径**,否则图回退到传统编译/加载路径。 主要变更: 1. 恢复 UserGraphsManager::ShouldUseSliceSchedule() 及 slice_schedule_unsupported_set_ 黑名单机制,AddGraph/BuildGraph/RunGraphAsync/CompileGraph/LoadGraph/RemoveGraph 等分发入口的判断由 EnableAutoFuse() 改回 ShouldUseSliceSchedule(),不支持切图调度的图回退传统模式。 2. 移除 UserGraph::slice_supported 字段及 ExecutionOrder::AddNewSlice() 中的整图模式分支(sliced_graph = graph; remaining_graph = nullptr),切图逻辑恢复为"节点全部可推断则整图不切、否则二分切图"。 3. SetGraphConstMemoryBase、UpdateGraphFeatureMemoryBase、SetGraphFixedFeatureMemoryBaseWithType、UpdateGraphRefreshableFeatureMemoryBase 四个内存类接口的守卫由 EnableAutoFuse() 改回 EnableSliceSchedule(),报错文案由 "JIT executor" 恢复为 "slice scheduler"。 4. 删除 option_utils.{h,cc} 中新增的 EnableAutoFuse() 开关。 5. 测试适配:autofuse_canfuse_test.cc 由 CompileGraph + GetJitCompiledGraph()(取 JIT 编译副本断言)恢复为 BuildGraph + 原图断言;execution_order_unittest、jit_executor_unittest、user_graph_manager_unittest、ge_api_v2_unittest 等同步回退;share_graph.cc 中 BuildStaticTwoReduceNodeGraph 的 shape 由 {2,2,16} 恢复为 {2,2,2}。 ## 变更类型 <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动)—— 回退已合入的"整图 JIT"特性 - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 编译并运行 JIT 执行相关单测:tests/ge/ut/ge/jit_execution/ 下的 execution_order_unittest、jit_executor_unittest、user_graph_manager_unittest,以及 tests/ge/ut/ge/session_v2/ge_api_v2_unittest.cc 中的 SliceSchedule_UnsupportedPaths 用例,确认全部通过。 2. 编译并运行 autofuse 场景测试 tests/ge/st/testcase/autofuse/autofuse_canfuse_test.cc(BuildGraph 流程),确认融合结果断言通过。 3. 功能验证:仅设置 --enable_autofuse=true(未开启 experimental_enable_jit_executor_v2)时,确认图走传统编译路径而非 JIT 整图执行;同时开启两者时确认仍走切片调度 JIT 路径,内存基址类接口(SetGraphConstMemoryBase 等)返回 UNSUPPORTED 且日志文案为 "does not support the slice scheduler currently"。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 建议标题使用 revert: 回退整图JIT执行特性(本次为回退提交,未采用 git revert 自动生成信息,而是手动反向修改,改动净效果为 −219/+183 行)。 - 涉及代码路径较多(API 层、JIT 执行器、切图调度、测试),建议合入前完整跑一遍 tests/ge/ut 与 autofuse ST 用例。 See merge request: cann/ge!4524 | 14 天前 | |
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: 抽取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 个月前 | |
fix: OAT检查适配仅检查修改文件 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !3984 merge dev-precommit0713 into develop fix: OAT检查适配仅检查修改文件 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 OAT检查适配仅检查修改文件 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的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!3984 | 1 个月前 | |
【feat】: add acl external api skills Co-authored-by: tang-haojie<tanghaojie1@huawei.com> # message auto-generated for no-merge-commit merge: !4308 merge develop into develop 【feat】: add acl external api skills Created-by: tang-haojie Commit-by: tang-haojie Merged-by: cann-robot Description: # Pull Request ## 描述 新增acl对外接口skills,辅助agent方案分析和需求开发 ## 变更类型 请选择本次引入的变更类型: <!-- [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!4308 | 27 天前 | |
提交英文资料 | 2 个月前 | |
fix: 统一USE_CXX11_ABI管理,移除分散的ABI宏定义 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !4408 merge dev-abi0817 into develop fix: 统一USE_CXX11_ABI管理,移除分散的ABI宏定义 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 统一USE_CXX11_ABI管理,将分散在各处的_GLIBCXX_USE_CXX11_ABI宏定义移除,改为在顶层CMakeLists.txt中统一管理。主要变更: 1. **CMakeLists.txt**: 在init_cann_project()后统一设置USE_CXX11_ABI默认值为0,简化ENABLE_BUILD_DEVICE逻辑 2. **build.sh**: USE_CXX11_ABI默认值从1改为0 3. **cmake/ge_intf_pub_linux.cmake**: 移除ge_intf_pub_base对intf_pub_base的链接和_GLIBCXX_USE_CXX11_ABI定义 4. **dflow/llm_datadist/v1/CMakeLists.txt**: 移除分散的add_definitions ABI设置 5. **dflow/udf/cmake/device/protobuf.cmake**: 删除不再需要的protobuf构建文件 6. **parser/parser/func_to_graph/CMakeLists.txt**: 移除-D_GLIBCXX_USE_CXX11_ABI=0 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 适配 https://gitcode.com/cann/ge/pull/4397 ## 如何测试 1. 执行 bash build.sh 验证构建正常 2. 检查各组件编译时ABI一致性 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 从上游PR #4397适配到当前分支。 See merge request: cann/ge!4408 | 19 天前 | |
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 个月前 | |
提交英文文档 | 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 个月前 | |
【PR】: 更新README,新增MsLite使用GE后端 Co-authored-by: yangyongqiang0606<yangyongqiang7@hisilicon.com> # message auto-generated for no-merge-commit merge: !4077 merge develop into develop 【PR】: 更新README,新增MsLite使用GE后端 Created-by: yangyongqiang0606 Commit-by: yangyongqiang0606 Merged-by: cann-robot Description: # Pull Request ## 描述 更新README,新增MS使用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!4077 | 1 个月前 | |
【PR】: 更新README,新增MsLite使用GE后端 Co-authored-by: yangyongqiang0606<yangyongqiang7@hisilicon.com> # message auto-generated for no-merge-commit merge: !4077 merge develop into develop 【PR】: 更新README,新增MsLite使用GE后端 Created-by: yangyongqiang0606 Commit-by: yangyongqiang0606 Merged-by: cann-robot Description: # Pull Request ## 描述 更新README,新增MS使用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!4077 | 1 个月前 | |
【feat】: upgrade json to v3.12.0 Co-authored-by: kantao1<kantao1@huawei.com> # message auto-generated for no-merge-commit merge: !4283 merge upgrade_json into develop 【feat】: upgrade json to v3.12.0 Created-by: kantao1 Commit-by: kantao1 Merged-by: cann-robot Description: # Pull Request ## 描述 1. 将 json 升级到 v3.12.0 以及修改相关的文档、脚本 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. DT 验证即可 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4283 | 28 天前 | |
【feat】: upgrade json to v3.12.0 Co-authored-by: kantao1<kantao1@huawei.com> # message auto-generated for no-merge-commit merge: !4283 merge upgrade_json into develop 【feat】: upgrade json to v3.12.0 Created-by: kantao1 Commit-by: kantao1 Merged-by: cann-robot Description: # Pull Request ## 描述 1. 将 json 升级到 v3.12.0 以及修改相关的文档、脚本 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. DT 验证即可 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4283 | 28 天前 | |
【feat】: upgrade json to v3.12.0 Co-authored-by: kantao1<kantao1@huawei.com> # message auto-generated for no-merge-commit merge: !4283 merge upgrade_json into develop 【feat】: upgrade json to v3.12.0 Created-by: kantao1 Commit-by: kantao1 Merged-by: cann-robot Description: # Pull Request ## 描述 1. 将 json 升级到 v3.12.0 以及修改相关的文档、脚本 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. DT 验证即可 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4283 | 28 天前 | |
【feat】: upgrade json to v3.12.0 Co-authored-by: kantao1<kantao1@huawei.com> # message auto-generated for no-merge-commit merge: !4283 merge upgrade_json into develop 【feat】: upgrade json to v3.12.0 Created-by: kantao1 Commit-by: kantao1 Merged-by: cann-robot Description: # Pull Request ## 描述 1. 将 json 升级到 v3.12.0 以及修改相关的文档、脚本 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. DT 验证即可 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4283 | 28 天前 | |
refactor: dflow session/compiler/executor 目录结构调整到 runner 平级目录 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !4263 merge dflow into develop refactor: dflow session/compiler/executor 目录结构调整到 runner 平级目录 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: ## 描述 将 dflow 的 session、compiler、executor 三个目录统一移入 dflow/runner/ 下,使 session 与 compiler、executor 处于平行层级。编译产物 libdflow_runner.so 输出到 dflow/runner/ 目录,目录结构与编译结果对应。 **调整前**: dflow/ ├── compiler/ ← 编译层(含 session 子目录) │ ├── CMakeLists.txt ← dflow_runner 编译定义 │ ├── data_flow_graph/ │ ├── model/ │ ├── pne/ │ └── session/ ← session 原在此 ├── executor/ ← 执行层 ├── deployer/ ├── ... **调整后**: dflow/ ├── runner/ ← 新建,dflow_runner 编译入口 │ ├── CMakeLists.txt ← dflow_runner 编译定义 │ ├── compiler/ ← 编译层 │ ├── executor/ ← 执行层 │ └── session/ ← session 层(与 compiler/executor 平级) ├── deployer/ ├── ... ## 变更类型 - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 ## 关联的Issue ## 如何测试 1. 增量编译 dflow_runner 目标,确认 libdflow_runner.so 输出到 dflow/runner/ 目录 2. 确认所有 #include 路径正确解析 3. 确认 pre-commit 检查全部通过 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 涉及 112 个文件变更(目录 rename + include 路径更新) - 编译验证通过:libdflow_runner.so 正确输出到 cmake-build-gcov/dflow/runner/libdflow_runner.so - 文档同步更新:docs/zh/design/modules/dflow/dflow.md、docs/en/design/modules/dflow/dflow.md、blacklist.txt See merge request: cann/ge!4263 | 1 个月前 | |
fix: 统一USE_CXX11_ABI管理,移除分散的ABI宏定义 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !4408 merge dev-abi0817 into develop fix: 统一USE_CXX11_ABI管理,移除分散的ABI宏定义 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 统一USE_CXX11_ABI管理,将分散在各处的_GLIBCXX_USE_CXX11_ABI宏定义移除,改为在顶层CMakeLists.txt中统一管理。主要变更: 1. **CMakeLists.txt**: 在init_cann_project()后统一设置USE_CXX11_ABI默认值为0,简化ENABLE_BUILD_DEVICE逻辑 2. **build.sh**: USE_CXX11_ABI默认值从1改为0 3. **cmake/ge_intf_pub_linux.cmake**: 移除ge_intf_pub_base对intf_pub_base的链接和_GLIBCXX_USE_CXX11_ABI定义 4. **dflow/llm_datadist/v1/CMakeLists.txt**: 移除分散的add_definitions ABI设置 5. **dflow/udf/cmake/device/protobuf.cmake**: 删除不再需要的protobuf构建文件 6. **parser/parser/func_to_graph/CMakeLists.txt**: 移除-D_GLIBCXX_USE_CXX11_ABI=0 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 适配 https://gitcode.com/cann/ge/pull/4397 ## 如何测试 1. 执行 bash build.sh 验证构建正常 2. 检查各组件编译时ABI一致性 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 从上游PR #4397适配到当前分支。 See merge request: cann/ge!4408 | 19 天前 | |
Initial commit | 8 个月前 | |
【PR】: sync master to develop 20260723 Co-authored-by: Archerls<wuhuiyang3@huawei.com> Co-authored-by: jiang-mingming01<jiangmingming16@h-partners.com> Co-authored-by: Feiteng Zheng<zhengfeiteng1@h-partners.com> Co-authored-by: liangxuheng<741015122@qq.com> Co-authored-by: du-hua1024<duhua2@huawei.com> # message auto-generated for no-merge-commit merge: !4121 merge master into develop 【PR】: sync master to develop 20260723 Created-by: zhanj Commit-by: zhanj;zhengfeiteng;Feiteng Zheng;jiang-mingming01;Chang-an-HW;yangyongqiang0606;du-hua1024;liangxuheng;Archerls;jikai-tyler Merged-by: cann-robot Description: # Pull Request ## 描述 sync master to develop 20260723 ## 变更类型 请选择本次引入的变更类型: <!-- [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!4121 | 1 个月前 | |
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: update GE version to 9.2.0 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !4199 merge fix-ge-version-9.2.0 into develop fix: update GE version to 9.2.0 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: Updates the GE package versions and build dependencies to 9.2. See merge request: cann/ge!4199 | 1 个月前 |
GE(Graph Engine 图引擎)
🔥 Latest News
- [2026/03] 持续增强图优化能力,完善单元测试覆盖,修复多个边缘场景的编译问题;优化文档结构,提升开发者体验。
- [2026/02] 优化自动融合与广播场景支持,新增 BF16 数据类型支持;增强 HostCPU 引擎能力,优化 session 创建销毁锁机制;修复外置权重、线程加载等场景下的 bug;支持 Reduce 分核轴 Store 地址冲突惩罚,提升算子融合效果。
- [2026/01] GE 项目首次上线,开源图编译器和执行器,支持 PyTorch、TensorFlow 前端接入以及 ONNX、PB 模型格式解析与编译。
🚀 概述
GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。详见昇腾社区文档-图模式开发指南。

⚡️ 快速入门
若希望快速体验 GE 的工作方式及基本开发流程,可参考以下文档:
- 构建验证:介绍组件的完整构建、测试样例运行流程。
- 快速开始:以 ResNet50 模型为例,介绍如何使用 ATC 工具进行模型转换,并在昇腾 AI 处理器上执行推理。
- 快速开始-LLM:以 Qwen 模型为例,介绍如何使用 ATC 工具进行LLM模型转换,并实现LLM模型的加载、执行和获取执行结果等。
📚 文档
如需了解如何使用 GE 进行模型编译与执行,可参见图模式开发指南、技术文章等内容: GE 参考资料
如果希望深入了解 GE 的内部设计、架构机制与开发流程,可参考以下文档:
- GE 架构说明文档:介绍核心组件、执行流程、优化机制等内部原理。
- 贡献指南:说明如何提交 Issue、Pull Request 以及代码规范。
- AI Agent支持:介绍仓内默认使用的一些skills及使用agent辅助开发流程
🌐 生态集成
以下项目已集成 GE 作为推理或图模式后端:
- TorchAir:将 GE 接入 PyTorch 图模式。链接
- TFA(TensorFlow Adapter):将 GE 作为 TensorFlow 后端。链接
- JittorInfer:基于昇腾芯片的大模型 C++ 推理框架。链接
- Triton GE Backend:GE 的 Triton Inference Server 后端。链接
- MindSpore Lite: 将 GE 作为 MindSpore Lite 后端。 链接
说明: 上述列表为已知并对外公开的集成案例,并非完整清单。 若您正在使用 GE,欢迎通过 Issue 或 PR 补充,我们将持续更新相关信息。
📝 其他信息
📝 联系我们
