| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
refactor: 清理ge_rts_decl.h冗余定义并补充runtime/dev.h引用 Co-authored-by: tangqunzhang<tangqunzhang@huawei.com> # message auto-generated for no-merge-commit merge: !3730 merge develop into develop refactor: 清理ge_rts_decl.h冗余定义并补充runtime/dev.h引用 Created-by: tangqunzhang Commit-by: tangqunzhang Merged-by: cann-robot Description: # Pull Request ## 描述 清理 ge_rts_decl.h 中不再使用的类型和函数声明,并补充业务代码中缺失的 runtime/dev.h 头文件引用。 ## 变更类型 - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. 编译 GE 项目,确认无编译错误 2. 运行 UT/ST 测试用例,确认功能正常 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 变更文件: - inc/common/ge_rts_decl.h — 移除 rtMemRequestFeature_t 和 rtGetTsMemType 声明 - 7 个 .cc 文件 — 补充 #include "runtime/dev.h" See merge request: cann/ge!3730 | 1 个月前 | |
【PR】: ge_error_codes.h重命名后修改ge仓引用 Co-authored-by: jikai-tyler<jikai5@huawei.com> # message auto-generated for no-merge-commit merge: !4039 merge ge_errorcode into develop 【PR】: ge_error_codes.h重命名后修改ge仓引用 Created-by: jikai-tyler Commit-by: jikai-tyler Merged-by: cann-robot Description: # Pull Request ## 描述 ge_error_codes.h重命名后修改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!4039 | 28 天前 | |
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 | 1 小时前 | |
[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 | 5 天前 | |
【PR】: ge_error_codes.h重命名后修改ge仓引用 Co-authored-by: jikai-tyler<jikai5@huawei.com> # message auto-generated for no-merge-commit merge: !4039 merge ge_errorcode into develop 【PR】: ge_error_codes.h重命名后修改ge仓引用 Created-by: jikai-tyler Commit-by: jikai-tyler Merged-by: cann-robot Description: # Pull Request ## 描述 ge_error_codes.h重命名后修改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!4039 | 28 天前 |