已关闭
升级 CANN 软件到 8.0 RC2 后,执行 ACL 推理程序时发现内存分配失败。升级前一切正常。 #609
Aquarmine创建于  6月10日关闭于  6月29日
Aquarmine
6月10日 创建

调用 aclrtMalloc 分配 Device 内存时返回错误码 507011,程序中断。或者在某些场景下出现 aclrtMalloc 失败并伴随 Internal Error,且报错信息极其误导。

likedislike
ykl999
ykl999成员
6月10日 评论:

你好,请提供版本分支形态信息,plog

likedislike
Rrui成员
6月15日 将 good_luck_to_me 设为负责人
Rrui成员
6月15日 关联了pull request:feat: add issue-response skill - GitCode Issue分级回复助手
Rrui成员
6月16日 删除了关联的pull request:feat: add issue-response skill - GitCode Issue分级回复助手
rui成员
6月16日 评论:

您好!

感谢您反馈升级后的问题。我们已分析了您提供的错误码信息。

问题分析

您报告的错误码 507011 (ACL_ERROR_RT_MODEL_EXECUTE) 表明模型执行过程中发生了错误,这并非内存分配类错误码(内存分配类错误码通常是 207001 或 207018)。可能的实际情况是:aclrtMalloc 调用本身成功,但在后续模型执行阶段发生了错误。

解决建议

  1. 确认版本兼容:检查驱动版本是否与 CANN 8.0 RC2 匹配,参考 Runtime版本与CANN版本不匹配导致的问题

  2. 获取 plog 日志定位异常:参考 如何通过plog日志定位异常,在 plog 中 grep ERROR,找到第一条 ERROR 日志,检查首条 ERROR 所属模块(RUNTIME/GE/DRV),确定根因模块

  3. 检查内存池配置:使用 aclrtGetMemInfo 分别查看 ACL_MEM_HUGE 和 ACL_MEM_NORMAL 的可用内存,参考 如何选择合适的内存分配策略

  4. 错误码解读:参考 如何获取和解读Runtime异步错误码

环境检查

请补充以下信息以便进一步分析:

  • 驱动版本(npu-smi info)
  • plog 日志中第一条 ERROR 的内容和模块归属
  • 申请的内存大小和分配策略

参考文档

likedislike
ykl999
ykl999成员
6月29日 评论:

你好该问题14天未回复,且已给了解决方案,后续再有问题请再提issue

likedislike
ykl999ykl999成员
6月29日 issue状态由 待办的 改变为 已确认
ykl999ykl999成员
6月29日 issue状态由 已确认 改变为 已完成
ykl999ykl999成员
6月29日 关闭了 issue