| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: 修复 rtBinaryGetFunctionCount/rtBinaryEnumerateFunctions 静态检查告警 Co-authored-by: chenyang<2082464740@qq.com> # message auto-generated for no-merge-commit merge: !4664 merge warn2 into master fix: 修复 rtBinaryGetFunctionCount/rtBinaryEnumerateFunctions 静态检查告警 Created-by: weixin_51634168 Commit-by: chenyang Merged-by: cann-robot Description: # fix: 修复 rtBinaryGetFunctionCount/rtBinaryEnumerateFunctions 静态检查告警 ## 描述 修复 Binary 相关新增接口的静态扫描告警(G.CNS.04-CPP、A7-1-3、M5-0-15),不涉及任何行为变更: 1. src/acl/aclrt_impl/kernel.cpp:198:aclrtBinaryGetFunctionCountImpl 的 binHandle 参数const aclrtBinHandle → aclrtBinHandle const(A7-1-3:CV 限定词应置于 typedef 名右侧), 与同文件 aclrtBinaryEnumerateFunctionsImpl 风格统一。 2. src/inc/runtime/inner_kernel.h:145 + src/runtime/api/api_c_kernel.cc:447: rtBinaryGetFunctionCount 的 count 参数 uint32_t* count → uint32_t* const count(G.CNS.04:指针参数应使用 const 修饰)。 3. src/runtime/api/api_c_standard_soc.cc:2053/2055:rtBinaryEnumerateFunctions 中*(funcHandles + i) → funcHandles[i](M5-0-15:数组索引应是指针运算的唯一形式)。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如需关联 Issue 请在页面右侧"关联Issue"部分添加相应 Issue 链接 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 已核对所有调用点(acl 层 kernel.cpp:204、UT mock、生成 stub):参数顶层 const 不改变 函数类型与 ABI,funcHandles[i] 与原指针运算语义等价,编译兼容性无影响。 2. 建议合入前执行流水线构建,并定向回归 LLT 用例: rt_utest_api_kernel.cc 中 rtBinaryGetFunctionCount 相关用例、 acl_runtime_unittest.cpp 中 aclrtBinaryGetFunctionCount 相关用例。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档(本次变更不涉及文档) - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 See merge request: cann/runtime!4664 | 3 天前 | |
【PR】: 静态内部化 xpu_tprt Co-authored-by: guo-yanjun<guoyanjun3@huawei.com> # message auto-generated for no-merge-commit merge: !4528 merge xpu_tprt into master 【PR】: 静态内部化 xpu_tprt Created-by: guo-yanjun Commit-by: guo-yanjun Merged-by: cann-robot Description: # Pull Request ## 描述 当前真实的 libxpu_tprt.so 随 Runtime 安装包发布,并动态导出 TprtCqReportRecv、TprtSqPushTask 以及 cce::tprt::* 等内部接口。外部程序可以自行声明 ABI,或通过 dlopen/dlsym 直接调用这些接口,对应 #821、#822、#823 反馈的 CQE 容量伪造、SQE 数量伪造及函数地址注入问题。 本 PR 将 xpu_tprt 静态内部化,完成以下修改: 1. 将真实的 xpu_tprt 从共享库调整为仅构建期使用的静态库,启用 PIC,并继续由 libruntime_v100.so、libruntime_v200.so 内部链接使用。 2. 在 Linux/ELF 构建中为 TPRT 源码增加 -fvisibility=hidden 和 -fvisibility-inlines-hidden,使 Tprt* 和以 cce::tprt:: 为根的接口不进入 Runtime DSO 动态符号表。 3. 从统一安装规则中移除真实的 xpu_tprt target,避免构建期 libxpu_tprt.a 被安装或发布。 4. 新增独立的 xpu_tprt_compat_stub target,过渡期生成同名 libxpu_tprt.so 空桩,以兼容尚未同步删除的顶层 CANN 打包清单。 5. 空桩不包含真实 TPRT 实现,不定义或导出任何 TPRT API,也不被 Runtime DSO 链接;其用途仅限于跨仓异步合入期间的文件级打包兼容。 整改后,普通外部程序无法再通过 Runtime DSO 或临时桩动态链接、dlsym 访问 TprtCqReportRecv、TprtSqPushTask 等内部接口,Runtime 内部 XPU/TPRT 调用方式和业务实现保持不变。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue https://gitcode.com/cann/runtime/issues/821 https://gitcode.com/cann/runtime/issues/822 https://gitcode.com/cann/runtime/issues/823 ## 如何测试 1. 执行完整构建并运行现有 Runtime XPU/TPRT 单元测试; 2. 检查 libruntime_v100.so 和 libruntime_v200.so 的动态依赖,确认不存在 DT_NEEDED: libxpu_tprt.so; 3. 检查两个 Runtime DSO 的动态符号表,确认不再导出 TPRT 内部符号; 4. 解包检查安装产物; 5. 执行外部可达性和功能回归验证: - 外部程序直接链接 TprtCqReportRecv 或 TprtSqPushTask 时应链接失败。 - 对两个 Runtime DSO 执行 dlsym 查询上述符号时应返回 nullptr。 - Runtime 内部 XPU 任务提交、CQ 回收及 Profiling 开关功能应保持正常。 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4528 | 2 天前 | |
【PR】: 新增arch9202 dev info Co-authored-by: wda1991<wangdongan@hisilicon.com> # message auto-generated for no-merge-commit merge: !4527 merge 122_dev_info into master 【PR】: 新增arch9202 dev info Created-by: wda1991 Commit-by: wda1991 Merged-by: cann-robot Description: # Pull Request ## 描述 新增arch9202 dev info和对应的chip type ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4527 | 9 天前 | |
aclgraph支持npu快照(支持不删除model直接执行) Co-authored-by: chingbb<qinbeibei4@huawei.com> # message auto-generated for no-merge-commit merge: !4426 merge dev into master aclgraph支持npu快照(支持不删除model直接执行) Created-by: chingbb Commit-by: chingbb Merged-by: cann-robot Description: ## 描述 本 PR 实现 aclgraph NPU 快照恢复功能(支持不删除 model 直接执行),并在后续提交中持续修复快照恢复路径的缺陷和扩展支持范围。 ### 主要变更 **1. aclgraph 支持NPU快照(支持不删除model直接执行)** - 新增快照备份和恢复流程,支持模型不删除直接重复执行 - CaptureModel 新增 LoadComplete / LoadCompleteByStreamPrep / LoadCompleteByStreamPostp / LoadCompleteByStream 虚函数,支持各平台覆写 - Model 新增 UpdateLabelCountPtr / ResetFuncCallMem 等方法,支持快照恢复时重置 funcCall 内存和 label count - UbArgManage 新增 RestoreArgRes,快照恢复时重建 stream UB args pool **2. 快照恢复 stream active FuncCall 重建** - 新增 UpdateStreamActiveTaskFuncCallForSnapshot,快照恢复后重建 stream active 任务的 funcCall memory - 修复非扩流场景 stream active 任务快照恢复失败的问题 **3. 快照恢复 MemConvertAddr 使用原始 copySize** - MemcpyAsyncTaskInfo 新增 copySize 字段保存原始搬运长度,size 改存 fixed_size - 修复快照多次恢复时 size 被 fixed_size 覆盖后 MemConvertAddr 地址转换长度错误 **4. 快照恢复扩展支持 software SQ 场景** - UpdateSnapShotSqe 拆分为设备 SQ 路径(UpdateDeviceSqeForSnapshot)和软件 SQ 路径(UpdateHostSqeForSnapshot) - 快照恢复移除 David 平台限制,所有平台统一调用 UpdateSnapShotSqe - 补全 2D memcpy 任务 copyMethod 标记(RT_ASYNC_CPY_2D) - RebuildExternalTaskSqe 重命名为 UpdateHostSqeBufferByTask,语义更通用 **5. 快照 memcpy SQE 更新重构** - UpdateMemcpyDeviceSqeForSnapshot 从 stream.cc 迁移到 memory_memcpy_async_task.cc - 提取 NeedUpdateMemcpyTaskInfoForSnapshot 谓词函数,消除 needUpdateSqe 出参 - UpdateDeviceSqeForSnapshot 改用 switch-case 替代 if-else 链 - UpdateMemcpyDmaForSnapshot 重命名为 UpdateMemcpyTaskInfoForSnapshot - DavidStream 新增 UpdateMemcpyTaskAndSqe 成员函数 - 同步更新 arch5162 stub 和 UT **6. 其他** - Notify::ReAllocId 新增 MAX_UINT32_NUM 守卫,跳过无效 notifyid 的重分配 - snapshot_process_helper.cc 告警日志补充 model_type 参数 - tiny stub 补充 RestoreForSoftwareSqForOneModels / LoadComplete 系列桩函数 ## 变更类型 - [x] 🐛 Bug 修复 - [x] ✨ 新功能 - [x] ♻️ 重构 ## 如何测试 1. 编译验证:bash build.sh 编译通过 2. UT 执行:runtime_utest_api_david(653 用例)、runtime_utest_api_910B(1405 用例)、runtime_utest(1209 用例)全部通过 3. 覆盖率:增量变更行覆盖率 76.4% ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签 - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 See merge request: cann/runtime!4426 | 2 天前 | |
【refactor】: 重命名文件名称,提升 arch5162 可扩展性 Co-authored-by: qq_64748107<2592856994@qq.com> # message auto-generated for no-merge-commit merge: !4624 merge fix/rename-tiny-stub-arch5162 into master 【refactor】: 重命名文件名称,提升 arch5162 可扩展性 Created-by: qq_64748107 Commit-by: qq_64748107 Merged-by: cann-robot Description: # Pull Request ## 描述 将 xxx_tiny_stub.cc 统一重命名为 xxx_stub.cc,移除文件名中的 tiny 前缀,使 stub 文件不再绑定特定芯片型号,方便后续其他芯片复用。 ## 改动内容 - 重命名 32 个源文件:xxx_tiny_stub.cc → xxx_stub.cc - 同步更新 4 个 CMake 文件中的路径引用: - arch5162.cmake:22 处 - tiny.cmake:32 处 - tests/ut/runtime/runtime/CMakeLists.txt:35 处 - tests/ut/runtime/runtime/test/platform/arch5162/CMakeLists.txt:23 处 - 重命名测试文件:rt_utest_tiny_stub.cc → rt_utest_stub.cc ## 改动原因 当前 stub 文件名带有 tiny 前缀,绑定特定芯片型号。后续新增其他芯片需要复用这些 stub 时,文件名带 tiny 不合理。重命名为通用名称后,任何芯片都可以直接引用。 ## 验证 - 编译通过(bash build.sh) - ACL callback UT:8/8 通过 - TinyStub UT:63/63 通过 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4624 | 4 天前 | |
aclgraph支持npu快照(支持不删除model直接执行) Co-authored-by: chingbb<qinbeibei4@huawei.com> # message auto-generated for no-merge-commit merge: !4426 merge dev into master aclgraph支持npu快照(支持不删除model直接执行) Created-by: chingbb Commit-by: chingbb Merged-by: cann-robot Description: ## 描述 本 PR 实现 aclgraph NPU 快照恢复功能(支持不删除 model 直接执行),并在后续提交中持续修复快照恢复路径的缺陷和扩展支持范围。 ### 主要变更 **1. aclgraph 支持NPU快照(支持不删除model直接执行)** - 新增快照备份和恢复流程,支持模型不删除直接重复执行 - CaptureModel 新增 LoadComplete / LoadCompleteByStreamPrep / LoadCompleteByStreamPostp / LoadCompleteByStream 虚函数,支持各平台覆写 - Model 新增 UpdateLabelCountPtr / ResetFuncCallMem 等方法,支持快照恢复时重置 funcCall 内存和 label count - UbArgManage 新增 RestoreArgRes,快照恢复时重建 stream UB args pool **2. 快照恢复 stream active FuncCall 重建** - 新增 UpdateStreamActiveTaskFuncCallForSnapshot,快照恢复后重建 stream active 任务的 funcCall memory - 修复非扩流场景 stream active 任务快照恢复失败的问题 **3. 快照恢复 MemConvertAddr 使用原始 copySize** - MemcpyAsyncTaskInfo 新增 copySize 字段保存原始搬运长度,size 改存 fixed_size - 修复快照多次恢复时 size 被 fixed_size 覆盖后 MemConvertAddr 地址转换长度错误 **4. 快照恢复扩展支持 software SQ 场景** - UpdateSnapShotSqe 拆分为设备 SQ 路径(UpdateDeviceSqeForSnapshot)和软件 SQ 路径(UpdateHostSqeForSnapshot) - 快照恢复移除 David 平台限制,所有平台统一调用 UpdateSnapShotSqe - 补全 2D memcpy 任务 copyMethod 标记(RT_ASYNC_CPY_2D) - RebuildExternalTaskSqe 重命名为 UpdateHostSqeBufferByTask,语义更通用 **5. 快照 memcpy SQE 更新重构** - UpdateMemcpyDeviceSqeForSnapshot 从 stream.cc 迁移到 memory_memcpy_async_task.cc - 提取 NeedUpdateMemcpyTaskInfoForSnapshot 谓词函数,消除 needUpdateSqe 出参 - UpdateDeviceSqeForSnapshot 改用 switch-case 替代 if-else 链 - UpdateMemcpyDmaForSnapshot 重命名为 UpdateMemcpyTaskInfoForSnapshot - DavidStream 新增 UpdateMemcpyTaskAndSqe 成员函数 - 同步更新 arch5162 stub 和 UT **6. 其他** - Notify::ReAllocId 新增 MAX_UINT32_NUM 守卫,跳过无效 notifyid 的重分配 - snapshot_process_helper.cc 告警日志补充 model_type 参数 - tiny stub 补充 RestoreForSoftwareSqForOneModels / LoadComplete 系列桩函数 ## 变更类型 - [x] 🐛 Bug 修复 - [x] ✨ 新功能 - [x] ♻️ 重构 ## 如何测试 1. 编译验证:bash build.sh 编译通过 2. UT 执行:runtime_utest_api_david(653 用例)、runtime_utest_api_910B(1405 用例)、runtime_utest(1209 用例)全部通过 3. 覆盖率:增量变更行覆盖率 76.4% ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签 - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 See merge request: cann/runtime!4426 | 2 天前 | |
【PR】【fix】correct RTS log messages round 2 Co-authored-by: Hou_jialin<houjialin3@huawei.com> # message auto-generated for no-merge-commit merge: !4547 merge br_log_opt_2round into master 【PR】【fix】correct RTS log messages round 2 Created-by: Hou_jialin Commit-by: Hou_jialin Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 针对 Runtime 日志易用性扫描结果进行整改,主要包括: - 修正日志和错误描述中的拼写、语法及术语问题。 - 统一 Runtime、ACL、TDT 等模块的日志表达。 - 为内存大小、超时时间等数值补充明确单位。 - 优化参数名称、错误原因和上下文信息,提升问题定位效率。 - 将不规范的内部错误描述统一为 Internal Error。 - 补充必要的 UT 覆盖受影响日志分支。 本次修改不涉及功能逻辑、对外接口或 ABI 变更。 ## 改动 修正 TDT 错误码描述文案(src/inc/tdt/status.h):纠正了 "transcation" → "transaction"、"argment" → "argument"、"unknow job state" → "unknown job state" 等拼写错误,并将 TDT_QUEUE_POP_FAILED/TDT_QUEUE_PUSH_FAILED 的描述改为更准确的 "queue pop/push interrupted because the queue was stopped"。 统一 ACL 队列模块日志表达(src/acl/acl_tdt_queue/ 下 queue_process.cpp、queue_process_ccpu.cpp、queue_process_host.cpp、queue_process_sp.cpp):将日志统一为 "Start to execute …" / "Successfully executed …" 句式,并修正 "unbinded" → "unbound"、"contact msg" → "connect msg" 等措辞错误。 修正运行时日志语法与拼写(src/runtime 多处,如 api_c.cc、api_impl.cc、errcode_manage.cc、context.cc、runtime.cc 等):修正 "Heterogenous" → "Heterogeneous"、"internel" → "internal"、"Stoping" → "Stopping"、"unknow" → "unknown" 等,并纠正日志字段名笔误(如 fftsMemAllocCnt 打印重复、true_sq_iq → true_sq_id、steam_id → stream_id)。 为日志中的内存大小补充单位:在 runtime.cc 的 Runtime_alloc_size 系列日志、api_error.cc 的 malloc/mem info 日志、onlineprof.cc、memory_pool_manager.cc、spm_pool.cc、h2d_copy_mgr.cc 及各类 memcpy 任务日志中,为 size/len/cpySize/stackSize 等数值统一追加 bytes 单位。 增强错误日志信息量:在 context.cc 的 LaunchSqeUpdateTask、ccu_device_error_proc.cc 的 CCU 子任务数校验、dqs_task.cc 的队列 ID 校验、task_manager.cc 的 nameOffset 越界告警等日志中,补充了失败说明、返回码及合法取值范围等上下文信息,使日志更易于定位问题。 ## 变更类型 - [x] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. 触发 PR 完整 CI 流水线。 2. 确认 x86、ARM 及 Ubuntu 24 编译通过。 3. 确认 ACL、Runtime 各分组 UT 及增量覆盖率检查通过。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [ ] 我已更新了相关的文档(本次不涉及文档变更) - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 本次仅优化日志及错误信息的准确性和可读性,不改变原有执行流程和错误码返回行为。 See merge request: cann/runtime!4547 | 8 天前 | |
【PR】: fix error log magic number Co-authored-by: duanpengliang<duanpengliang@huawei.com> Co-authored-by: zhangpengpeng8<zhangpengpeng8@hisilicon.com> # message auto-generated for no-merge-commit merge: !4417 merge master_mv_pkginc_to_include into master 【PR】: fix error log magic number Created-by: duanpengliang Commit-by: duanpengliang;zhangpengpeng8 Merged-by: cann-robot Description: # Pull Request ## 描述 整改 Runtime/ACL ERROR 日志枚举魔鬼数字,统一输出“枚举字符串(数字)”;非法值使用 UNKNOWN(数字),连续范围边界保留数字。精简枚举转换实现以控制 tiny 包体积,并补充相关 UT 覆盖及 pre-commit 校验。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: ut源码编译通过,error日志无枚举对应的魔鬼数字 ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!4417 | 8 天前 |