aclrtMallocPhysical
aclrtReleaseMemAddress
函数功能
释放通过aclrtReserveMemAddress接口申请的虚拟地址空间。
本接口需与以下其它接口配合使用,以便申请连续的虚拟内存地址、最大化利用物理内存地址的目的:
- 申请虚拟地址空间(aclrtReserveMemAddress接口);
- 申请物理内存(aclrtMallocPhysical接口);
- 将虚拟地址映射到物理内存(aclrtMapMem接口);
- 执行任务(调用具体的任务接口);
- 取消虚拟地址与物理内存的映射(aclrtUnmapMem接口);
- 释放物理内存(aclrtFreePhysical接口);
- 释放虚拟地址空间(aclrtReleaseMemAddress接口)。
约束说明
- Ascend RC形态不支持调用本接口。
- 若该虚拟地址与物理地址存在映射关系,则释放虚拟地址空间前,需调用aclrtUnmapMem接口取消该虚拟地址与物理地址的映射。
函数原型
aclError aclrtReleaseMemAddress(void *virPtr)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| virPtr | 输入 | 待释放的虚拟地址指针。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 内存管理
aclrtMallocPhysical
函数功能
申请物理地址空间,并返回一个物理内存handle。
本接口需与以下其它接口配合使用,以便申请连续的虚拟内存地址、最大化利用物理内存地址的目的:
- 申请虚拟地址空间(aclrtReserveMemAddress接口);
- 申请物理内存(aclrtMallocPhysical接口);
- 将虚拟地址映射到物理内存(aclrtMapMem接口);
- 执行任务(调用具体的任务接口);
- 取消虚拟地址与物理内存的映射(aclrtUnmapMem接口);
- 释放物理内存(aclrtFreePhysical接口);
- 释放虚拟地址空间(aclrtReleaseMemAddress接口)。
约束说明
Ascend RC形态不支持调用本接口。
函数原型
aclError aclrtMallocPhysical(aclrtDrvMemHandle *handle, size_t size, const aclrtPhysicalMemProp *prop, uint64_t flags)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| handle | 输出 | 存放物理地址信息的handle。 |
| size | 输入 | 物理地址空间大小,单位Byte。 size当前需按照2M对齐。 |
| prop | 输入 | 物理内存属性信息。 |
| flags | 输入 | 预留,当前只能设置为0。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 内存管理
aclrtFreePhysical
函数功能
释放通过aclrtMallocPhysical接口申请的物理地址空间。
本接口需与以下其它接口配合使用,以便申请连续的虚拟内存地址、最大化利用物理内存地址的目的:
- 申请虚拟地址空间(aclrtReserveMemAddress接口);
- 申请物理内存(aclrtMallocPhysical接口);
- 将虚拟地址映射到物理内存(aclrtMapMem接口);
- 执行任务(调用具体的任务接口);
- 取消虚拟地址与物理内存的映射(aclrtUnmapMem接口);
- 释放物理内存(aclrtFreePhysical接口);
- 释放虚拟地址空间(aclrtReleaseMemAddress接口)。
约束说明
- Ascend RC形态不支持调用本接口。
- 若该物理地址与虚拟地址存在映射关系,则释放物理地址空间前,需调用aclrtUnmapMem接口取消该物理地址与虚拟地址的映射。
函数原型
aclError aclrtFreePhysical(****aclrtDrvMemHandle handle)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| handle | 输入 | 待释放的物理地址信息handle。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 内存管理
aclrtMapMem
函数功能
将虚拟地址映射到物理地址。
本接口需与以下其它接口配合使用,以便申请连续的虚拟内存地址、最大化利用物理内存地址的目的:
- 申请虚拟地址空间(aclrtReserveMemAddress接口);
- 申请物理内存(aclrtMallocPhysical接口);
- 将虚拟地址映射到物理内存(aclrtMapMem接口);
- 执行任务(调用具体的任务接口);
- 取消虚拟地址与物理内存的映射(aclrtUnmapMem接口);
- 释放物理内存(aclrtFreePhysical接口);
- 释放虚拟地址空间(aclrtReleaseMemAddress接口)。
约束说明
Ascend RC形态不支持调用本接口。
函数原型
aclError aclrtMapMem(void *virPtr, size_t size, size_t offset, aclrtDrvMemHandle handle, uint64_t flags)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| virPtr | 输入 | 待映射的虚拟地址指针。 这个地址不一定是起始地址,用户也可以根据起始地址自行偏移后,再映射。 虚拟地址当前需按照2M对齐。 |
| size | 输入 | 待映射的内存大小,单位Byte。 size当前需按照2M对齐。 |
| offset | 输入 | 物理内存偏移值,当前只能设置为0。 |
| handle | 输入 | 物理地址信息handle。 |
| flags | 输入 | 预留,当前只能设置为0。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 内存管理
在线提单