| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【feat】: om2 rt接口替换成aclrt Co-authored-by: lidaoming1<lidaoming1@huawei.com> # message auto-generated for no-merge-commit merge: !3691 merge om2_rt2aclrt into develop 【feat】: om2 rt接口替换成aclrt Created-by: lidaoming1 Commit-by: lidaoming1 Merged-by: cann-robot Description: # Pull Request ## 描述 变更摘要 本次 PR 主要将 OM2 代码生成器中的底层运行时接口从 rt(rtStream_t、rtEvent_t、rtNotify_t 等)系统性地替换为 aclrt 系列接口(aclrtStream、aclrtEvent、aclrtNotify、aclrtBinHandle 等)。变更覆盖了代码生成的基础设施层(CodeGeneratorBase)、接口头文件生成、加载与执行文件生成、以及多个 Task Code Builder 中的分发辅助函数。对于 rt_external*.h 中未暴露但仍在使用的 rtLabelDevInfo 结构体和 rtCmoAddrTaskLaunch 函数,新增了前向声明机制以保持兼容。部分底层 rt* API(如 rtSetTaskTag、rtGeneralCtrl、rtStreamCreateWithFlags 等)因无对应 aclrt 替代接口而保留。 主要改动 CodeGeneratorBase 接口层扩充: 在 code_generator_base.h 中新增了大量 Aclrt* 辅助方法(如 AclrtMemcpy、AclrtMemcpyAsync、AclrtCreateStreamWithConfig、AclrtLaunchKernelV2 等),统一封装对 aclrt* C API 的调用,同时保留少数仍需使用的 rt* 方法(RtSetTaskTag、RtGeneralCtrl 等)。 新增 rt 前向声明机制: 在 interface_file_code_generator.cc 中新增 BuildRtForwardDecls() 方法,为 rtLabelDevInfo 结构体和 rtCmoAddrTaskLaunch 函数生成前向声明,因为这些符号不在 rt_external*.h 中暴露但仍被生成代码使用。 接口头文件类型全面替换: interface_file_code_generator.cc 中 DealParamForOm2ModelClass 和 BuildOm2ModelClass 生成的成员变量类型从 rt* 系列全面迁移到 aclrt* 系列(如 std::vector<aclrtStream>、std::vector<aclrtBinHandle>、aclrtLabelList 等)。 Task Code Builder 参数类型更新: cmo_addr_task_code_builder.cc、event_wait_task_code_builder.cc、memcpy_addr_async_task_code_builder.cc 中 RenderDistHelper 生成的辅助函数的 stream/event 参数类型统一更换为 aclrtStream / aclrtEvent / aclrtNotify。 代码生成流程调整: program_generator.cc 中 GenerateInterfaceHeader 增加了对 BuildRtForwardDecls() 的调用,并将返回的前向声明插入到生成的头文件中;load_and_run_file_code_generator.cc 新增了 BuildAclrtMallocFunction、BuildCommonHelperFunctions、BuildDispatchOp 等方法以支持新的 aclrt 接口体系。 ## 变更类型 请选择本次引入的变更类型: <!-- [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!3691 | 3 个月前 |