---
title: aclrtMemcpy2dAsync
description: "实现异步内存复制，主要用于矩阵数据的复制。异步接口。"
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/aadgc/aclcppdevg_03_0113.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/aadgc/aclcppdevg_03_0113.html
indexId: 61e6e83aeec0114cadc7297e7574af2769689f0586d9c29b9b73064b9281eedd105
---
# 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 | 输入 | 内存复制的类型。 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内或Device间的内存复制 } aclrtMemcpyKind; |
| stream | 输入 | 指定stream。 |


#### 返回值说明

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