vaxpy
功能说明
当 src0、src1 和 dst 类型相同时(均为 half 或 float),以 block(32Byte)为单位完成以下计算,一次完成8个 block 的计算。
计算源数据逐元素乘以标量 a 后与目的数据逐元素相加,计算公式如下:
each_element_of([dst]) = a * each_element_of([src]) + each_element_of([dst])
当 src 和 a 为 half 类型,dst 为 float 类型时,src 取低4个 block,合计 64 个 half 数。高4个 block 被忽略,与 a 相乘后,与 dst 的64个f loat(8个block)相加。
each_element_of([dst]) = a * each_element_of([src(低4个 block 的64个 half)]) + each_element_of([dst])
该接口支持通过MASK控制哪些元素参与计算。
接口原型
// 相同接口的不同原型区别在于源地址和目的地址的数据类型不同。 void vaxpy(__ubuf__ half *dst, __ubuf__ half *src, half a, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); void vaxpy(__ubuf__ float *dst, __ubuf__ float *src, float a, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride); void vaxpy(__ubuf__ float *dst, __ubuf__ half *src, half a, uint8_t repeat, uint16_t dstBlockStride, uint16_t srcBlockStride, uint16_t dstRepeatStride, uint16_t srcRepeatStride);
参数说明
参数含义见 表2 双目运算参数说明。
流水类型
PIPE_V
父主题: 双目运算