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 | 3 天前 | |
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 | 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 | 1 个月前 | |
feat: 增加 ONNX Plugin Python API 基础能力 Co-authored-by: gentle-knight<522025150054@smail.nju.edu.cn> # message auto-generated for no-merge-commit merge: !4353 merge feat/onnx-plugin-python-api-foundation into develop feat: 增加 ONNX Plugin Python API 基础能力 Created-by: gentle-knight Commit-by: gentle-knight Merged-by: cann-robot Description: # Pull Request ## 描述 新增 ONNX Plugin Python API 功能包 A,并修正 ATC 未知错误兜底文案。 业务背景:ONNX Plugin Python 化需要先提供稳定的 Python API、descriptor registry 和共享插件发现能力。ONNX Plugin 与 Python custom op 复用 ASCEND_CUSTOM_OPP_PATH,因此同一物理模块必须避免被不同入口重复执行。 主要变更: 1. 新增 ge.onnx_plugin API、只读 OnnxNode 和 callback-bound ge.graph.Operator。 2. 新增 descriptor registry,支持 opset 归一化、完整 origin type 展开和重复注册预检查。 3. 共享 plugin_loader 使用 canonical physical path 保证同一文件或 package 经相对路径、绝对路径、符号链接或 custom op/ONNX Plugin 不同入口发现时只执行一次,并在 import 失败时清理半初始化模块。新增测试覆盖同目录不同文件分别实现 custom op 与 ONNX Plugin,以及环境变量显式列出两个不同文件的场景。 4. 将 api/atc/main_impl.cc 中 E19999 兜底文案从 Inner Error 修正为 Internal Error,并在 ErrorManager 返回空字符串时输出该兜底文案。 本 PR 仅包含功能包 A,不包含 Native Bridge、ONNX Parser 注册、Parser C++ 代码、Parser UT/ST 或工作包 B 内容。 ## 变更类型 - [x] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 暂无。 ## 如何测试 1. 增量构建 ge_python_main_wheel 并刷新 install_ge_py_for_tests,构建通过。 2. 运行共享 loader 定向测试:原有 8 passed,新增不同文件 custom op/ONNX Plugin 场景 2 passed。 3. 运行其余 ONNX Plugin 功能包 A 定向测试:49 passed。 4. 增量编译 ut_libge_multiparts_utest 和 graph_engine_test,均通过。 5. 运行 ATC 空错误消息定向 UT:1 passed。 6. 运行 ATC 空错误消息定向 ST:1 passed。 7. api/atc/main_impl.cc 编译及 atc_static 生成通过;本地 atc_atc.bin 最终链接受现有 libascendalog.so 链接依赖缺失阻塞。 8. 对全部 PR 文件执行 pre-commit,所有 hooks 通过。 9. 执行 git diff --check upstream/develop...HEAD,检查通过。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已确认本次修改无需更新用户文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于 commit message 的格式、无效 commit 的合并等 ## 其他信息 - 目标分支:cann/ge:develop。 - 本 PR 保留共享 loader 的 canonical-path 单次加载语义,以保证复用 ASCEND_CUSTOM_OPP_PATH 时 custom op 与 ONNX Plugin 可以安全共存。 - 本 PR 不包含工作包 B。 - 建议评审顺序:公开 API、Operator handle/生命周期、registry 冲突语义、共享 loader 共存语义、Python UT。 See merge request: cann/ge!4353 | 11 小时前 | |
perf: 优化 OM2 模型加载内存使用,消除反序列化过程中的不必要拷贝 Co-authored-by: wuzheng-hw<wuzheng14@huawei.com> # message auto-generated for no-merge-commit merge: !4310 merge memfix into develop perf: 优化 OM2 模型加载内存使用,消除反序列化过程中的不必要拷贝 Created-by: wuzheng-hw Commit-by: wuzheng-hw Merged-by: cann-robot Description: # Pull Request ## 描述 优化 OM2 模型加载过程中的内存使用,通过将 Om2ConstantsData::weight_data 和 Om2KernelBinary::data 从 std::vector<uint8_t> 改为 ge::ReadonlyByteBuffer,消除反序列化过程中的不必要内存拷贝。 ### 主要优化点 1. **反序列化路径优化**:修改 DeserializeWeightEntry 和 DeserializeKernelEntry,直接使用 ExtractToMem 返回的 ReadonlyByteBuffer,避免通过 ExtractEntryToBytes 进行二次拷贝 2. **构建路径优化**:修改 BuildKernelBinaries 和 BuildConstantsData,使用非拥有指针(ConditionalDeleter{false})直接引用 GeModel 中的数据,避免 memcpy_s 拷贝 3. **删除冗余代码**:移除不再使用的 ExtractEntryToBytes 函数 ### 内存优化效果 - **优化前**:反序列化时存在 2-3 份 host 内存(ZIP 缓冲区 + ExtractToMem 缓冲区 + vector 拷贝) - **优化后**:反序列化时仅保留 1 份 host 内存(直接使用 ExtractToMem 返回的缓冲区) - **构建阶段**:消除 N 次 new[] + memcpy_s(N = kernel 数量 + 1 次 weight) ### 修改文件 - base/common/om2/om2_model_data.h: 修改数据结构定义 - runtime/om2/om2_model_executor.cc: 优化反序列化逻辑 - base/common/helper/om2_package_helper.cc: 优化构建逻辑 - base/common/helper/om2/om2_zip_saver.cc: 适配序列化接口 - 测试文件: 更新测试用例以适配新的数据结构 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 - [x] ⚡ 性能优化 ## 如何测试 1. 编译 GE 项目:make ge_common om2_executor 2. 运行单元测试:./ut_libge_common_utest --gtest_filter="Om2ModelDataTest.*:UtestGeRootModel.Om2ModelData*" 3. 验证所有测试通过(13/13) ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md) ## 其他信息 本次优化通过生命周期分析确认了 GeModel 在所有路径中都保证比 Om2ModelData 活得更久,因此可以安全使用非拥有指针避免不必要的内存拷贝。 See merge request: cann/ge!4310 | 11 小时前 | |
【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 | 4 天前 | |
feat: ReportFuse 补写 _datadump_original_op_names 和 _original_op_attrs_map 维测属性 Co-authored-by: qq_45842700<caodazhou@huawei.com> # message auto-generated for no-merge-commit merge: !4344 merge feature/report-fuse-datadump-attrs into develop feat: ReportFuse 补写 _datadump_original_op_names 和 _original_op_attrs_map 维测属性 Created-by: Dazhou_Cao Commit-by: qq_45842700 Merged-by: cann-robot Description: # Pull Request ## 描述 GraphBasedPass 手动调用 ReportFuse 上报融合结果时,_datadump_original_op_names、_datadump_original_op_types 和 _original_op_attrs_map 三个维测属性不会被写入,导致 datadump 维测链路断裂、融合来源追溯不完整。 本 PR 在 ReportFuse 的 MarkPassNameOnReplacementNodes 之后、RecordFusionStatistic 之前,新增 RecordDatadumpAttrsIdempotently,对 nodes_after_fuse 中每个节点幂等补写上述维测属性。幂等检查保证 3 参 SubgraphRewriter::Replace 路径不重复写入。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新 - [ ] ♻️ 重构 - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue cann/ge#512 ## 如何测试 1. 编译 graph_fuse_inspector_utils.cc 对应的 object 文件,确认编译通过 2. 运行 graph_fuse_inspector_utils_unittest 现有 UT 用例,确认无回归 3. 后续补充新增 UT:验证手动调 ReportFuse 后 _datadump_original_op_names 已写入、幂等性、纯删除场景 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签 - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 详细设计方案见 report_fuse_datadump_attrs.md ### 改动摘要 新增 RecordDatadumpAttrsIdempotently 函数(+23 行),在 ReportFuse 内部调用: 1. 用 AttrUtils::HasAttr 检查 _datadump_original_op_names 是否已存在,无则调用 RecordOriginalNames 补写 2. 用 TryGetExtAttr 检查 _original_op_attrs_map 是否已存在,无则调用 RecordOriginalOpAttrs 补写(保留 DUMP_GE_GRAPH 环境变量依赖) ### 各 Pass 类型维测属性写入情况(修复后) | 场景 | _datadump_original_op_names | _original_op_attrs_map | |---|---|---| | PatternBasedPass / DecomposePass | 由 InheritedOriginAttrAndOpName 写 | 不写(已有行为) | | GraphBasedPass + 3 参 Replace | 由 InheritedOriginAttrAndOpName 写,ReportFuse 幂等跳过 | 不写 | | GraphBasedPass + 手动 ReportFuse | **ReportFuse 写(修复)** | **ReportFuse 写(修复,需 DUMP_GE_GRAPH)** | See merge request: cann/ge!4344 | 11 小时前 | |
fix: 修复dflow模块在GCC 16下vector越界和未初始化问题 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !4364 merge dflow into develop fix: 修复dflow模块在GCC 16下vector越界和未初始化问题 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: ## 描述 修复 dflow 模块在 GCC 16(默认启用 _GLIBCXX_ASSERTIONS)下暴露的两处运行时 bug: 1. **link_req_handler.cpp**:SetUpdateLinkReqInfo 中遗漏了 update_link_client_infos_ 的 assign 初始化。该 vector 仅在构造函数中 reserve(只分配容量不改变 size),而同类的其他 vector(update_link_states_、update_link_requests_ 等)都做了 assign。导致 size 始终为 0,后续 update_link_client_infos_[cluster_index] 越界访问,GCC 16 下触发 __glibcxx_assert abort。 2. **flow_func_processor.cpp**:CachedBufferClear() 中多余的 cache_output_data_.clear() 破坏了构造函数建立的固定大小不变量。cache_output_data_ 在构造时按输出个数初始化大小,clear() 后 size 变为 0,suspend/recover 后 SetOutput 中 cache_output_data_[out_idx] 越界。移除该 clear() 调用,内层 vector 的 out_list.clear() 已足够清理数据。 3. **flow_func_processor_utest.cpp**:对应调整 schedule_when_suspend 用例的断言,验证内层 vector 被清空而非外层 empty()。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. 使用 GCC 16 (export CC=gcc-16 CXX=g++-16) 编译 dflow 的 UT/ST 测试目标 2. 运行 ut_built_in_flow_func、st_built_in_flow_func、ut_flow_func_executor、st_flow_func_executor 验证通过 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 See merge request: cann/ge!4364 | 11 小时前 | |
docs: 更新 AnnotatedArgs 地址刷新 Python 接口资料 Co-authored-by: shangdf<shangdongfang1@huawei.com> # message auto-generated for no-merge-commit merge: !4365 merge feature/annotated-args-python-docs-update into develop docs: 更新 AnnotatedArgs 地址刷新 Python 接口资料 Created-by: shangdf Commit-by: shangdf Merged-by: cann-robot Description: # Pull Request ## 描述 重新提交 PR 4316 合入后产生的 AnnotatedArgs 地址刷新 Python 接口资料更新。原提交 32e3c943d 已在旧源分支追加 revert,本 PR 基于最新 develop 重新提交,仅包含 13 个接口文档文件的更新。 变更内容: - 补充 AnnotatedArgsContext、AnnotatedKernelArgs、AnnotatedKernelLaunchInfo、WorkspaceAddr 等 Python 接口说明和示例。 - 更新 register_op_impl、get_declare_launch_args_ctx 等接口文档,统一参数、返回值和用法描述。 - 不包含 AnnotatedArgs 核心实现代码,也不包含 PR 4316 已合入的初始资料和样例。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue https://gitcode.com/cann/ge/issues/299 关联 PR:4316(已合入) ## 如何测试 1. 对本 PR 13 个变更文件运行 git diff --check,检查通过。 2. 对变更后的 Markdown 文件执行文档格式和空白字符检查,检查通过。 3. 本 PR 仅更新资料,不涉及编译和运行时代码。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - 原 PR:4316 - 原提交:32e3c943d - 新分支:feature/annotated-args-python-docs-update - 新提交:7d4fa15a7 - 基线:最新 develop(e636da3c6) See merge request: cann/ge!4365 | 11 小时前 | |
feat: add format continuity check in GraphNodeSettedFormatPass Co-authored-by: lushiming0<lushiming1@h-partners.com> # message auto-generated for no-merge-commit merge: !4338 merge lsmge_20260811 into develop feat: add format continuity check in GraphNodeSettedFormatPass Created-by: lushiming0 Commit-by: lushiming0 Merged-by: cann-robot Description: # Pull Request ## 描述 检查配置文件中修改了 format 的节点,增加检查其输入/输出端口与直连节点之间的 format 是否连续。 ## 变更类型 请选择本次引入的变更类型: <!-- [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!4338 | 2 天前 | |
feat(om2): 新增OM2运行时变量管理器(RTVarManager) Co-authored-by: wuzheng-hw<wuzheng14@huawei.com> # message auto-generated for no-merge-commit merge: !4297 merge om2_varmanager into develop feat(om2): 新增OM2运行时变量管理器(RTVarManager) Created-by: wuzheng-hw Commit-by: wuzheng-hw Merged-by: cann-robot Description: # Pull Request ## 描述 新增OM2运行时变量管理器(RTVarManager),用于在运行时管理变量的内存分配、地址映射、格式转换及数据拷贝。 主要变更: - 新增 RTVarResource 数据结构,描述运行时变量条目(RTVarEntry),包含变量名、逻辑地址、tensor描述、格式转换路径等 - 新增 BuildRTVarResource 接口,从编译期 VarManager 构建运行时变量资源并序列化到 OM2 模型文件 - 新增 Om2RTVarManager,负责运行时变量内存分配、地址管理、格式转换及数据拷贝 - 新增 Om2RTVarManagerPool 单例池,按 session 管理 RTVarManager 实例 - OM2 codegen 侧新增变量元数据序列化 - 模型执行器集成 RTVarManager,支持从 OM2 文件解析变量资源并初始化 - 任务码构建适配变量地址刷新逻辑 - 新增完整的 UT/ST 测试用例 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. 运行 UT 用例:om2_rt_var_manager_unittest、rt_var_resource_unittest、om2_var_resource_builder_unittest 2. 运行 ST 用例:test_om2、test_om2_online 3. 验证 OM2 模型编译和运行时变量管理功能正常 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 涉及 57 个文件变更,新增约 4500 行代码。 See merge request: cann/ge!4297 | 2 天前 | |
[binary]【PR】: 新增option ge.inputHintValue 支持host tensor 符号化推导 Co-authored-by: chengyutao3<chengyutao3@huawei.com> # message auto-generated for no-merge-commit merge: !4251 merge develop into develop [binary]【PR】: 新增option ge.inputHintValue 支持host tensor 符号化推导 Created-by: chengyutao3 Commit-by: chengyutao3 Merged-by: cann-robot Description: # Pull Request ## 描述 新增编译期选项 ge.inputHintValue(格式如 1:[5, 400]),用于在动态 shape 编译时没有真实输入数据的场景下,为"值相关"输入(如 Reshape 的 shape 输入)提供 hint 值,使符号化 shape 推导仍能正常进行。此前仅有 ge.inputHintShape 提供形状 hint,缺少值 hint 能力。 主要变更内容: 1. **选项定义与注册** - ge_common_api_types.h:新增常量 INPUT_HINT_VALUE = "ge.inputHintValue",并加入 ir_builder_suppported_options。 - option_supportion_checker.cc:将 ge.inputHintValue 加入受支持的 graph_options。 2. **解析逻辑(option_utils.cc/h)** - 将 ParseHintInputShape 中的内联解析代码抽取为通用模板 ParseIndexedListOption(支持 index:value 分号分隔、index 去重与非负校验),供 shape 和 value 复用。 - 新增 ConstructValueListFromStr(解析 [v0,v1,...] 列表,值非负)与 ParseHintInputValue(输出 map<int64_t, vector<int64_t>>)。 - 顺带修正原 ParseHintInputShape 中 max_index 的计算逻辑。 3. **符号化(symbolic_shape_symbolizer.cc/h)** - 新增 SymbolizeInputValue:对每个 Data 节点,优先使用真实 host 数据(支持 DT_INT32/INT64/UINT32/UINT64)创建常量符号;无真实数据时回退到 hint value map。 - 新增 InputValueElementSource,生成运行时回读对应 graph 输入指定元素值的源码,保证真实执行时符号值能取到实际值。 - SYMBOLIZE_VALUE_TYPE_SUM 路径增加判断:已符号化过 value 的输入不再重复处理。 4. **值相关输入识别(symbolic_infer_util.cc/h)** - 新增 IsValueDependentDataNode:遍历 Data 输出的消费算子,通过 IsInputDataDependency 或 op_infer_depends 属性判断该输入是否依赖数据值(如 Reshape 的 shape 输入)。 5. **编译期取宿主数据(jit_executor.cc / execution_order.cc)** - 新增 GetAllValueDependentData,将"值相关"Data 节点的 index 并入 need_host_data_idx,确保编译期以 host tensor 形式提供符号化所需数据。 - INPUT_HINT_VALUE 加入 kFirstEPOptions,在首个执行点即处理。 6. **测试** - 新增 UT symbolic_value_inference_unittest.cc,覆盖"hint value 推导成功"与"真实数据优先于 hint"两条路径。 - 新增 ST 用例 test_symbolize_value_and_infer.cc。 - jit_executor_unittest.cc / jit_share_graph.cc:将 Reshape 的 shape 输入 data 由 DT_INT32 调整为 DT_INT64,以适配真实 Reshape shape 输入类型。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> 无 ## 如何测试 描述测试此变更的步骤和前提条件: 1. 编译并运行新增单测: - symbolic_value_inference_unittest.cc:验证 hint value 场景下 Reshape 符号化推导成功,以及真实 host data 优先于 hint value。 - jit_executor_unittest.cc:验证含 Reshape 节点的图在 jit 执行路径下正常编译执行。 2. 编译并运行新增 ST 用例: - test_symbolize_value_and_infer.cc 中 reshape_symbolize_infer_with_input_hint_value:仅配置 hint(1:[5, 400]),验证推导出的输出 shape hint 为 5/400。 - reshape_symbolize_infer_with_real_data:提供真实 data({100, 20}),验证以真实数据为准。 3. 手工验证:对含 Reshape(shape 输入为 host 数据)的动态 shape 图分别执行以下配置,确认编译均成功且结果正确: - 不设置 ge.inputHintValue,但有真实 host 输入数据。 - 设置 ge.inputHintValue(如 "1:[5, 400]"),无真实输入数据。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 设计原则:真实 host data 的优先级高于 hint value,保证编译与真实执行时取到的符号值一致。 See merge request: cann/ge!4251 | 2 天前 | |
【fix】: support empty onnx domain Co-authored-by: tang-haojie<tanghaojie1@huawei.com> # message auto-generated for no-merge-commit merge: !4093 merge develop into develop 【fix】: support empty onnx domain Created-by: tang-haojie Commit-by: tang-haojie Merged-by: cann-robot Description: # Pull Request ## 描述 此次变更主要简化了 ONNX 解析器中空 domain 的处理逻辑。原先当节点 domain 为空时,要求 domain_verseion_ 映射恰好只有一个条目才能推断域,否则报错。现在改为直接默认空 domain 为 "ai.onnx" 标准域,统一查找 domain_verseion_,并在 ModelParseToGraph 中同步对 opset_import 做了相同的归一化处理。 主要改动 ConstructOriType 空 domain 处理简化: 将原先需要根据 domain_verseion_ 大小推断空域名的复杂逻辑(要求恰好一个条目),替换为直接默认为 "ai.onnx" 后在 domain_verseion_ 中查找,找不到则报错。 ModelParseToGraph 中 opset_import 的 domain 归一化: 在遍历 opset_import 填充 domain_verseion_ 时,对空 domain 同样默认为 "ai.onnx",确保与 ConstructOriType 行为一致。 单元测试更新: ConstructOriType_empty_domain_multiple_versions 测试预期从 PARAM_INVALID 改为 SUCCESS,验证空 domain 在多个版本存在时也能正确解析为 "ai.onnx::11::CustomOp";测试名 Prechecker_construct_ori_type_failure 重命名为 Prechecker_unregistered_op_type_failure,更准确地描述测试场景。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的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!4093 | 20 天前 | |
【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 | 1 个月前 | |
perf: 优化 OM2 模型加载内存使用,消除反序列化过程中的不必要拷贝 Co-authored-by: wuzheng-hw<wuzheng14@huawei.com> # message auto-generated for no-merge-commit merge: !4310 merge memfix into develop perf: 优化 OM2 模型加载内存使用,消除反序列化过程中的不必要拷贝 Created-by: wuzheng-hw Commit-by: wuzheng-hw Merged-by: cann-robot Description: # Pull Request ## 描述 优化 OM2 模型加载过程中的内存使用,通过将 Om2ConstantsData::weight_data 和 Om2KernelBinary::data 从 std::vector<uint8_t> 改为 ge::ReadonlyByteBuffer,消除反序列化过程中的不必要内存拷贝。 ### 主要优化点 1. **反序列化路径优化**:修改 DeserializeWeightEntry 和 DeserializeKernelEntry,直接使用 ExtractToMem 返回的 ReadonlyByteBuffer,避免通过 ExtractEntryToBytes 进行二次拷贝 2. **构建路径优化**:修改 BuildKernelBinaries 和 BuildConstantsData,使用非拥有指针(ConditionalDeleter{false})直接引用 GeModel 中的数据,避免 memcpy_s 拷贝 3. **删除冗余代码**:移除不再使用的 ExtractEntryToBytes 函数 ### 内存优化效果 - **优化前**:反序列化时存在 2-3 份 host 内存(ZIP 缓冲区 + ExtractToMem 缓冲区 + vector 拷贝) - **优化后**:反序列化时仅保留 1 份 host 内存(直接使用 ExtractToMem 返回的缓冲区) - **构建阶段**:消除 N 次 new[] + memcpy_s(N = kernel 数量 + 1 次 weight) ### 修改文件 - base/common/om2/om2_model_data.h: 修改数据结构定义 - runtime/om2/om2_model_executor.cc: 优化反序列化逻辑 - base/common/helper/om2_package_helper.cc: 优化构建逻辑 - base/common/helper/om2/om2_zip_saver.cc: 适配序列化接口 - 测试文件: 更新测试用例以适配新的数据结构 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 - [x] ⚡ 性能优化 ## 如何测试 1. 编译 GE 项目:make ge_common om2_executor 2. 运行单元测试:./ut_libge_common_utest --gtest_filter="Om2ModelDataTest.*:UtestGeRootModel.Om2ModelData*" 3. 验证所有测试通过(13/13) ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md) ## 其他信息 本次优化通过生命周期分析确认了 GeModel 在所有路径中都保证比 Om2ModelData 活得更久,因此可以安全使用非拥有指针避免不必要的内存拷贝。 See merge request: cann/ge!4310 | 11 小时前 | |
feat: 自定义算子 AnnotatedArgsOp 地址刷新接口 Python 化 Co-authored-by: shangdf<shangdongfang1@huawei.com> # message auto-generated for no-merge-commit merge: !4254 merge feature/address-refresh-pythonization-pr into develop feat: 自定义算子 AnnotatedArgsOp 地址刷新接口 Python 化 Created-by: shangdf Commit-by: shangdf Merged-by: cann-robot Description: # Pull Request ## 描述 完成 AnnotatedArgsOp 地址刷新接口 Python 化。本 PR 仅保留核心实现与测试: - Python 自定义算子通过 schema-bound declare_launch_args 生成 AnnotatedArgs TaskDef。 - 提供 AnnotatedArgsContext、Tensor、workspace、kernel args builder 等 Python 包装,覆盖作用域、签名校验、异常转换和 builder 消费语义。 - 编译期把最终选定的参数刷新方式写入 OpDesc 属性 _custom_task_args_mode;模型加载时以该显式模式为准。没有该属性的旧 OM 才使用 registry 查询和 args_format 兼容兜底。 - Python custom-op bridge C ABI 保持 v1;模型运行期只消费序列化模式和 TaskDef,不回调 Python。 - 提供显式 CustomTaskArgsMode,编译期记录最终刷新方式,运行期优先按该模式选择路径并兼容老 OM。 - 补充 Python、native binding、compiler builder 和静态模型加载路径的 UT/ST。 资料和可运行 example 已拆分至 PR 4316,本 PR 最终 diff 不再包含 docs/ 或 examples/: - https://gitcode.com/cann/ge/pull/4316 本 PR 直接复用 develop 已合入的两个前置任务,不再重复实现: - append_input / append_output 使用 input/output 实例平铺 index。 - workspace 使用两阶段申请及 task plan 缓存,后续任务物化复用缓存,不重复调用声明 callback。 ## 变更类型 - [x] ✨ 新功能 - [ ] ♻️ 无关重构 - [x] 📦 构建过程或辅助工具变动 - [ ] 📝 文档更新(已拆分到 PR 4316) ## 关联 Issue 无。 ## 验证结果 - 最新 develop 增量编译:ut_libge_multiparts_utest、graph_engine_test 构建通过。 - pre-commit:全部通过(clang-format、ruff、codespell、OAT 等)。 - C++ UT:2653 passed, 8 skipped。 - Python UT:651 passed, 1 skipped。 - Python AnnotatedArgs ST:5/5 通过,包含真实 Python -> pybind -> C++ callback 链路及异常分支校验。 - ASAN 定向用例:1/1 通过。 - build_fwk.sh 在 ASAN LD_PRELOAD 环境下的子进程 gcc 探测通过。 - 功能开发阶段已使用拆分前的相同核心实现和 example 完成 910B3 两轮真实 NPU 地址刷新验证;example 后续验证由 PR 4316 承载。 ## 核对清单 - [x] 代码遵循项目风格 - [x] 已补充并执行自测 - [x] 中英文文档已拆分到关联 PR 4316 - [x] 按要求保留 [wip] 标记 - [x] 已阅读并遵守贡献指南 ## 本轮检视修复 - 增加稳定序列化枚举 CustomTaskArgsMode,显式区分 None、AnnotatedArgs 和 UpdateCallback,保留旧 OM 兼容路径。 - 恢复原有不可调用方法的注册行为,避免无关语义变化。 - bridge ABI 保持 v1,统一 context import,签名校验函数改名为 _validate_args_signature。 - 移除通用 engine/known-shape 文档中的 Python 特例及过程性文档;长期资料和 example 已拆分到 PR 4316。 - input/output instance index 越界异常输出实际索引和实例数量,并由端到端 Python callback 用例覆盖。 - 修复 ASAN 环境下 gcc 子进程继承 LD_PRELOAD 导致 Python CI 在 pytest 前退出的问题。 - 同步最新 develop 的 Python 自定义算子原型类型定义和 workspace 两阶段申请逻辑,PR 冲突已消除。 See merge request: cann/ge!4254 | 2 天前 | |
feat: 增加 ONNX Plugin Python API 基础能力 Co-authored-by: gentle-knight<522025150054@smail.nju.edu.cn> # message auto-generated for no-merge-commit merge: !4353 merge feat/onnx-plugin-python-api-foundation into develop feat: 增加 ONNX Plugin Python API 基础能力 Created-by: gentle-knight Commit-by: gentle-knight Merged-by: cann-robot Description: # Pull Request ## 描述 新增 ONNX Plugin Python API 功能包 A,并修正 ATC 未知错误兜底文案。 业务背景:ONNX Plugin Python 化需要先提供稳定的 Python API、descriptor registry 和共享插件发现能力。ONNX Plugin 与 Python custom op 复用 ASCEND_CUSTOM_OPP_PATH,因此同一物理模块必须避免被不同入口重复执行。 主要变更: 1. 新增 ge.onnx_plugin API、只读 OnnxNode 和 callback-bound ge.graph.Operator。 2. 新增 descriptor registry,支持 opset 归一化、完整 origin type 展开和重复注册预检查。 3. 共享 plugin_loader 使用 canonical physical path 保证同一文件或 package 经相对路径、绝对路径、符号链接或 custom op/ONNX Plugin 不同入口发现时只执行一次,并在 import 失败时清理半初始化模块。新增测试覆盖同目录不同文件分别实现 custom op 与 ONNX Plugin,以及环境变量显式列出两个不同文件的场景。 4. 将 api/atc/main_impl.cc 中 E19999 兜底文案从 Inner Error 修正为 Internal Error,并在 ErrorManager 返回空字符串时输出该兜底文案。 本 PR 仅包含功能包 A,不包含 Native Bridge、ONNX Parser 注册、Parser C++ 代码、Parser UT/ST 或工作包 B 内容。 ## 变更类型 - [x] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 暂无。 ## 如何测试 1. 增量构建 ge_python_main_wheel 并刷新 install_ge_py_for_tests,构建通过。 2. 运行共享 loader 定向测试:原有 8 passed,新增不同文件 custom op/ONNX Plugin 场景 2 passed。 3. 运行其余 ONNX Plugin 功能包 A 定向测试:49 passed。 4. 增量编译 ut_libge_multiparts_utest 和 graph_engine_test,均通过。 5. 运行 ATC 空错误消息定向 UT:1 passed。 6. 运行 ATC 空错误消息定向 ST:1 passed。 7. api/atc/main_impl.cc 编译及 atc_static 生成通过;本地 atc_atc.bin 最终链接受现有 libascendalog.so 链接依赖缺失阻塞。 8. 对全部 PR 文件执行 pre-commit,所有 hooks 通过。 9. 执行 git diff --check upstream/develop...HEAD,检查通过。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已确认本次修改无需更新用户文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于 commit message 的格式、无效 commit 的合并等 ## 其他信息 - 目标分支:cann/ge:develop。 - 本 PR 保留共享 loader 的 canonical-path 单次加载语义,以保证复用 ASCEND_CUSTOM_OPP_PATH 时 custom op 与 ONNX Plugin 可以安全共存。 - 本 PR 不包含工作包 B。 - 建议评审顺序:公开 API、Operator handle/生命周期、registry 冲突语义、共享 loader 共存语义、Python UT。 See merge request: cann/ge!4353 | 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 | 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 | 1 个月前 | |
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 | 9 天前 | |
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 | 3 天前 | |
提交英文资料 | 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 | 4 天前 | |
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 | 1 个月前 | |
提交英文文档 | 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 | 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 | 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 | 24 天前 | |
【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 | 24 天前 | |
【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 | 4 天前 | |
【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 | 4 天前 | |
【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 | 4 天前 | |
【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 | 4 天前 | |
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 | 9 天前 | |
【feat】: 升级cann-cmake至master-044,切换add_cann_sign_file/add_cann_device_project公共函数 Co-authored-by: zhaoyingdong<zhaoyingdong@huawei.com> # message auto-generated for no-merge-commit merge: !4161 merge cherry-pick-mr-4157-1785202540722-auto into develop 【feat】: 升级cann-cmake至master-044,切换add_cann_sign_file/add_cann_device_project公共函数 Created-by: yelongjian Commit-by: zhaoyingdong Merged-by: cann-robot Description: # Pull Request ## 描述 【PR】: 升级cann-cmake至master-044,切换add_cann_sign_file/add_cann_device_project公共函数 ## 变更类型 请选择本次引入的变更类型: <!-- [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!4161 | 17 天前 | |
Initial commit | 7 个月前 | |
【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 | 22 天前 | |
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 | 1 个月前 | |
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 | 14 天前 |
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 补充,我们将持续更新相关信息。
📝 其他信息
📝 联系我们
