aclrtMemcpyBatch

产品支持情况

产品

是否支持

Ascend 950PR/Ascend 950DT

√

Atlas A3 训练系列产品/Atlas A3 推理系列产品

√

Atlas A2 训练系列产品/Atlas A2 推理系列产品

√

Atlas 200I/500 A2 推理产品

☓

Atlas 推理系列产品

☓

Atlas 训练系列产品

☓

功能说明

实现批量内存复制。

本接口中的Host内存支持锁页内存(例如通过aclrtMallocHost接口申请的内存)、非锁页内存(通过malloc接口申请的内存)。

本接口为封装接口,仅适用于C++程序,接口内部调用C接口aclrtMemcpyBatchV2。

函数原型

1
2
3
4
5
6
7
# 针对所有内存,使用同一个内存复制属性
template <typename T, typename U>
aclError aclrtMemcpyBatch(T **dsts, size_t *destMaxs, U **srcs, size_t *sizes, size_t numBatches, aclrtMemcpyBatchAttr attr)

# 针对每一段内存,使用对应的内存复制属性
template <typename T, typename U>
aclError aclrtMemcpyBatch(T **dsts, size_t *destMaxs, U **srcs, size_t *sizes, size_t numBatches, aclrtMemcpyBatchAttr *attrs, size_t *attrsIndexes, size_t numAttrs)

参数说明

参数名

输入/输出

说明

dsts

输入

目的内存地址数组。

destMaxs

输入

内存复制最大长度数组,用于存放每一段要复制的内存的最大长度,单位Byte。

srcs

输入

源内存地址数组。

sizes

输入

内存复制长度数组,用于存放每一段要复制的内存大小,单位Byte。

numBatches

输入

dsts、srcs和sizes数组的长度。

attr

输入

内存复制属性。针对所有内存,使用同一个内存复制属性。

类型定义请参见aclrtMemcpyBatchAttr。

attrs

输入

内存复制属性数组。针对每一段内存,使用对应的内存复制属性。

类型定义请参见aclrtMemcpyBatchAttr。

attrsIndexes

输入

内存复制属性索引数组,用于指定attrs数组中每个条目适用的复制范围。attrs[k]中指定的属性将应用于从attrsIndexes[k]到attrsIndexes[k+1] - 1的复制操作,同时attrs[numAttrs-1]将应用于从attrsIndexes[numAttrs-1]到numBatches - 1的复制操作。

numAttrs

输入

attrs和attrsIndexes数组的长度。

返回值说明

返回0表示成功,返回其他值表示失败,请参见aclError。

约束说明