|
产品 |
是否支持 |
|---|---|
|
|
√ |
|
|
√ |
|
|
√ |
|
|
√ |
|
|
√ |
|
|
√ |
实现异步内存复制,主要用于矩阵数据的复制。异步接口。
本接口中的Host内存支持锁页内存(例如通过aclrtMallocHost接口申请的内存)、非锁页内存(通过malloc接口申请的内存)。当Host内存是非锁页内存时,本接口在内存复制任务完成后才返回;当Host内存是锁页内存时,本接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功,调用本接口后,需调用同步等待接口(例如,aclrtSynchronizeStream)确保内存复制的任务已执行完成。
本接口为封装接口,仅适用于C++程序,接口内部调用C接口aclrtMemcpy2dAsync。
1 2 |
template <typename T, typename U> aclError aclrtMemcpy2dAsync(T *dst, size_t dpitch, const U *src, size_t spitch, size_t width, size_t height, aclrtMemcpyKind kind, aclrtStream stream) |
|
参数名 |
输入/输出 |
说明 |
|---|---|---|
|
dst |
输入 |
目的内存地址指针。 |
|
dpitch |
输入 |
目的内存中相邻两列向量的地址距离。 |
|
src |
输入 |
源内存地址指针。 |
|
spitch |
输入 |
源内存中相邻两列向量的地址距离。 |
|
width |
输入 |
待复制的数据宽度。 width最大设置为5000000,且必须小于或等于dpitch和spitch。 |
|
height |
输入 |
待复制的数据高度。 height最大设置为5*1024*1024=5242880,否则接口返回失败。 |
|
kind |
输入 |
内存复制的类型。类型定义请参见aclrtMemcpyKind。 |
|
stream |
输入 |
指定执行内存复制任务的Stream。类型定义请参见aclrtStream。 |
返回0表示成功,返回其他值表示失败,请参见aclError。
本接口的内存复制示意图:
