vmulconv
功能说明
两个源均为 f16 值,将它们相乘,并附加一个 f16 转 int8 或 f16 转 uint8 操作。该接口遵循双目向量模板,计算宽度取决于较大的数据元素。例如,f162s8 转换包含128个 f16 和128个 s8 元素,目标仅4个block,类似 vconv,目标仅包含4个block 而非8个,因为源已经是8个block 了,转换前后元素个数不变,但数据类型位宽减半,所以目的block 数目为4。因此,填写对应的参数时,如果希望 dst 连续存放,dstRepeatStride 应该设为4(而不是常见的8)。
舍入模式为四舍五入,就近取偶(用法类似C语言中的 rint),计算公式如下:
[dst] = convert(ReLU([src0] * [src1]))
该接口支持通过MASK控制哪些元素参与计算。
接口原型
// 相同接口的不同原型区别在于源地址和目的地址的数据类型不同。 void vmulconv_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) void vmulconv_f162u8(__ubuf__ uint8_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)
参数说明
参数含义见 表2 双目运算参数说明。
流水类型
PIPE_V
父主题: 双目运算