| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【feat】: om2 支持aipp Co-authored-by: lidaoming1<lidaoming1@huawei.com> # message auto-generated for no-merge-commit merge: !4082 merge om2_aipp into develop 【feat】: om2 支持aipp Created-by: lidaoming1 Commit-by: lidaoming1 Merged-by: cann-robot Description: # Pull Request ## 描述 变更摘要 本次 PR 为 OM2 模型执行模式实现了完整的动态 AIPP(AI 预处理)支持。此前 OM2 路径下的 AIPP 相关接口均返回 ACL_ERROR_API_NOT_SUPPORT,本次变更将这些接口全部实现,涵盖编译期元数据提取、运行时 AIPP 查询与设置、以及设备端参数下发。同时,将原 OM1 专属文件中定义的一组静态辅助函数(如 SetAippInfo、GetNpuArch、SetIODims 及调试字符串函数)抽取到 model_common 模块,供 OM1 与 OM2 路径共享。 主要改动 实现 OM2 AIPP 核心接口:aclmdlSetInputAIPPImplOm2、aclmdlSetAIPPByInputIndexImplOm2、aclmdlGetAippTypeImplOm2、aclmdlGetFirstAippInfoImplOm2 从返回 ACL_ERROR_API_NOT_SUPPORT 的桩函数变为完整实现,包含索引校验、AIPP 类型检查、参数验证、输出形状校验及通过 Om2ModelExecutor::SetDynamicAippData 将参数拷贝至设备端。 抽取共享 AIPP 工具函数至 model_common:将 SetAippInfo、GetNpuArch、SetIODims、AippInfoDebugString、DimsDebugString、AippDimsDebugString、AippParmsDebugString、AippBatchParaDebugString 从 acl_aipp.cpp 的匿名命名空间移至 model_common.cpp/.h 的 acl 命名空间,供 OM1 和 OM2 路径共用。 新增 AIPP 元数据结构与编译期序列化:在 om2_model_data.h 中定义 Om2AippMeta 结构体,在 Om2ModelMeta 中增加 aipp_infos、is_dynamic_aipp、has_aipp 字段;在 om2_package_helper.cc 中新增 FillAippModelMetaInfo 函数,从模型图中提取 AIPP 配置信息并写入 model_meta.json。 运行时 AIPP 元数据解析与查询:在 om2_model_executor.cc 中实现 ParseAippJson 等 JSON 解析函数,以及 GetAippInfo、GetAippType、GetOrigInputInfo、GetAllAippInputOutputDims、IsDynamicAipp、GetBatchInfoSize、SetDynamicAippData 方法,完整支持 AIPP 信息的运行时查询与动态参数下发。 移除 OM2 编译期对动态 AIPP 的拦截:删除 ge_ir_build.cc 中 InsertAippOpUtil::ValidateStaticAippOnly 调用,允许 OM2 构建模式使用动态 AIPP。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4082 | 1 个月前 | |
fix: OM2 PrepareWorkPtr zero_copy_size subtraction should check reuseZeroCopy flag Co-authored-by: lidaoming1<lidaoming1@huawei.com> # message auto-generated for no-merge-commit merge: !4142 merge om2_zero_copy into develop fix: OM2 PrepareWorkPtr zero_copy_size subtraction should check reuseZeroCopy flag Created-by: lidaoming1 Commit-by: lidaoming1 Merged-by: cann-robot Description: # Pull Request ## 描述 修复 OM2 路径下 PrepareWorkPtr 无条件减去 zero_copy_size 的问题。 ### 问题 runtime/om2/om2_model_executor.cc:1035 中 PrepareWorkPtr 无条件执行: cpp const size_t required_work_size = model_meta_info_.work_size - model_meta_info_.zero_copy_size; 该减法在 reuseZeroCopy 未使能时不应该执行,否则会导致 work memory 分配不足。 ### 修复 1. Om2ModelLoadArg 增加 bool reuse_zero_copy 字段,默认 false 2. ACL API 路径:aclmdlLoadWithConfig 的 handle->reuseZeroCopy 透传到 Om2ModelLoadArg 3. 静态图在线路径:LoadOm2Graph 通过 ModelUtils::IsReuseZeroCopyMemory() 读取 context 配置 4. PrepareWorkPtr 改为条件减法:仅当 reuse_zero_copy 为 true 时执行减法 5. OM2 配置白名单放开 ACL_MDL_WORKSPACE_MEM_OPTIMIZE ### 对齐 OM1 OM1 已在 ModelExecutor::GetMemorySizeAfterReuse 中有正确条件判断: cpp if (is_reuse_zero_copy_memory) { non_zero_copy_mem_size = memory_size - zero_copy_size; } ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新 - [ ] ♻️ 重构 - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue ## 如何测试 1. aclmdlLoadWithConfig 设置 reuseZeroCopy=1 → PrepareWorkPtr 分配 work_size - zero_copy_size 2. aclmdlLoadWithConfig 不设置(默认0) → PrepareWorkPtr 分配完整 work_size 3. aclmdlLoadFromFile/Mem 无 config 路径 → 分配完整 work_size 4. 静态图在线 + ge.exec.reuseZeroCopyMemory=1 → 分配 work_size - zero_copy_size ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 变更文件: - inc/framework/runtime/om2_model_executor.h - 新增字段 - api/acl/acl_model/model/model_om2.cpp - 透传 + 白名单 - runtime/om2/om2_model_executor.cc - 核心修复 - runtime/v1/graph/execute/model_executor.cc - 静态图在线路径 See merge request: cann/ge!4142 | 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 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 |