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

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