aclrtMapMem
产品支持情况
|
产品 |
是否支持 |
|---|---|
|
Atlas 350 加速卡 |
√ |
|
|
√ |
|
|
√ |
|
|
√ |
|
|
√ |
|
|
√ |
功能说明
将虚拟内存映射到物理内存。
- 申请虚拟内存(aclrtReserveMemAddress接口);
- 申请物理内存(aclrtMallocPhysical接口);
- 将虚拟内存映射到物理内存(aclrtMapMem接口);
- 执行任务(调用具体的任务接口);
- 取消虚拟内存与物理内存的映射(aclrtUnmapMem接口);
- 释放物理内存(aclrtFreePhysical接口);
- 释放虚拟内存(aclrtReleaseMemAddress接口)。
函数原型
1
|
aclError aclrtMapMem(void *virPtr, size_t size, size_t offset, aclrtDrvMemHandle handle, uint64_t flags) |
参数说明
|
参数名 |
输入/输出 |
说明 |
|---|---|---|
|
virPtr |
输入 |
待映射的虚拟内存地址指针。 这个地址不一定是起始地址,用户也可以根据起始地址自行偏移后,再映射。 |
|
size |
输入 |
待映射的内存大小,单位Byte。 此处的size必须与aclrtMallocPhysical接口的size参数值相同,size必须与aclrtMemGetAllocationGranularity接口获取的ACL_RT_MEM_ALLOC_GRANULARITY_MINIMUM对齐。 |
|
offset |
输入 |
物理内存偏移值,当前只能设置为0。 |
|
handle |
输入 |
物理内存信息handle。类型定义请参见aclrtDrvMemHandle。 通过aclrtReserveMemAddress接口预留出来的一整段虚拟地址,由用户自行管理、划分时,不能同时与两个Device上申请的物理地址绑定。 通过aclrtReserveMemAddress接口预留出来的一整段虚拟地址,由用户自行管理、划分时,不能同时与aclrtMallocPhysical、aclrtMemImportFromShareableHandle接口输出的handle绑定。 |
|
flags |
输入 |
预留,当前只能设置为0。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
约束说明
对于