Function arm_convolve_wrapper_s4

Function Documentation

arm_cmsis_nn_status arm_convolve_wrapper_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)

s4 convolution layer wrapper function with the main purpose to call the optimal kernel available in cmsis-nn to perform the convolution.

Parameters:
  • ctx[inout] Function context that contains the additional buffer if required by the function. arm_convolve_wrapper_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, HK, WK, C_IN] where HK and WK are the spatial filter dimensions

  • filter_data[in] Filter data pointer. Data type: int8 packed with 2x int4

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

  • bias_data[in] 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.