aclrtReleaseMemAddress
aclrtAllocatorUnregister
函数功能
取消注册用户提供的Allocator以及Allocator对应的回调函数,用于取消使用用户提供的Allocator。
Atlas 200/500 A2推理产品,不支持该接口。
约束说明
- 用户销毁Allocator前,调用本接口取消注册。
- 待取消注册的Stream不存在,或多次调用本接口取消注册,本接口内部不做任何操作,返回成功。
函数原型
aclError aclrtAllocatorUnregister(****aclrtStream stream)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| stream | 输入 | 该Allocator需要注册的stream。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 内存管理
aclrtReserveMemAddress
函数功能
预留虚拟地址空间。同步接口。
本接口需与以下其它接口配合使用,以便申请连续的虚拟内存地址、最大化利用物理内存地址的目的:
- 申请虚拟地址空间(aclrtReserveMemAddress接口);
- 申请物理内存(aclrtMallocPhysical接口);
- 将虚拟地址映射到物理内存(aclrtMapMem接口);
- 执行任务(调用具体的任务接口);
- 取消虚拟地址与物理内存的映射(aclrtUnmapMem接口);
- 释放物理内存(aclrtFreePhysical接口);
- 释放虚拟地址空间(aclrtReleaseMemAddress接口)。
约束说明
Ascend RC形态不支持调用本接口。
函数原型
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 | 输入 | 大页/普通页标志,取值如下: - 0:普通页 - 1:大页 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 内存管理
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表示成功,返回其它值表示失败。
父主题: 内存管理
在线提单