更新时间:2021-03-18 GMT+08:00
分享

aclrtMemcpyAsync

函数功能

实现Host内、Host与Device之间、Device内的异步内存复制。

该接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功。调用该接口后,一定要调用aclrtSynchronizeStream接口确保内存复制的任务已执行完成。

Control CPU开放形态下,应用程序运行在Device的Control CPU上时,该接口仅支持Device内的内存复制。

约束说明

如果是片内Device到Device的内存复制,源地址和目的地址都必须64字节对齐。

函数原型

aclError aclrtMemcpyAsync(void *dst, size_t destMax, const void *src, size_t count, aclrtMemcpyKind kind, aclrtStream stream)

参数说明

参数名

输入/输出

说明

dst

输入

目的内存地址指针。

destMax

输入

目的内存地址的最大内存长度,单位Byte。

src

输入

源内存地址指针。

count

输入

内存复制的长度,单位Byte。

kind

输入

内存复制的类型。

typedef enum aclrtMemcpyKind {
ACL_MEMCPY_HOST_TO_HOST, // Host内的内存复制,当前不支持
ACL_MEMCPY_HOST_TO_DEVICE, // Host到Device的内存复制
ACL_MEMCPY_DEVICE_TO_HOST, // Device到Host的内存复制
ACL_MEMCPY_DEVICE_TO_DEVICE, // Device内的内存复制
} aclrtMemcpyKind;

stream

输入

stream ID。

返回值说明

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

分享:

    相关文档

    相关产品

关闭导读