aclrtMemcpyFromSymbolAsync
产品支持情况
产品 |
是否支持 |
|---|---|
√ |
|
√ |
|
√ |
|
☓ |
|
√ |
|
☓ |
功能说明
实现Device变量数据到Host的异步内存复制,以便读取Device变量中的数据。
本接口中的Host内存支持锁页内存(例如通过aclrtMallocHost接口申请的内存)、非锁页内存(通过malloc接口申请的内存)。当Host内存是锁页内存时,本接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功,调用本接口后,需调用同步等待接口(例如,aclrtSynchronizeStream)确保内存复制的任务已执行完成;当Host内存是非锁页内存时,本接口在内存复制任务完成后才返回。
本接口为封装接口,仅适用于C++程序,接口内部调用C接口aclrtMemcpyFromSymbolAsync。
函数原型
1 2 | template <typename T> aclError aclrtMemcpyFromSymbolAsync(void *dst, size_t dstMax, const T &symbol, size_t count, size_t offset, aclrtMemcpyKind kind, aclrtStream stream) |
参数说明
参数名 |
输入/输出 |
说明 |
|---|---|---|
dst |
输入 |
目的内存地址指针。 |
dstMax |
输入 |
dst内存最大长度,单位Byte。 需满足dstMax≥count。 |
symbol |
输入 |
Device变量名。 此处的Device变量通过__gm__方式声明的变量。 |
count |
输入 |
内存复制的长度,单位Byte。 需满足 offset + count ≤ Device变量大小,Device变量大小可通过aclrtGetSymbolSize接口查询获取。 |
offset |
输入 |
Device变量地址偏移,单位Byte。 需满足 offset + count ≤ Device变量大小,Device变量大小可通过aclrtGetSymbolSize接口查询获取。 |
kind |
输入 |
内存复制的类型。类型定义请参见aclrtMemcpyKind。 本接口仅支持ACL_MEMCPY_DEVICE_TO_HOST和ACL_MEMCPY_DEFAULT。 |
stream |
输入 |
指定执行内存复制任务的Stream。类型定义请参见aclrtStream。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
约束说明
与aclrtGetSymbolAddress接口中的约束保持一致。