已关闭
[Question|问题咨询]: aclrtMallocPhysical 申请 1GB 大页内存只能申请 7G #476
Sterling创建于  5月6日关闭于  6月3日
Sterling
5月6日 创建

Welcome to ask questions and discuss with other members.

问题描述

测试 aclrtMallocPhysical,发现持续报错:halMemCreate failed drvRetCode=6, ErrCode=207001, desc=[driver error:out of memory]。
测试发现单台 A3 最多可以申请 7GB 的大页内存,why?这个接口需要什么前置操作么?and 如何确认可用内存的分布情况呢?

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

你好,把你的调用示例还有
/root/ascend下面的日志都发一下

likedislike
ykl999ykl999成员
5月6日 将 ykl999 设为负责人
Sterling
5月13日 评论:

自己定位尝试了一番,发现不能自己预留大页。。。把自己预留的大页都删掉以后就 OK。
建议在 CANN 文档里加说明

likedislike
rui成员
6月2日 评论:

感谢您的反馈。关于您遇到的 aclrtMallocPhysical 申请大页内存失败(错误码 207001)且最大只能分配约 7GB 的问题,我们进行了系统性的试验验证,并结合 CANN 官方文档作出了以下分析和总结。
一、官方文档说明
CANN 运行时内存管理文档中已有相关指导:
文档链接:https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/83RC1alpha002/API/appdevgapi/aclcppdevg_03_0094.html
关键内容摘要:
若涉及申请Device上的大页内存,需注意,当前版本为防止大页内存不够用,系统内部已提前预留大页内存,用户在使用大页内存前,可调用 aclrtGetMemInfo 接口,查询空闲的大页内存。
Ascend EP形态下,Device启动后首次执行推理或训练任务时,会将系统包加载到Device上,因此会占用部分Device内存(300M左右,不同AI处理器有所不同)。若Device重启,这部分内存才会释放。
二、推荐方案
如果您的应用对物理连续内存没有硬性要求,推荐使用默认的 aclrtMalloc 接口,能访问更大的内存池(在 A2 X86 上测试约为 60 GB)。

如有其他问题,欢迎随时沟通。

likedislike
Rrui成员
6月2日 将 good_luck_to_me 设为负责人
SSterling
6月3日 issue状态由 进行中 改变为 已确认
SSterling
6月3日 issue状态由 已确认 改变为 已完成
SSterling
6月3日 关闭了 issue