昇腾社区首页
中文
注册

函数:memcpy2d_async

产品支持情况

产品

是否支持

Atlas A3 训练系列产品/Atlas A3 推理系列产品

Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件

Atlas 训练系列产品

Atlas 推理系列产品

Atlas 200I/500 A2 推理产品

Atlas 200/300/500 推理产品

功能说明

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

Atlas 推理系列加速模块产品不支持该接口。

函数原型

  • C函数原型
    1
    aclError aclrtMemcpy2dAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, aclrtMemcpyKind kind, aclrtStream stream)
    
  • python函数
    1
    ret = acl.rt.memcpy2d_async(dst, dpitch, src, spitch, width, height, kind, stream)
    

参数说明

参数名

说明

dst

int,目的内存地址的指针地址。

dpitch

int,目的内存中相邻两列向量的地址距离。

src

int,源内存地址的指针地址。

spitch

int,源内存中相邻两列向量的地址距离。

width

int,待复制的矩阵宽度。

height

int,待复制的矩阵高度。

“height”最大可设置为5 * 1024 * 1024 = 5242880,否则接口返回失败。

kind

int,内存复制的类型。

ACL_MEMCPY_HOST_TO_HOST = 0 // Host内的内存复制
ACL_MEMCPY_HOST_TO_DEVICE = 1 // Host到Device的内存复制
ACL_MEMCPY_DEVICE_TO_HOST = 2 // Device到Host的内存复制
ACL_MEMCPY_DEVICE_TO_DEVICE = 3 // Device内的内存复制
ACL_MEMCPY_DEFAULT = 4 // 由系统根据源、目的内存地址自行判断拷贝方向

stream

int,指定Stream的指针地址。

返回值说明

返回值

说明

ret

int,错误码,返回0表示成功,返回其它值表示失败。

约束说明

  • 该接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功。调用该接口后,需调用同步等待接口(例如,acl.rt.synchronize_stream)确保内存复制的任务已执行完成。
  • 当前仅支持“ACL_MEMCPY_HOST_TO_DEVICE”类型和“ACL_MEMCPY_DEVICE_TO_HOST”类型的内存复制。
  • Atlas 200I/500 A2 推理产品Ascend RC形态下,不支持调用本接口。