函数:reserve_mem_address

C函数原型

aclError aclrtReserveMemAddress(void **virPtr, size_t size, size_t alignment, void *expectPtr, uint64_t flags)

Python函数

vir_ptr, ret = acl.rt.reserve_mem_address(size, alignment, expect_ptr, flags)

函数功能

预留虚拟内存。

本接口需与以下其它接口配合使用,以便申请地址连续的虚拟内存、最大化利用物理内存的目的:
  1. 申请虚拟内存(acl.rt.reserve_mem_address接口)。
  2. 申请物理内存(acl.rt.malloc_physical接口)。
  3. 将虚拟内存映射到物理内存(acl.rt.map_mem接口)。
  4. 执行任务(调用具体的任务接口)。
  5. 取消虚拟内存与物理内存的映射(acl.rt.unmap_mem接口)。
  6. 释放物理内存(acl.rt.free_physical接口)。
  7. 释放虚拟内存(acl.rt.release_mem_address接口)。

输入说明

size:int,虚拟地址空间大小,单位Byte。size不能为0。

alignment:int,虚拟地址对齐值,预留,当前只能设置为0。

expect_ptr:指定期望返回的虚拟地址空间起始地址,预留,当前只能传0。

flags:大页/普通页标志,此处的标志需与acl.rt.malloc_physical接口的内存类型保持一致。取值参考如下:

  • 0:普通页。
  • 1:大页。

返回值说明

vir_ptr:int,指向已分配的虚拟地址空间的地址。

ret:int,错误码。

  • 返回0表示成功。
  • 返回其它值表示失败。

约束说明

Ascend RC形态不支持调用本接口。