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

vaddreluconv

功能说明

对 src1 和 src2 进行元素级别的加法运算,然后执行 ReLU 操作并转换为另一种数据类型,将结果写入dst。

该接口遵循双目向量模板,计算宽度取决于较大的数据元素,规则和vconv类似,在这条接口中,数据宽度都是减半的,对应目标仅包含4个block 而非8个,原因见vmulconv。因此,填写对应的参数时,如果希望 dst 连续存放,dstRepeatStride 应该设为4(而不是常见的8)。

计算公式如下:

[dst] = convert(ReLU([src0] + [src1]))

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

接口原型

// 相同接口的不同原型区别在于源地址和目的地址的数据类型不同。
void vaddreluconv_f162s8(__ubuf__ int8_t *dst, __ubuf__ half *src0, __ubuf__ half *src1, uint8_t repeat, uint8_t dstBlockStride, uint8_t src0BlockStride, uint8_t src1BlockStride, uint8_t dstRepeatStride, uint8_t src0RepeatStride, uint8_t src1RepeatStride, bool h);

void vaddreluconv_s162s8(__ubuf__ int8_t *dst, __ubuf__ int16_t *src0, __ubuf__ int16_t *src1, uint8_t repeat, uint8_t dstBlockStride, uint8_t src0BlockStride, uint8_t src1BlockStride, uint8_t dstRepeatStride, uint8_t src0RepeatStride, uint8_t src1RepeatStride, bool h);

void vaddreluconv_f322f16(__ubuf__ half *dst, __ubuf__ float *src0, __ubuf__ float *src1, uint8_t repeat, uint8_t dstBlockStride, uint8_t src0BlockStride, uint8_t src1BlockStride, uint8_t dstRepeatStride, uint8_t src0RepeatStride, uint8_t src1RepeatStride, bool h);

参数说明

参数含义见 表2 双目运算参数说明

流水类型

PIPE_V