函数:memcpy2d_async
产品支持情况
产品 |
是否支持 |
---|---|
√ |
|
√ |
|
√ |
|
√ |
|
√ |
|
√ |
功能说明
实现异步内存复制,主要用于矩阵数据的复制。异步接口。
函数原型
- 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形态下,不支持调用本接口。
父主题: 内存管理