Function arm_convolve_1_x_n_s4

Function Documentation

arm_cmsis_nn_status arm_convolve_1_x_n_s4(const cmsis_nn_context *ctx, const cmsis_nn_conv_params *conv_params, const cmsis_nn_per_channel_quant_params *quant_params, const cmsis_nn_dims *input_dims, const int8_t *input_data, const cmsis_nn_dims *filter_dims, const int8_t *filter_data, const cmsis_nn_dims *bias_dims, const int32_t *bias_data, const cmsis_nn_dims *output_dims, int8_t *output_data)

1xn convolution for s4 weights

  • Supported framework : TensorFlow Lite Micro

  • The following constrains on the arguments apply

    1. stride.w * input_dims->c is a multiple of 4

    2. Explicit constraints(since it is for 1xN convolution) -## input_dims->h equals 1 -## output_dims->h equals 1 -## filter_dims->h equals 1

      Todo:

      Remove constraint on output_dims->w to make the function generic.

Parameters:
  • ctx[inout] Function context that contains the additional buffer if required by the function. arm_convolve_1_x_n_s4_get_buffer_size will return the buffer_size if required The caller is expected to clear the buffer, if applicable, for security reasons.

  • conv_params[in] Convolution parameters (e.g. strides, dilations, pads,…). Range of conv_params->input_offset : [-127, 128] Range of conv_params->output_offset : [-128, 127]

  • quant_params[in] Per-channel quantization info. It contains the multiplier and shift values to be applied to each output channel

  • input_dims[in] Input (activation) tensor dimensions. Format: [N, H, W, C_IN]

  • input_data[in] Input (activation) data pointer. Data type: int8

  • filter_dims[in] Filter tensor dimensions. Format: [C_OUT, 1, WK, C_IN] where WK is the horizontal spatial filter dimension

  • filter_data[in] Filter data pointer. Data type: int8 as packed int4

  • bias_dims[in] Bias tensor dimensions. Format: [C_OUT]

  • bias_data[in] Optional bias data pointer. Data type: int32

  • output_dims[in] Output tensor dimensions. Format: [N, H, W, C_OUT]

  • output_data[out] Output data pointer. Data type: int8

Returns:

The function returns either ARM_CMSIS_NN_ARG_ERROR if argument constraints fail. or, ARM_CMSIS_NN_SUCCESS on successful completion.