CANN/asc-devkit UB到UB连续数据搬运

发布时间:2026/7/15 15:03:46
CANN/asc-devkit UB到UB连续数据搬运 UB - UB连续数据搬运(Copy)产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品xAtlas A2 训练系列产品/Atlas A2 推理系列产品xAtlas 200I/500 A2 推理产品xAtlas 推理系列产品AI CorexAtlas 推理系列产品Vector CorexAtlas 训练系列产品xKirin X90xKirin 9030x功能说明头文件路径为basic_api/kernel_operator_data_copy_intf.h。支持Unified Buffer和Unified Buffer之间的连续数据搬运数据搬运时格式和内容保持不变。具体支持的数据通路为以逻辑位置TPosition表示Unified Buffer - Unified BufferVECIN - VECCALCVECIN - VECOUTVECCALC - VECINVECCALC - VECOUTVECOUT - VECINVECOUT - VECCALC函数原型template typename T, bool isSetMask true __aicore__ inline void Copy(const LocalTensorT dst, const LocalTensorT src, const uint32_t count)参数说明表 1模板参数说明参数名描述T源操作数或者目的操作数的数据类型。支持的数据类型请参考数据类型。isSetMask参数不生效保持默认值true即可。表 2参数说明参数名输入/输出描述dst输出目的操作数。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。起始地址需要保证32字节对齐。src输入源操作数。类型为LocalTensor支持的TPosition为VECIN/VECCALC/VECOUT。起始地址需要保证32字节对齐。源操作数的数据类型需要与目的操作数保持一致。count输入参与搬运的元素个数。数据类型源操作数和目的操作数支持的数据类型保持一致。Ascend 950PR/Ascend 950DT支持的数据类型为int8_t、uint8_t、fp4x2_e2m1_t、fp4x2_e1m2_t、hifloat8_t、fp8_e8m0_t、fp8_e5m2_t、fp8_e4m3fn_t、int16_t、uint16_t、half、bfloat16_t、int32_t、uint32_t、float、int64_t、uint64_t。返回值说明无约束说明位于Unified Buffer的地址必须32字节对齐。操作数地址重叠约束请参考通用地址重叠约束。isSetMask参数不生效保持默认值true即可。调用示例AscendC::Copy(dstLocal, srcLocal, 512);创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考