下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

函数:memcpy_async

C函数原型

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

Python函数

ret = acl.rt.memcpy_async(dst, dest_max, src, count, kind, stream)

函数功能

实现内存复制,异步接口。

输入说明

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

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

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

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

kind:int,内存复制的类型。
  • 0:ACL_MEMCPY_HOST_TO_HOST,Host内的内存复制。
  • 1:ACL_MEMCPY_HOST_TO_DEVICE, Host到Device的内存复制。
  • 2:ACL_MEMCPY_DEVICE_TO_HOST,Device到Host的内存复制。
  • 3:ACL_MEMCPY_DEVICE_TO_DEVICE,Device内的内存复制。

stream:int,stream ID。

返回值说明

ret:int,错误码。

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

约束说明

  • 调用本接口进行内存复制时,源地址和目的地址都必须64字节对齐。
  • 本接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功。调用该接口后,一定要调用acl.rt.synchronize_stream接口确保内存复制的任务已执行完成。
  • 若调用本接口传入的kind为“ACL_MEMCPY_HOST_TO_DEVICE”“ACL_MEMCPY_DEVICE_TO_HOST”,并且Host内存不是通过acl.rt.malloc_host申请得到的,本接口不会报错,但是在实际执行到该任务时会发生不可预知的错误。
  • 本接口不支持异步Host内的内存复制功能,因此传入的kind为“ACL_MEMCPY_HOST_TO_HOST”时,任务下发成功,但系统内部处理该任务时会返回失败。
  • Atlas 200/300/500 推理产品上:
    • Ascend RC形态下,在板端运行应用时,选择涉及Host的内存复制类型后,系统内部会默认使用Device内的内存复制。

参考资源

接口调用示例,参见数据传输

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词