CMSIS-NN  
CMSIS NN Software Library
 
Loading...
Searching...
No Matches
arm_nnfunctions.h File Reference

Macros

#define USE_INTRINSIC
 

Functions

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.
 
int32_t arm_convolve_wrapper_s4_get_buffer_size (const cmsis_nn_conv_params *conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get the required buffer size for arm_convolve_wrapper_s4.
 
int32_t arm_convolve_wrapper_s4_get_buffer_size_mve (const cmsis_nn_conv_params *conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get the required buffer size for arm_convolve_wrapper_s4 for Arm(R) Helium Architecture case. Refer to arm_convolve_wrapper_s4_get_buffer_size() for function argument details.
 
int32_t arm_convolve_wrapper_s4_get_buffer_size_dsp (const cmsis_nn_conv_params *conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get the required buffer size for arm_convolve_wrapper_s4 for processors with DSP extension. Refer to arm_convolve_wrapper_s4_get_buffer_size() for function argument details.
 
arm_cmsis_nn_status arm_convolve_wrapper_s8 (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)
 s8 convolution layer wrapper function with the main purpose to call the optimal kernel available in cmsis-nn to perform the convolution.
 
int32_t arm_convolve_wrapper_s8_get_buffer_size (const cmsis_nn_conv_params *conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get the required buffer size for arm_convolve_wrapper_s8.
 
int32_t arm_convolve_wrapper_s8_get_buffer_size_mve (const cmsis_nn_conv_params *conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get the required buffer size for arm_convolve_wrapper_s8 for Arm(R) Helium Architecture case. Refer to arm_convolve_wrapper_s8_get_buffer_size() for function argument details.
 
int32_t arm_convolve_wrapper_s8_get_buffer_size_dsp (const cmsis_nn_conv_params *conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get the required buffer size for arm_convolve_wrapper_s8 for processors with DSP extension. Refer to arm_convolve_wrapper_s8_get_buffer_size() for function argument details.
 
arm_cmsis_nn_status arm_convolve_wrapper_s16 (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 int16_t *input_data, const cmsis_nn_dims *filter_dims, const int8_t *filter_data, const cmsis_nn_dims *bias_dims, const cmsis_nn_bias_data *bias_data, const cmsis_nn_dims *output_dims, int16_t *output_data)
 s16 convolution layer wrapper function with the main purpose to call the optimal kernel available in cmsis-nn to perform the convolution.
 
int32_t arm_convolve_wrapper_s16_get_buffer_size (const cmsis_nn_conv_params *conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get the required buffer size for arm_convolve_wrapper_s16.
 
int32_t arm_convolve_wrapper_s16_get_buffer_size_dsp (const cmsis_nn_conv_params *conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get the required buffer size for arm_convolve_wrapper_s16 for for processors with DSP extension. Refer to arm_convolve_wrapper_s16_get_buffer_size() for function argument details.
 
int32_t arm_convolve_wrapper_s16_get_buffer_size_mve (const cmsis_nn_conv_params *conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get the required buffer size for arm_convolve_wrapper_s16 for Arm(R) Helium Architecture case. Refer to arm_convolve_wrapper_s16_get_buffer_size() for function argument details.
 
arm_cmsis_nn_status arm_convolve_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)
 Basic s4 convolution function.
 
arm_cmsis_nn_status arm_convolve_even_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)
 Basic s4 convolution function with a requirement of even number of kernels.
 
arm_cmsis_nn_status arm_convolve_s8 (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 *upscale_dims, const cmsis_nn_dims *output_dims, int8_t *output_data)
 Basic s8 convolution function.
 
int32_t arm_convolve_s4_get_buffer_size (const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims)
 Get the required buffer size for s4 convolution function.
 
int32_t arm_convolve_s8_get_buffer_size (const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims)
 Get the required buffer size for s8 convolution function.
 
arm_cmsis_nn_status arm_transpose_conv_wrapper_s8 (const cmsis_nn_context *ctx, const cmsis_nn_context *output_ctx, const cmsis_nn_transpose_conv_params *transpose_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)
 Wrapper to select optimal transposed convolution algorithm depending on parameters.
 
arm_cmsis_nn_status arm_transpose_conv_s8 (const cmsis_nn_context *ctx, const cmsis_nn_context *output_ctx, const cmsis_nn_transpose_conv_params *transpose_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)
 Basic s8 transpose convolution function.
 
int32_t arm_transpose_conv_s8_get_buffer_size (const cmsis_nn_transpose_conv_params *transposed_conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *out_dims)
 Get the required buffer size for ctx in s8 transpose conv function.
 
int32_t arm_transpose_conv_s8_get_reverse_conv_buffer_size (const cmsis_nn_transpose_conv_params *transposed_conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims)
 Get the required buffer size for output_ctx in s8 transpose conv function.
 
int32_t arm_transpose_conv_s8_get_buffer_size_dsp (const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *out_dims)
 Get size of additional buffer required by arm_transpose_conv_s8() for processors with DSP extension. Refer to arm_transpose_conv_s8_get_buffer_size() for function argument details.
 
int32_t arm_transpose_conv_s8_get_buffer_size_mve (const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *out_dims)
 Get size of additional buffer required by arm_transpose_conv_s8() for Arm(R) Helium Architecture case. Refer to arm_transpose_conv_s8_get_buffer_size() for function argument details.
 
arm_cmsis_nn_status arm_convolve_s16 (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 int16_t *input_data, const cmsis_nn_dims *filter_dims, const int8_t *filter_data, const cmsis_nn_dims *bias_dims, const cmsis_nn_bias_data *bias_data, const cmsis_nn_dims *output_dims, int16_t *output_data)
 Basic s16 convolution function.
 
int32_t arm_convolve_s16_get_buffer_size (const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims)
 Get the required buffer size for s16 convolution function.
 
arm_cmsis_nn_status arm_convolve_1x1_s4_fast (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)
 Fast s4 version for 1x1 convolution (non-square shape)
 
arm_cmsis_nn_status arm_convolve_1x1_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 version for 1x1 convolution with support for non-unity stride values
 
arm_cmsis_nn_status arm_convolve_1x1_s8_fast (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)
 Fast s8 version for 1x1 convolution (non-square shape)
 
int32_t arm_convolve_1x1_s4_fast_get_buffer_size (const cmsis_nn_dims *input_dims)
 Get the required buffer size for arm_convolve_1x1_s4_fast.
 
int32_t arm_convolve_1x1_s8_fast_get_buffer_size (const cmsis_nn_dims *input_dims)
 Get the required buffer size for arm_convolve_1x1_s8_fast.
 
arm_cmsis_nn_status arm_convolve_1x1_s8 (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)
 s8 version for 1x1 convolution with support for non-unity stride values
 
arm_cmsis_nn_status arm_convolve_1_x_n_s8 (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
 
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
 
int32_t arm_convolve_1_x_n_s8_get_buffer_size (const cmsis_nn_conv_params *conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get the required additional buffer size for 1xn convolution.
 
int32_t arm_convolve_1_x_n_s4_get_buffer_size (const cmsis_nn_conv_params *conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get the required additional buffer size for 1xn convolution.
 
arm_cmsis_nn_status arm_depthwise_conv_wrapper_s8 (const cmsis_nn_context *ctx, const cmsis_nn_dw_conv_params *dw_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)
 Wrapper function to pick the right optimized s8 depthwise convolution function.
 
arm_cmsis_nn_status arm_depthwise_conv_wrapper_s4 (const cmsis_nn_context *ctx, const cmsis_nn_dw_conv_params *dw_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)
 Wrapper function to pick the right optimized s4 depthwise convolution function.
 
int32_t arm_depthwise_conv_wrapper_s8_get_buffer_size (const cmsis_nn_dw_conv_params *dw_conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get size of additional buffer required by arm_depthwise_conv_wrapper_s8()
 
int32_t arm_depthwise_conv_wrapper_s8_get_buffer_size_dsp (const cmsis_nn_dw_conv_params *dw_conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get size of additional buffer required by arm_depthwise_conv_wrapper_s8() for processors with DSP extension. Refer to arm_depthwise_conv_wrapper_s8_get_buffer_size() for function argument details.
 
int32_t arm_depthwise_conv_wrapper_s8_get_buffer_size_mve (const cmsis_nn_dw_conv_params *dw_conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get size of additional buffer required by arm_depthwise_conv_wrapper_s8() for Arm(R) Helium Architecture case. Refer to arm_depthwise_conv_wrapper_s8_get_buffer_size() for function argument details.
 
int32_t arm_depthwise_conv_wrapper_s4_get_buffer_size (const cmsis_nn_dw_conv_params *dw_conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get size of additional buffer required by arm_depthwise_conv_wrapper_s4()
 
int32_t arm_depthwise_conv_wrapper_s4_get_buffer_size_dsp (const cmsis_nn_dw_conv_params *dw_conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get size of additional buffer required by arm_depthwise_conv_wrapper_s4() for processors with DSP extension. Refer to arm_depthwise_conv_wrapper_s4_get_buffer_size() for function argument details.
 
int32_t arm_depthwise_conv_wrapper_s4_get_buffer_size_mve (const cmsis_nn_dw_conv_params *dw_conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get size of additional buffer required by arm_depthwise_conv_wrapper_s4() for Arm(R) Helium Architecture case. Refer to arm_depthwise_conv_wrapper_s4_get_buffer_size() for function argument details.
 
arm_cmsis_nn_status arm_depthwise_conv_s8 (const cmsis_nn_context *ctx, const cmsis_nn_dw_conv_params *dw_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)
 Basic s8 depthwise convolution function that doesn't have any constraints on the input dimensions.
 
arm_cmsis_nn_status arm_depthwise_conv_s4 (const cmsis_nn_context *ctx, const cmsis_nn_dw_conv_params *dw_conv_params, const cmsis_nn_per_channel_quant_params *quant_params, const cmsis_nn_dims *input_dims, const int8_t *input, const cmsis_nn_dims *filter_dims, const int8_t *kernel, const cmsis_nn_dims *bias_dims, const int32_t *bias, const cmsis_nn_dims *output_dims, int8_t *output)
 Basic s4 depthwise convolution function that doesn't have any constraints on the input dimensions.
 
arm_cmsis_nn_status arm_depthwise_conv_s16 (const cmsis_nn_context *ctx, const cmsis_nn_dw_conv_params *dw_conv_params, const cmsis_nn_per_channel_quant_params *quant_params, const cmsis_nn_dims *input_dims, const int16_t *input_data, const cmsis_nn_dims *filter_dims, const int8_t *filter_data, const cmsis_nn_dims *bias_dims, const int64_t *bias_data, const cmsis_nn_dims *output_dims, int16_t *output_data)
 Basic s16 depthwise convolution function that doesn't have any constraints on the input dimensions.
 
arm_cmsis_nn_status arm_depthwise_conv_wrapper_s16 (const cmsis_nn_context *ctx, const cmsis_nn_dw_conv_params *dw_conv_params, const cmsis_nn_per_channel_quant_params *quant_params, const cmsis_nn_dims *input_dims, const int16_t *input_data, const cmsis_nn_dims *filter_dims, const int8_t *filter_data, const cmsis_nn_dims *bias_dims, const int64_t *bias_data, const cmsis_nn_dims *output_dims, int16_t *output_data)
 Wrapper function to pick the right optimized s16 depthwise convolution function.
 
int32_t arm_depthwise_conv_wrapper_s16_get_buffer_size (const cmsis_nn_dw_conv_params *dw_conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get size of additional buffer required by arm_depthwise_conv_wrapper_s16()
 
int32_t arm_depthwise_conv_wrapper_s16_get_buffer_size_dsp (const cmsis_nn_dw_conv_params *dw_conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get size of additional buffer required by arm_depthwise_conv_wrapper_s16() for processors with DSP extension. Refer to arm_depthwise_conv_wrapper_s16_get_buffer_size() for function argument details.
 
int32_t arm_depthwise_conv_wrapper_s16_get_buffer_size_mve (const cmsis_nn_dw_conv_params *dw_conv_params, const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims)
 Get size of additional buffer required by arm_depthwise_conv_wrapper_s16() for Arm(R) Helium Architecture case. Refer to arm_depthwise_conv_wrapper_s16_get_buffer_size() for function argument details.
 
arm_cmsis_nn_status arm_depthwise_conv_fast_s16 (const cmsis_nn_context *ctx, const cmsis_nn_dw_conv_params *dw_conv_params, const cmsis_nn_per_channel_quant_params *quant_params, const cmsis_nn_dims *input_dims, const int16_t *input_data, const cmsis_nn_dims *filter_dims, const int8_t *filter_data, const cmsis_nn_dims *bias_dims, const int64_t *bias_data, const cmsis_nn_dims *output_dims, int16_t *output_data)
 Optimized s16 depthwise convolution function with constraint that in_channel equals out_channel. Refer arm_depthwise_conv_s16() for function argument details.
 
int32_t arm_depthwise_conv_fast_s16_get_buffer_size (const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims)
 Get the required buffer size for optimized s16 depthwise convolution function with constraint that in_channel equals out_channel.
 
arm_cmsis_nn_status arm_depthwise_conv_3x3_s8 (const cmsis_nn_context *ctx, const cmsis_nn_dw_conv_params *dw_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)
 Optimized s8 depthwise convolution function for 3x3 kernel size with some constraints on the input arguments(documented below). Refer arm_depthwise_conv_s8() for function argument details.
 
arm_cmsis_nn_status arm_depthwise_conv_s8_opt (const cmsis_nn_context *ctx, const cmsis_nn_dw_conv_params *dw_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)
 Optimized s8 depthwise convolution function with constraint that in_channel equals out_channel. Refer arm_depthwise_conv_s8() for function argument details.
 
arm_cmsis_nn_status arm_depthwise_conv_s4_opt (const cmsis_nn_context *ctx, const cmsis_nn_dw_conv_params *dw_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)
 Optimized s4 depthwise convolution function with constraint that in_channel equals out_channel. Refer arm_depthwise_conv_s4() for function argument details.
 
int32_t arm_depthwise_conv_s8_opt_get_buffer_size (const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims)
 Get the required buffer size for optimized s8 depthwise convolution function with constraint that in_channel equals out_channel.
 
int32_t arm_depthwise_conv_s4_opt_get_buffer_size (const cmsis_nn_dims *input_dims, const cmsis_nn_dims *filter_dims)
 Get the required buffer size for optimized s4 depthwise convolution function with constraint that in_channel equals out_channel.
 
arm_cmsis_nn_status arm_fully_connected_s4 (const cmsis_nn_context *ctx, const cmsis_nn_fc_params *fc_params, const cmsis_nn_per_tensor_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)
 Basic s4 Fully Connected function.
 
arm_cmsis_nn_status arm_fully_connected_s8 (const cmsis_nn_context *ctx, const cmsis_nn_fc_params *fc_params, const cmsis_nn_per_tensor_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)
 Basic s8 Fully Connected function.
 
arm_cmsis_nn_status arm_fully_connected_per_channel_s8 (const cmsis_nn_context *ctx, const cmsis_nn_fc_params *fc_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)
 Basic s8 Fully Connected function using per channel quantization.
 
arm_cmsis_nn_status arm_fully_connected_wrapper_s8 (const cmsis_nn_context *ctx, const cmsis_nn_fc_params *fc_params, const cmsis_nn_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)
 s8 Fully Connected layer wrapper function
 
arm_cmsis_nn_status arm_vector_sum_s8 (int32_t *vector_sum_buf, const int32_t vector_cols, const int32_t vector_rows, const int8_t *vector_data, const int32_t lhs_offset, const int32_t rhs_offset, const int32_t *bias_data)
 Calculate the sum of each row in vector_data, multiply by lhs_offset and optionally add s32 bias_data.
 
arm_cmsis_nn_status arm_vector_sum_s8_s64 (int64_t *vector_sum_buf, const int32_t vector_cols, const int32_t vector_rows, const int8_t *vector_data, const int32_t lhs_offset, const int64_t *bias_data)
 Calculate the sum of each row in vector_data, multiply by lhs_offset and optionally add s64 bias_data.
 
int32_t arm_fully_connected_s8_get_buffer_size (const cmsis_nn_dims *filter_dims)
 Get size of additional buffer required by arm_fully_connected_s8(). See also arm_vector_sum_s8, which is required if buffer size is > 0.
 
int32_t arm_fully_connected_s8_get_buffer_size_dsp (const cmsis_nn_dims *filter_dims)
 Get size of additional buffer required by arm_fully_connected_s8() for processors with DSP extension. Refer to arm_fully_connected_s8_get_buffer_size() for function argument details.
 
int32_t arm_fully_connected_s8_get_buffer_size_mve (const cmsis_nn_dims *filter_dims)
 Get size of additional buffer required by arm_fully_connected_s8() for Arm(R) Helium Architecture case. Refer to arm_fully_connected_s8_get_buffer_size() for function argument details.
 
arm_cmsis_nn_status arm_fully_connected_s16 (const cmsis_nn_context *ctx, const cmsis_nn_fc_params *fc_params, const cmsis_nn_per_tensor_quant_params *quant_params, const cmsis_nn_dims *input_dims, const int16_t *input_data, const cmsis_nn_dims *filter_dims, const int8_t *filter_data, const cmsis_nn_dims *bias_dims, const int64_t *bias_data, const cmsis_nn_dims *output_dims, int16_t *output_data)
 Basic s16 Fully Connected function.
 
int32_t arm_fully_connected_s16_get_buffer_size (const cmsis_nn_dims *filter_dims)
 Get size of additional buffer required by arm_fully_connected_s16().
 
int32_t arm_fully_connected_s16_get_buffer_size_dsp (const cmsis_nn_dims *filter_dims)
 Get size of additional buffer required by arm_fully_connected_s16() for processors with DSP extension. Refer to arm_fully_connected_s16_get_buffer_size() for function argument details.
 
int32_t arm_fully_connected_s16_get_buffer_size_mve (const cmsis_nn_dims *filter_dims)
 Get size of additional buffer required by arm_fully_connected_s16() for Arm(R) Helium Architecture case. Refer to arm_fully_connected_s16_get_buffer_size() for function argument details.
 
arm_cmsis_nn_status arm_elementwise_add_s8 (const int8_t *input_1_vect, const int8_t *input_2_vect, const int32_t input_1_offset, const int32_t input_1_mult, const int32_t input_1_shift, const int32_t input_2_offset, const int32_t input_2_mult, const int32_t input_2_shift, const int32_t left_shift, int8_t *output, const int32_t out_offset, const int32_t out_mult, const int32_t out_shift, const int32_t out_activation_min, const int32_t out_activation_max, const int32_t block_size)
 s8 elementwise add of two vectors
 
arm_cmsis_nn_status arm_elementwise_add_s16 (const int16_t *input_1_vect, const int16_t *input_2_vect, const int32_t input_1_offset, const int32_t input_1_mult, const int32_t input_1_shift, const int32_t input_2_offset, const int32_t input_2_mult, const int32_t input_2_shift, const int32_t left_shift, int16_t *output, const int32_t out_offset, const int32_t out_mult, const int32_t out_shift, const int32_t out_activation_min, const int32_t out_activation_max, const int32_t block_size)
 s16 elementwise add of two vectors
 
arm_cmsis_nn_status arm_elementwise_mul_s8 (const int8_t *input_1_vect, const int8_t *input_2_vect, const int32_t input_1_offset, const int32_t input_2_offset, int8_t *output, const int32_t out_offset, const int32_t out_mult, const int32_t out_shift, const int32_t out_activation_min, const int32_t out_activation_max, const int32_t block_size)
 s8 elementwise multiplication
 
arm_cmsis_nn_status arm_elementwise_mul_s16 (const int16_t *input_1_vect, const int16_t *input_2_vect, const int32_t input_1_offset, const int32_t input_2_offset, int16_t *output, const int32_t out_offset, const int32_t out_mult, const int32_t out_shift, const int32_t out_activation_min, const int32_t out_activation_max, const int32_t block_size)
 s16 elementwise multiplication
 
void arm_relu_q7 (int8_t *data, uint16_t size)
 Q7 RELU function.
 
void arm_relu6_s8 (int8_t *data, uint16_t size)
 s8 ReLU6 function
 
void arm_relu_q15 (int16_t *data, uint16_t size)
 Q15 RELU function.
 
arm_cmsis_nn_status arm_nn_activation_s16 (const int16_t *input, int16_t *output, const int32_t size, const int32_t left_shift, const arm_nn_activation_type type)
 s16 neural network activation function using direct table look-up
 
arm_cmsis_nn_status arm_avgpool_s8 (const cmsis_nn_context *ctx, const cmsis_nn_pool_params *pool_params, const cmsis_nn_dims *input_dims, const int8_t *input_data, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims, int8_t *output_data)
 s8 average pooling function.
 
int32_t arm_avgpool_s8_get_buffer_size (const int dim_dst_width, const int ch_src)
 Get the required buffer size for S8 average pooling function.
 
int32_t arm_avgpool_s8_get_buffer_size_dsp (const int dim_dst_width, const int ch_src)
 Get the required buffer size for S8 average pooling function for processors with DSP extension. Refer to arm_avgpool_s8_get_buffer_size() for function argument details.
 
int32_t arm_avgpool_s8_get_buffer_size_mve (const int dim_dst_width, const int ch_src)
 Get the required buffer size for S8 average pooling function for Arm(R) Helium Architecture case. Refer to arm_avgpool_s8_get_buffer_size() for function argument details.
 
arm_cmsis_nn_status arm_avgpool_s16 (const cmsis_nn_context *ctx, const cmsis_nn_pool_params *pool_params, const cmsis_nn_dims *input_dims, const int16_t *input_data, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims, int16_t *output_data)
 s16 average pooling function.
 
int32_t arm_avgpool_s16_get_buffer_size (const int dim_dst_width, const int ch_src)
 Get the required buffer size for S16 average pooling function.
 
int32_t arm_avgpool_s16_get_buffer_size_dsp (const int dim_dst_width, const int ch_src)
 Get the required buffer size for S16 average pooling function for processors with DSP extension. Refer to arm_avgpool_s16_get_buffer_size() for function argument details.
 
int32_t arm_avgpool_s16_get_buffer_size_mve (const int dim_dst_width, const int ch_src)
 Get the required buffer size for S16 average pooling function for Arm(R) Helium Architecture case. Refer to arm_avgpool_s16_get_buffer_size() for function argument details.
 
arm_cmsis_nn_status arm_max_pool_s8 (const cmsis_nn_context *ctx, const cmsis_nn_pool_params *pool_params, const cmsis_nn_dims *input_dims, const int8_t *input_data, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims, int8_t *output_data)
 s8 max pooling function.
 
arm_cmsis_nn_status arm_max_pool_s16 (const cmsis_nn_context *ctx, const cmsis_nn_pool_params *pool_params, const cmsis_nn_dims *input_dims, const int16_t *src, const cmsis_nn_dims *filter_dims, const cmsis_nn_dims *output_dims, int16_t *dst)
 s16 max pooling function.
 
void arm_softmax_s8 (const int8_t *input, const int32_t num_rows, const int32_t row_size, const int32_t mult, const int32_t shift, const int32_t diff_min, int8_t *output)
 S8 softmax function.
 
void arm_softmax_s8_s16 (const int8_t *input, const int32_t num_rows, const int32_t row_size, const int32_t mult, const int32_t shift, const int32_t diff_min, int16_t *output)
 S8 to s16 softmax function.
 
arm_cmsis_nn_status arm_softmax_s16 (const int16_t *input, const int32_t num_rows, const int32_t row_size, const int32_t mult, const int32_t shift, const cmsis_nn_softmax_lut_s16 *softmax_params, int16_t *output)
 S16 softmax function.
 
void arm_softmax_u8 (const uint8_t *input, const int32_t num_rows, const int32_t row_size, const int32_t mult, const int32_t shift, const int32_t diff_min, uint8_t *output)
 U8 softmax function.
 
void arm_reshape_s8 (const int8_t *input, int8_t *output, const uint32_t total_size)
 Reshape a s8 vector into another with different shape.
 
arm_cmsis_nn_status arm_transpose_s8 (const int8_t *input_data, int8_t *const output_data, const cmsis_nn_dims *const input_dims, const cmsis_nn_dims *const output_dims, const cmsis_nn_transpose_params *const transpose_params)
 Basic transpose function.
 
void arm_concatenation_s8_x (const int8_t *input, const uint16_t input_x, const uint16_t input_y, const uint16_t input_z, const uint16_t input_w, int8_t *output, const uint16_t output_x, const uint32_t offset_x)
 int8/uint8 concatenation function to be used for concatenating N-tensors along the X axis This function should be called for each input tensor to concatenate. The argument offset_x will be used to store the input tensor in the correct position in the output tensor
 
void arm_concatenation_s8_y (const int8_t *input, const uint16_t input_x, const uint16_t input_y, const uint16_t input_z, const uint16_t input_w, int8_t *output, const uint16_t output_y, const uint32_t offset_y)
 int8/uint8 concatenation function to be used for concatenating N-tensors along the Y axis This function should be called for each input tensor to concatenate. The argument offset_y will be used to store the input tensor in the correct position in the output tensor
 
void arm_concatenation_s8_z (const int8_t *input, const uint16_t input_x, const uint16_t input_y, const uint16_t input_z, const uint16_t input_w, int8_t *output, const uint16_t output_z, const uint32_t offset_z)
 int8/uint8 concatenation function to be used for concatenating N-tensors along the Z axis This function should be called for each input tensor to concatenate. The argument offset_z will be used to store the input tensor in the correct position in the output tensor
 
void arm_concatenation_s8_w (const int8_t *input, const uint16_t input_x, const uint16_t input_y, const uint16_t input_z, const uint16_t input_w, int8_t *output, const uint32_t offset_w)
 int8/uint8 concatenation function to be used for concatenating N-tensors along the W axis (Batch size) This function should be called for each input tensor to concatenate. The argument offset_w will be used to store the input tensor in the correct position in the output tensor
 
arm_cmsis_nn_status arm_svdf_s8 (const cmsis_nn_context *ctx, 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 int8_t *input_data, const cmsis_nn_dims *state_dims, int8_t *state_data, const cmsis_nn_dims *weights_feature_dims, const int8_t *weights_feature_data, const cmsis_nn_dims *weights_time_dims, const int8_t *weights_time_data, const cmsis_nn_dims *bias_dims, const int32_t *bias_data, const cmsis_nn_dims *output_dims, int8_t *output_data)
 s8 SVDF function with 8 bit state tensor and 8 bit time weights
 
arm_cmsis_nn_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 int8_t *input_data, const cmsis_nn_dims *state_dims, int16_t *state_data, const cmsis_nn_dims *weights_feature_dims, const int8_t *weights_feature_data, const cmsis_nn_dims *weights_time_dims, const int16_t *weights_time_data, const cmsis_nn_dims *bias_dims, const int32_t *bias_data, const cmsis_nn_dims *output_dims, int8_t *output_data)
 s8 SVDF function with 16 bit state tensor and 16 bit time weights
 
int32_t arm_svdf_s8_get_buffer_size (const cmsis_nn_dims *filter_dims)
 Get size of additional buffer required by arm_svdf_s8().
 
int32_t arm_svdf_s8_get_buffer_size_dsp (const cmsis_nn_dims *filter_dims)
 Get size of additional buffer required by arm_svdf_s8() for processors with DSP extension. Refer to arm_svdf_s8_get_buffer_size() for function argument details.
 
int32_t arm_svdf_s8_get_buffer_size_mve (const cmsis_nn_dims *filter_dims)
 Get size of additional buffer required by arm_svdf_s8() for Arm(R) Helium Architecture case. Refer to arm_svdf_s8_get_buffer_size() for function argument details.
 
arm_cmsis_nn_status arm_lstm_unidirectional_s8 (const int8_t *input, int8_t *output, const cmsis_nn_lstm_params *params, cmsis_nn_lstm_context *buffers)
 LSTM unidirectional function with 8 bit input and output and 16 bit gate output, 32 bit bias.
 
arm_cmsis_nn_status arm_lstm_unidirectional_s16 (const int16_t *input, int16_t *output, const cmsis_nn_lstm_params *params, cmsis_nn_lstm_context *buffers)
 LSTM unidirectional function with 16 bit input and output and 16 bit gate output, 64 bit bias.
 
arm_cmsis_nn_status arm_batch_matmul_s8 (const cmsis_nn_context *ctx, const cmsis_nn_bmm_params *bmm_params, const cmsis_nn_per_tensor_quant_params *quant_params, const cmsis_nn_dims *input_lhs_dims, const int8_t *input_lhs, const cmsis_nn_dims *input_rhs_dims, const int8_t *input_rhs, const cmsis_nn_dims *output_dims, int8_t *output)
 Batch matmul function with 8 bit input and output.
 
arm_cmsis_nn_status arm_batch_matmul_s16 (const cmsis_nn_context *ctx, const cmsis_nn_bmm_params *bmm_params, const cmsis_nn_per_tensor_quant_params *quant_params, const cmsis_nn_dims *input_lhs_dims, const int16_t *input_lhs, const cmsis_nn_dims *input_rhs_dims, const int16_t *input_rhs, const cmsis_nn_dims *output_dims, int16_t *output)
 Batch matmul function with 16 bit input and output.
 
arm_cmsis_nn_status arm_pad_s8 (const int8_t *input, int8_t *output, const int8_t pad_value, const cmsis_nn_dims *input_size, const cmsis_nn_dims *pre_pad, const cmsis_nn_dims *post_pad)
 Expands the size of the input by adding constant values before and after the data, in all dimensions.
 
arm_cmsis_nn_status arm_minimum_s8 (const cmsis_nn_context *ctx, const int8_t *input_1_data, const cmsis_nn_dims *input_1_dims, const int8_t *input_2_data, const cmsis_nn_dims *input_2_dims, int8_t *output_data, const cmsis_nn_dims *output_dims)
 Elementwise binary minimum with 8bit data.
 
arm_cmsis_nn_status arm_maximum_s8 (const cmsis_nn_context *ctx, const int8_t *input_1_data, const cmsis_nn_dims *input_1_dims, const int8_t *input_2_data, const cmsis_nn_dims *input_2_dims, int8_t *output_data, const cmsis_nn_dims *output_dims)
 Elementwise binary maximum with 8bit data.
 

Macro Definition Documentation

◆ USE_INTRINSIC

#define USE_INTRINSIC

Function Documentation

◆ arm_transpose_conv_s8_get_buffer_size_dsp()

int32_t arm_transpose_conv_s8_get_buffer_size_dsp ( const cmsis_nn_dims input_dims,
const cmsis_nn_dims filter_dims,
const cmsis_nn_dims out_dims 
)

Get size of additional buffer required by arm_transpose_conv_s8() for processors with DSP extension. Refer to arm_transpose_conv_s8_get_buffer_size() for function argument details.

Note
Intended for compilation on Host. If compiling for an Arm target, use arm_transpose_conv_s8_get_buffer_size().

◆ arm_transpose_conv_s8_get_buffer_size_mve()

int32_t arm_transpose_conv_s8_get_buffer_size_mve ( const cmsis_nn_dims input_dims,
const cmsis_nn_dims filter_dims,
const cmsis_nn_dims out_dims 
)

Get size of additional buffer required by arm_transpose_conv_s8() for Arm(R) Helium Architecture case. Refer to arm_transpose_conv_s8_get_buffer_size() for function argument details.

Note
Intended for compilation on Host. If compiling for an Arm target, use arm_transpose_conv_s8_get_buffer_size().