CMSIS-NN: SVDF Layer Functions

| 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
SVDF Layer Functions
Neural Network Functions

## Functions

arm_status

arm_svdf_s8 (const cmsis_nn_context *input_ctx, const cmsis_nn_context *output_ctx, const cmsis_nn_svdf_params *svdf_params, const cmsis_nn_per_tensor_quant_params *input_quant_params, const cmsis_nn_per_tensor_quant_params *output_quant_params, const cmsis_nn_dims *input_dims, const q7_t *input_data, const cmsis_nn_dims *state_dims, q7_t *state_data, const cmsis_nn_dims *weights_feature_dims, const q7_t *weights_feature_data, const cmsis_nn_dims *weights_time_dims, const q7_t *weights_time_data, const cmsis_nn_dims *bias_dims, const q31_t *bias_data, const cmsis_nn_dims *output_dims, q7_t *output_data)

| s8 SVDF function with 8 bit state tensor and 8 bit time weights More...

arm_status

arm_svdf_state_s16_s8 (const cmsis_nn_context *input_ctx, const cmsis_nn_context *output_ctx, const cmsis_nn_svdf_params *svdf_params, const cmsis_nn_per_tensor_quant_params *input_quant_params, const cmsis_nn_per_tensor_quant_params *output_quant_params, const cmsis_nn_dims *input_dims, const q7_t *input_data, const cmsis_nn_dims *state_dims, q15_t *state_data, const cmsis_nn_dims *weights_feature_dims, const q7_t *weights_feature_data, const cmsis_nn_dims *weights_time_dims, const q15_t *weights_time_data, const cmsis_nn_dims *bias_dims, const q31_t *bias_data, const cmsis_nn_dims *output_dims, q7_t *output_data)

| s8 SVDF function with 16 bit state tensor and 16 bit time weights More...

## Description

## Function Documentation

arm_status arm_svdf_s8 | ( | const cmsis_nn_context * | input_ctx,
|  | const cmsis_nn_context * | output_ctx,
|  | const cmsis_nn_svdf_params * | svdf_params,
|  | const cmsis_nn_per_tensor_quant_params * | input_quant_params,
|  | const cmsis_nn_per_tensor_quant_params * | output_quant_params,
|  | const cmsis_nn_dims * | input_dims,
|  | const q7_t * | input_data,
|  | const cmsis_nn_dims * | state_dims,
|  | q7_t * | state_data,
|  | const cmsis_nn_dims * | weights_feature_dims,
|  | const q7_t * | weights_feature_data,
|  | const cmsis_nn_dims * | weights_time_dims,
|  | const q7_t * | weights_time_data,
|  | const cmsis_nn_dims * | bias_dims,
|  | const q31_t * | bias_data,
|  | const cmsis_nn_dims * | output_dims,
|  | q7_t * | output_data
| ) |  |

Parameters

  [in] | input_ctx | Temporary scratch buffer
  [in] | output_ctx | Temporary output scratch buffer
  [in] | svdf_params | SVDF Parameters Range of svdf_params->input_offset : [-128, 127] Range of svdf_params->output_offset : [-128, 127]
  [in] | input_quant_params | Input quantization parameters
  [in] | output_quant_params | Output quantization parameters
  [in] | input_dims | Input tensor dimensions
  [in] | input_data | Pointer to input tensor
  [in] | state_dims | State tensor dimensions
  [in] | state_data | Pointer to state tensor
  [in] | weights_feature_dims | Weights (feature) tensor dimensions
  [in] | weights_feature_data | Pointer to the weights (feature) tensor
  [in] | weights_time_dims | Weights (time) tensor dimensions
  [in] | weights_time_data | Pointer to the weights (time) tensor
  [in] | bias_dims | Bias tensor dimensions
  [in] | bias_data | Pointer to bias tensor
  [in] | output_dims | Output tensor dimensions
  [out] | output_data | Pointer to the output tensor

Returns
  The function returns `ARM_MATH_SUCCESS`

1. Supported framework: TensorFlow Lite micro
2. q7 is used as data type eventhough it is s8 data. It is done so to be consistent with existing APIs.

References arm_nn_requantize(), arm_nn_vec_mat_mult_t_s8(), cmsis_nn_context::buf, CLAMP, cmsis_nn_dims::h, cmsis_nn_svdf_params::input_activation, cmsis_nn_svdf_params::input_offset, cmsis_nn_activation::max, cmsis_nn_activation::min, cmsis_nn_per_tensor_quant_params::multiplier, cmsis_nn_dims::n, cmsis_nn_svdf_params::output_activation, cmsis_nn_svdf_params::output_offset, cmsis_nn_svdf_params::rank, and cmsis_nn_per_tensor_quant_params::shift.

arm_status arm_svdf_state_s16_s8 | ( | const cmsis_nn_context * | input_ctx,
|  | const cmsis_nn_context * | output_ctx,
|  | const cmsis_nn_svdf_params * | svdf_params,
|  | const cmsis_nn_per_tensor_quant_params * | input_quant_params,
|  | const cmsis_nn_per_tensor_quant_params * | output_quant_params,
|  | const cmsis_nn_dims * | input_dims,
|  | const q7_t * | input_data,
|  | const cmsis_nn_dims * | state_dims,
|  | q15_t * | state_data,
|  | const cmsis_nn_dims * | weights_feature_dims,
|  | const q7_t * | weights_feature_data,
|  | const cmsis_nn_dims * | weights_time_dims,
|  | const q15_t * | weights_time_data,
|  | const cmsis_nn_dims * | bias_dims,
|  | const q31_t * | bias_data,
|  | const cmsis_nn_dims * | output_dims,
|  | q7_t * | output_data
| ) |  |

Parameters

  [in] | input_ctx | Temporary scratch buffer
  [in] | output_ctx | Temporary output scratch buffer
  [in] | svdf_params | SVDF Parameters Range of svdf_params->input_offset : [-128, 127] Range of svdf_params->output_offset : [-128, 127]
  [in] | input_quant_params | Input quantization parameters
  [in] | output_quant_params | Output quantization parameters
  [in] | input_dims | Input tensor dimensions
  [in] | input_data | Pointer to input tensor
  [in] | state_dims | State tensor dimensions
  [in] | state_data | Pointer to state tensor
  [in] | weights_feature_dims | Weights (feature) tensor dimensions
  [in] | weights_feature_data | Pointer to the weights (feature) tensor
  [in] | weights_time_dims | Weights (time) tensor dimensions
  [in] | weights_time_data | Pointer to the weights (time) tensor
  [in] | bias_dims | Bias tensor dimensions
  [in] | bias_data | Pointer to bias tensor
  [in] | output_dims | Output tensor dimensions
  [out] | output_data | Pointer to the output tensor

Returns
  The function returns `ARM_MATH_SUCCESS`

1. Supported framework: TensorFlow Lite micro
2. q7 is used as data type eventhough it is s8 data. It is done so to be consistent with existing APIs.

References arm_nn_read_q15x2_ia(), arm_nn_requantize(), arm_nn_vec_mat_mult_t_svdf_s8(), cmsis_nn_context::buf, CLAMP, cmsis_nn_dims::h, cmsis_nn_svdf_params::input_activation, cmsis_nn_svdf_params::input_offset, cmsis_nn_activation::max, cmsis_nn_activation::min, cmsis_nn_per_tensor_quant_params::multiplier, cmsis_nn_dims::n, cmsis_nn_svdf_params::output_activation, cmsis_nn_svdf_params::output_offset, cmsis_nn_svdf_params::rank, and cmsis_nn_per_tensor_quant_params::shift.