Function arm_nn_mat_mult_kernel_row_offset_s8_s16¶
Defined in File arm_nnsupportfunctions.h
Function Documentation¶
-
int8_t *arm_nn_mat_mult_kernel_row_offset_s8_s16(const int8_t *input_a, const int16_t *input_b, const uint16_t output_ch, const int32_t *out_shift, const int32_t *out_mult, const int32_t out_offset, const int16_t activation_min, const int16_t activation_max, const int32_t num_col_a, const int32_t aligned_num_col_a, const int32_t *const output_bias, const int32_t row_address_offset, int8_t *out_0)¶
Matrix-multiplication function for convolution with per-channel requantization, supporting an address offset between rows.
This function is slighly less performant than arm_nn_mat_mult_kernel_s8_s16, but allows support for grouped convolution. Supported framework: TensorFlow Lite micro.
- Parameters:
input_a – [in] pointer to operand A
input_b – [in] pointer to operand B, always consists of 2 vectors.
output_ch – [in] number of rows of A
out_shift – [in] pointer to per output channel requantization shift parameter.
out_mult – [in] pointer to per output channel requantization multiplier parameter.
out_offset – [in] output tensor offset.
activation_min – [in] minimum value to clamp the output to. Range : int8
activation_max – [in] maximum value to clamp the output to. Range : int8
num_col_a – [in] number of columns of A
aligned_num_col_a – [in] number of columns of A aligned by 4
output_bias – [in] per output channel bias. Range : int32
row_address_offset – [in] address offset between rows in the output
out_0 – [inout] pointer to output
- Returns:
The function returns one of the two
The incremented output pointer for a successful operation or
NULL if implementation is not available.
This function does the matrix multiplication of weight matrix for all output channels with 2 columns from im2col and produces two elements/output_channel. The outputs are clamped in the range provided by activation min and max.