CMSIS-NN: arm_nn_mat_mult_kernel_s8_s16.c File Reference

| CMSIS-NN Version 3.1.0 CMSIS NN Software Library

- Main Page
- Usage and Description
- Reference

All Data Structures Files Functions Variables Enumerations Enumerator Macros Groups Pages
Functions
arm_nn_mat_mult_kernel_s8_s16.c File Reference

## Functions

q7_t * | arm_nn_mat_mult_kernel_s8_s16 (const q7_t *input_a, const q15_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 uint16_t num_col_a, const int32_t *const output_bias, q7_t *out_0)
| Matrix-multiplication function for convolution with per-channel requantization. More...

## Function Documentation

q7_t* arm_nn_mat_mult_kernel_s8_s16 | ( | const q7_t * | input_a,
|  | const q15_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 uint16_t | num_col_a,
|  | const int32_t *const | output_bias,
|  | q7_t * | out_0
| ) |  |

Parameters

  [in] | input_a | pointer to operand A
  [in] | input_b | pointer to operand B, always consists of 2 vectors.
  [in] | output_ch | number of rows of A
  [in] | out_shift | pointer to per output channel requantization shift parameter.
  [in] | out_mult | pointer to per output channel requantization multiplier parameter.
  [in] | out_offset | output tensor offset.
  [in] | activation_min | minimum value to clamp the output to. Range : int8
  [in] | activation_max | maximum value to clamp the output to. Range : int8
  [in] | num_col_a | number of columns of A
  [in] | output_bias | per output channel bias. Range : int32
  [in,out] | out_0 | pointer to output

Returns
  The function returns one of the two
  1. The incremented output pointer for a successful operation or
  2. 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. Supported framework: TensorFlow Lite micro.

References arm_nn_read_q15x2_ia(), arm_nn_requantize(), MAX, and MIN.

Referenced by arm_convolve_s8().