Closed
[Requirement|需求建议]: 新增按配置分配并识别内存的 Runtime7 单 Device 样例 #1065
YanxijiuAdd on  Oct 9Closed at  Oct 9
Yanxijiu
YanxijiuCollaborators
Oct 9 Create

Backgroud(背景信息)

Runtime7 内存样例需要补充“按配置分配并识别内存”的完整使用场景,帮助应用管理传输缓冲区,并正确处理异步任务与内存释放的关系。

新增路径:example/1_basic_features/memory/17_configured_allocation。

Origin(信息来源)

来自本次 Runtime7 样例完善需求,围绕以下公开 Runtime API 创建可运行样例:

  • aclrtCheckMemType
  • aclrtFreeHostWithDevSync
  • aclrtFreeWithDevSync
  • aclrtMallocCached
  • aclrtMallocHostWithCfg
  • aclrtMallocWithCfg
  • aclrtPointerGetAttributes

Benefit / Necessity (价值/作用)

演示按应用模块 ID 配置分配 Host/Device 缓冲区、根据内存属性选择复制方向、检查 Device 内存类型,并等待异步任务完成后释放内存。通过数据逐元素校验提供可以判断对错的结果。

Design(设计方案)

  1. 在单 Device 上使用应用模块 ID 33 申请锁页 Host 输入/输出内存和 Device 暂存内存,另申请支持 Cache 缓存的 Device 中转内存。
  2. 检查两个 Device 缓冲区均为普通 Device 内存,并查询指针属性以确定 Host/Device 位置及 Device ID。
  3. 以查询结果选择复制方向,完成 1024 个确定的 32 位整数的 Host → 配置分配的 Device 缓冲区 → 缓存 Device 缓冲区 → Host 往返传输。
  4. 使用带 Device 同步的释放接口回收输入和缓存缓冲区;逐元素核对回传结果,逆序清理其余资源。数据校验和全部清理均成功才输出成功标记。
  5. 提供源码、中英文 README、CMakeLists.txt、run.sh,并更新直接父主题的双语导航。
likedislike
YanxijiuYanxijiuCollaborators
Oct 9 Added label: requirement
YanxijiuYanxijiuCollaborators
Oct 9 Associated pull request
YanxijiuYanxijiuCollaborators
Oct 9 Assign 2403_89963296 as responsible person
YanxijiuYanxijiuCollaborators
Oct 9 Modify description of issue
CANN-robotCANN-robotCollaborators
Oct 9 Close issue
CANN-robotCANN-robotCollaborators
Oct 9 Added label: resolved