昇腾社区首页
中文
注册
开发者
下载

vcpadd

功能说明

对于一个向量,将其元素两两相加,即获取元素对(元素n和元素n+1,n为偶数)的和。单次repeat,对于 f16 类型,结果连续128Byte(64个元素)写入目的地址;对于 f32 类型,结果连续 128Byte(32个元素)写入目的地址。

需要注意的是,dstRepeatStride 的单位是128Byte,而非通常的32Byte。

该接口支持通过MASK控制哪些元素参与计算。

接口原型

// 相同接口的不同原型区别在于源地址和目的地址的数据类型不同
void vcpadd(__ubuf__ half *dst, __ubuf__ half *src, uint8_t repeat, uint16_t dstRepeatStride, uint16_t srcBlockStride, uint16_t srcRepeatStride);

void vcpadd(__ubuf__ float *dst, __ubuf__ float *src, uint8_t repeat, uint16_t dstRepeatStride, uint16_t srcBlockStride, uint16_t srcRepeatStride);
表1 vcpadd步长单位

数据类型

目的数据

源数据

dstBlockStride

dstRepeatStride

srcBlockStride

srcRepeatStride

f16

/

128B

32B

32B

f32

/

128B

32B

32B

参数说明

函数中的运算参数含义见表1

流水类型

PIPE_V