| 【feat】: acl_mdl 模块支持 OM2
Co-authored-by: likun104<likun104@h-partners.com>
Co-authored-by: wuzheng-hw<wuzheng14@huawei.com>
# message auto-generated for no-merge-commit merge:
!2687 merge acl_adapt_and_so_0506_backup into develop
【feat】: acl_mdl 模块支持 OM2
Created-by: wuzheng-hw
Commit-by: wuzheng-hw;likun104
Merged-by: cann-robot
Description: ## 描述
本PR实现了acl_mdl模块对OM2格式的完整支持,包括OM和OM2的解耦、核心接口适配、资源管理器拆分、TensorDesc解耦、AIPP支持和modena形态桩so生成。
## 变更类型
- [x] ✨ 新功能
- [x] ♻️ 重构(OM和OM2解耦)
- [x] 📦 构建过程或辅助工具的变动
## 核心改动
### 1. OM和OM2解耦
- 拆分libacl_mdl_impl.so为OM专属实现
- 新增libacl_mdl_impl_v2.so用于OM2实现
- AclResourceManager拆分为OM和OM2两个版本
- 移除OM对om2_executor的直接依赖
### 2. 核心接口OM2适配
- aclmdlLoadFromFile/Unload: 支持OM2模型加载卸载
- aclmdlExecute/ExecuteAsync: 支持OM2模型执行
- aclmdlGetDesc: 支持OM2模型描述获取
- aclmdlQuerySize: 支持OM2模型大小查询
- aclmdlGetDescFromFile/Mem: 支持OM2模型预加载描述获取
### 3. TensorDesc依赖解耦
- 新增Om2TensorDesc独立实现,不依赖GE图库
- GeTensorDesc保留在OM路径
### 4. OM2 AIPP支持
- 新增acl_aipp_om2.cpp实现OM2 AIPP操作
- 支持aclmdlGetAippType/GetFirstAippInfo/SetInputAIPP等接口
### 5. modena形态桩so支持
- 新增gen_stubapi_acl_mdl_impl.py脚本生成桩文件
- 桩so包含acl_mdl.h和acl_base_mdl.h的所有接口
- modena形态可用桩so替代真实impl.so,节省内存
### 6. 新增测试用例
- acl_resource_manager_om2_unittest.cpp: 资源管理器测试
- om2_model_executor_unittest.cc: 执行器测试
- om2_package_helper_unittest.cc: 包管理工具测试
- test_om2.cc: 系统集成测试
## 文件变更统计
- 45个文件变更
- 7223行新增
- 2325行删除
## 核对清单
- [x] 代码遵循项目的代码风格
- [x] 已对代码进行了自测
- [x] 已更新了相关的文档
- [x] 使用了合适的类型标签(feat:)
- [x] 已详细阅读了贡献指南
## 其他信息
本次改动基于设计文档:/home/wuzheng/workspace/om2_docs/apis/acl_mdl模块支持OM2需求设计.md
主要实现了设计文档中的以下需求:
1. acl_mdl.h和acl_base_mdl.h接口OM2适配分析
2. OM和OM2解耦需求分析
3. modena形态编译打包适配
See merge request: cann/ge!2687 | 21 天前 |