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

vsubreluconv

功能说明

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

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

计算公式如下:

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

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

接口原型

// 相同接口的不同原型区别在于源地址和目的地址的数据类型不同。
void vsubreluconv_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)

void vsubreluconv_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 vsubreluconv_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)

参数说明

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

流水类型

PIPE_V