aclrtReserveMemAddress
产品支持情况
产品  | 
是否支持  | 
|---|---|
√  | 
|
√  | 
|
√  | 
|
√  | 
|
√  | 
|
√  | 
功能说明
预留虚拟内存。
本接口需与以下其它接口配合使用,以便申请地址连续的虚拟内存、最大化利用物理内存:
- 申请虚拟内存(aclrtReserveMemAddress接口);
 - 申请物理内存(aclrtMallocPhysical接口);
 - 将虚拟内存映射到物理内存(aclrtMapMem接口);
 - 执行任务(调用具体的任务接口);
 - 取消虚拟内存与物理内存的映射(aclrtUnmapMem接口);
 - 释放物理内存(aclrtFreePhysical接口);
 - 释放虚拟内存(aclrtReleaseMemAddress接口)。
 
函数原型
aclError aclrtReserveMemAddress(void **virPtr, size_t size, size_t alignment, void *expectPtr, uint64_t flags)
参数说明
参数名  | 
输入/输出  | 
说明  | 
|---|---|---|
virPtr  | 
输出  | 
“已分配的虚拟内存地址的指针”的指针。  | 
size  | 
输入  | 
虚拟内存大小,单位Byte。 size不能为0。  | 
alignment  | 
输入  | 
虚拟地址对齐值,预留,当前只能设置为0。  | 
expectPtr  | 
输入  | 
指定期望返回的虚拟内存起始地址,预留,当前只能传nullptr。  | 
flags  | 
输入  | 
大页/普通页标志,此处的标志需与aclrtMallocPhysical接口的内存类型保持一致。 参数取值如下: 
  | 
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
约束说明
Atlas 200I/500 A2 推理产品 上,Ascend RC形态不支持调用本接口。
- 使用本接口预留的虚拟内存,单进程场景下只支持调用aclrtMemcpyAsync接口实现两个Device之间的数据拷贝。
 
父主题: 内存管理