| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
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: 自定义算子 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 | 6 天前 | |
feat: 语言无关Custom Task Info 适配 OM2 Co-authored-by: fary86<fary.fanrui@huawei.com> # message auto-generated for no-merge-commit merge: !4407 merge dev_custom_op_new into develop feat: 语言无关Custom Task Info 适配 OM2 Created-by: fary86 Commit-by: fary86 Merged-by: cann-robot Description: # Pull Request ## 描述 ### 变更摘要 此 PR 为 OM2 模型管线新增了自定义算子(Custom Op)的完整支持。在数据结构侧, Om2ModelData 新增 custom_kernel_binaries 与 custom_shared_libs 字段;在打包阶段,Om2PackageHelper 新增 CollectUsedCustomOpTypes 遍历图中自定义算子类型并调用 PortableOp::Serialize 序列化算子二进制,同时封装自定义算子动态库入库;在代码生成阶段,新增 MODEL_TASK_CUSTOM_KERNEL 任务类型与 CustomTaskCodeBuilder 类,生成 KernelCustTaskDistribute 分发函数及 DeserializeCustKernelBinaries 反序列化辅助函数;在运行时阶段,om2_model_executor.cc 新增对自定义 so 的 mmDlopen 加载及自定义内核二进制到 kernel_bin_info 的合并。 **主要改动** - **新增 CustomTaskCodeBuilder 类与 DISPATCH_CUSTOM_KERNEL 分发类型**:新增 custom_task_code_builder.cc/h,实现 CustomTaskCodeBuilder 类处理 MODEL_TASK_CUSTOM_KERNEL 任务,生成 RenderDispatchCustomKernel 等分发逻辑;OpDispatchType 枚举扩展增加 DISPATCH_CUSTOM_KERNEL = 21,TaskDispatchInfo 联合体新增 CustomDispatchInfo custom 字段 - **新增自定义算子二进制收集与序列化逻辑**:Om2PackageHelper 新增 CollectUsedCustomOpTypes(遍历 root 图及游离子图收集 CustomOpFactory 注册的自定义算子类型)、BuildCustomKernelBinaries(调用 PortableOp::Serialize 序列化)、BuildCustomSharedLibs(读取自定义 op so 文件),并集成到 BuildOm2ModelData 流程中;同时重构多个 Build 方法接口,将分散的 Om2ProgramBody/Om2ModelMeta/Om2ConstantsData 等参数统一改为传递 Om2ModelData 引用 - **新增代码生成中的自定义算子运行时辅助代码**:stable_part_provider.cc 新增 kCreateClassCustomOpFactory 与 kCustomTaskHelpers 两个 StablePart,分别生成 CustomOpFactory 类声明和 CustKernelContextHolder、KernelCustTaskDistribute、DeserializeCustKernelBinaries 等辅助函数;program_generator.cc 在存在自定义 kernel 时引入 graph/custom_op.h 头文件并嵌入相应 StablePart - **运行时支持自定义 so 加载与内核反序列化**:om2_model_executor.cc 新增 CustSharedLibInfo 结构体,在 HandleArchiveEntry 中解析 data/custom_ops/shared_libs 和 data/custom_ops/binaries_* 条目;模型加载时对自定义 so 执行 mmDlopen,并将 custom_kernel_binaries 合并到 kernel_bin_info 供后续 DeserializeCustKernelBinaries 使用 - **新增 OM2_CUSTOM_KERNELS_DIR_FORMAT 路径常量与 ZIP 序列化方法**:om2_package_contants.h 新增 OM2_CUSTOM_KERNELS_DIR_FORMAT 宏;om2_zip_saver.cc 新增 SerializeCustomKernelBinaries 和 SerializeCustomKernelSharedLibs,分别将自定义算子二进制和共享库写入 data/custom_ops/ 目录下的 ZIP 条目 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4407 | 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 | 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: 动态shape静态子图dump配置根图名字时dump地址未刷新问题 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !4390 merge fix/dump-root-graph-name-match into develop fix: 动态shape静态子图dump配置根图名字时dump地址未刷新问题 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 动态shape静态子图场景下, dump_model_name_ 存的是子图名字,而用户dump配置的是根图名字,导致ModelNeedDump和IsRootGraphNeedDump匹配不上,子图节点dump地址没有刷新导致报错。 本次修改: - DataDumper 新增 GetRootGraphName() 接口 - ModelNeedDump 增加用根图名字匹配dump配置 - IsRootGraphNeedDump 改用 data_dumper_.GetRootGraphName() 获取根图名 ## 变更类型 - [x] 🐛 Bug 修复 ## 关联的Issue ## 如何测试 1. 编译UT:make -C cmake-build-gcov ut_libge_distinct_load_utest -j$(nproc) 2. 运行UT:--gtest_filter="*ModelNeedDump*:*OpNeedDump*:*IsRootGraphNeedDump*" 3. 全部9个用例通过,覆盖以下场景: - ModelNeedDump_MatchByRootGraphName:通过InitNodes+Shrink验证root_graph_name_在ge_model_释放后不丢失 - ModelNeedDump_MatchByDumpModelName:dump配置子图名匹配 - ModelNeedDump_NoMatch:无匹配返回false - OpNeedDump_WithRootGraphConfig:通过根图名匹配op dump(适配data_dumper_.GetRootGraphName()) - OpNeedDump_ByDumpModelName:通过子图名匹配op dump - OpNeedDump_NoRootGraphName:未设置根图名时不匹配 - IsRootGraphNeedDump_True:根图名匹配(适配data_dumper_.GetRootGraphName()) ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 从 PR #4321 中拆出,独立提交dump相关修复。 See merge request: cann/ge!4390 | 2 小时前 | |
feat(rt2): remove launch critical free edge Co-authored-by: Mexyy<xiaguozheng1@hisilicon.com> # message auto-generated for no-merge-commit merge: !3914 merge f_rt2_remove_launch_free_squashed into develop feat(rt2): remove launch critical free edge Created-by: Mexyy Commit-by: Mexyy Merged-by: cann-robot Description: # Pull Request ## 描述 本次 PR 涉及以下 RT2 功能点: - launch kernel 标记与调度分类。 - remove launch critical free edge。 - copy flow launch 拆分与设备 copy size 执行期计算。 - launch submit 水位线等待与 mixed launch memory barrier。 - launch copy scheduling 对齐及相关 RT2 UT/ST 覆盖。 - RT2 运行时设计文档和约束说明更新。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. git diff --check upstream/develop..HEAD 2. git push -u origin f_rt2_remove_launch_free_squashed,远端 Git hooks 返回 PASSED。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 无。 See merge request: cann/ge!3914 | 7 天前 | |
feat: 支持自定义算子能力识别与 Python 适配器 Co-authored-by: du-hua1024<duhua2@huawei.com> # message auto-generated for no-merge-commit merge: !3970 merge op-cpp into develop feat: 支持自定义算子能力识别与 Python 适配器 Created-by: du-hua1024 Commit-by: du-hua1024 Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 为 C++ 自定义算子补充能力标识和统一转型入口,并新增 Python custom op runtime adapter 的基础实现。 主要变更: - 新增 CustomOpCapability / CustomOpCast,让调用点按 capability 判断 EagerExecuteOp、CompilableOp、ShapeInferOp、PortableOp、ArgsUpdater。 - 将现有自定义算子执行、编译、shape 推导、序列化和地址刷新调用点从直接 dynamic_cast 切换为 CustomOpCast。 - 新增 custom_op_runtime 目标和 Python custom op adapter/registry 基础类型,用于承接 Python 自定义算子执行能力。 - 将 custom_op_runtime 纳入 ge-executor 构建和 ge-executor 包安装范围,并补充相关 UT 链接和用例。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [x] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 新增及历史ut运行正常 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已确认本 PR 不涉及文档更新 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本 PR 是自定义算子 Python eager 执行能力的 C++ capability 和 adapter 基础部分,Python bridge/公开 Python surface 可在后续 PR 中继续拆分提交。 See merge request: cann/ge!3970 | 1 个月前 |