Skip to main content

aclrtAllocatorUnregister

aclrtMemcpy2d

函数功能

实现同步内存复制,主要用于矩阵数据的复制。同步接口。

函数原型

aclError aclrtMemcpy2d(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height,aclrtMemcpyKind kind)

约束说明

  • 当前仅支持ACL_MEMCPY_HOST_TO_DEVICE类型和ACL_MEMCPY_DEVICE_TO_HOST类型的内存复制。
  • Atlas 200/500 A2推理产品,Ascend RC形态下,不支持调用本接口。

参数说明

参数名输入/输出说明
dst输入目的内存地址指针。
dpitch输入目的内存中相邻两列向量的地址距离。
src输入源内存地址指针。
spitch输入源内存中相邻两列向量的地址距离。
width输入待复制的矩阵宽度。
height输入待复制的矩阵高度。
kind输入内存复制的类型。
text<br>typedef enum aclrtMemcpyKind &#123;<br>ACL_MEMCPY_HOST_TO_HOST, // Host内的内存复制<br>ACL_MEMCPY_HOST_TO_DEVICE, // Host到Device的内存复制<br>ACL_MEMCPY_DEVICE_TO_HOST, // Device到Host的内存复制<br>ACL_MEMCPY_DEVICE_TO_DEVICE, // Device内或Device间的内存复制<br>&#125; aclrtMemcpyKind;<br>

返回值说明

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

父主题: 内存管理

aclrtMemcpy2dAsync

函数功能

实现异步内存复制,主要用于矩阵数据的复制。异步接口。

约束说明

  • 该接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功。调用该接口后,一定要调用aclrtSynchronizeStream接口确保内存复制的任务已执行完成。
  • 当前仅支持ACL_MEMCPY_HOST_TO_DEVICE类型和ACL_MEMCPY_DEVICE_TO_HOST类型的内存复制。
  • Atlas 200/500 A2推理产品,Ascend RC形态下,不支持调用本接口。

函数原型

aclError aclrtMemcpy2dAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height,aclrtMemcpyKind kind, aclrtStream stream)

参数说明

参数名输入/输出说明
dst输入目的内存地址指针。
dpitch输入目的内存中相邻两列向量的地址距离。
src输入源内存地址指针。
spitch输入源内存中相邻两列向量的地址距离。
width输入待复制的矩阵宽度。
height输入待复制的矩阵高度。 height最大设置为5*1024*1024=5242880,否则接口返回失败。
kind输入内存复制的类型。
text<br>typedef enum aclrtMemcpyKind &#123;<br>ACL_MEMCPY_HOST_TO_HOST, // Host内的内存复制<br>ACL_MEMCPY_HOST_TO_DEVICE, // Host到Device的内存复制<br>ACL_MEMCPY_DEVICE_TO_HOST, // Device到Host的内存复制<br>ACL_MEMCPY_DEVICE_TO_DEVICE, // Device内或Device间的内存复制<br>&#125; aclrtMemcpyKind;<br>
stream输入指定stream。

返回值说明

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

父主题: 内存管理

aclrtAllocatorRegister

函数功能

调用该接口注册用户提供的Allocator以及Allocator对应的回调函数,用于使用用户提供的Allocator。

Atlas 200/500 A2推理产品,不支持该接口。

约束说明

函数原型

aclError aclrtAllocatorRegister(aclrtStream stream, aclrtAllocatorDesc allocatorDesc)

参数说明

参数名输入/输出说明
stream输入该Allocator需要注册的Stream。
allocatorDesc输入Allocator描述符指针。

返回值说明

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

父主题: 内存管理

aclrtAllocatorUnregister

函数功能

取消注册用户提供的Allocator以及Allocator对应的回调函数,用于取消使用用户提供的Allocator。

Atlas 200/500 A2推理产品,不支持该接口。

约束说明

  • 用户销毁Allocator前,调用本接口取消注册。
  • 待取消注册的Stream不存在,或多次调用本接口取消注册,本接口内部不做任何操作,返回成功。

函数原型

aclError aclrtAllocatorUnregister(****aclrtStream stream)

参数说明

参数名输入/输出说明
stream输入该Allocator需要注册的stream。

返回值说明

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

父主题: 内存管理

aclrtReserveMemAddress

函数功能

预留虚拟地址空间。同步接口。

本接口需与以下其它接口配合使用,以便申请连续的虚拟内存地址、最大化利用物理内存地址的目的:

  1. 申请虚拟地址空间(aclrtReserveMemAddress接口);
  2. 申请物理内存(aclrtMallocPhysical接口);
  3. 将虚拟地址映射到物理内存(aclrtMapMem接口);
  4. 执行任务(调用具体的任务接口);
  5. 取消虚拟地址与物理内存的映射(aclrtUnmapMem接口);
  6. 释放物理内存(aclrtFreePhysical接口);
  7. 释放虚拟地址空间(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接口申请的虚拟地址空间。

本接口需与以下其它接口配合使用,以便申请连续的虚拟内存地址、最大化利用物理内存地址的目的:

  1. 申请虚拟地址空间(aclrtReserveMemAddress接口);
  2. 申请物理内存(aclrtMallocPhysical接口);
  3. 将虚拟地址映射到物理内存(aclrtMapMem接口);
  4. 执行任务(调用具体的任务接口);
  5. 取消虚拟地址与物理内存的映射(aclrtUnmapMem接口);
  6. 释放物理内存(aclrtFreePhysical接口);
  7. 释放虚拟地址空间(aclrtReleaseMemAddress接口)。

约束说明

  • Ascend RC形态不支持调用本接口。
  • 若该虚拟地址与物理地址存在映射关系,则释放虚拟地址空间前,需调用aclrtUnmapMem接口取消该虚拟地址与物理地址的映射。

函数原型

aclError aclrtReleaseMemAddress(void *virPtr)

参数说明

参数名输入/输出说明
virPtr输入待释放的虚拟地址指针。

返回值说明

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

父主题: 内存管理

aclrtMallocPhysical

函数功能

申请物理地址空间,并返回一个物理内存handle。

本接口需与以下其它接口配合使用,以便申请连续的虚拟内存地址、最大化利用物理内存地址的目的:

  1. 申请虚拟地址空间(aclrtReserveMemAddress接口);
  2. 申请物理内存(aclrtMallocPhysical接口);
  3. 将虚拟地址映射到物理内存(aclrtMapMem接口);
  4. 执行任务(调用具体的任务接口);
  5. 取消虚拟地址与物理内存的映射(aclrtUnmapMem接口);
  6. 释放物理内存(aclrtFreePhysical接口);
  7. 释放虚拟地址空间(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表示成功,返回其它值表示失败。

父主题: 内存管理

在线提单