GetBufferSizeNNConv

__STATIC_INLINE int32_t riscv_convolve_fast_s16_get_buffer_size_dsp (const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)
int32_t riscv_convolve_fast_s16_get_buffer_size(const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)
int32_t riscv_convolve_s16_get_buffer_size(const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)
int32_t riscv_convolve_wrapper_s16_get_buffer_size(const nmsis_nn_conv_params *conv_params, const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims, const nmsis_nn_dims *output_dims)
int32_t riscv_convolve_wrapper_s16_get_buffer_size_dsp(const nmsis_nn_conv_params *conv_params, const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims, const nmsis_nn_dims *output_dims)
int32_t riscv_convolve_s8_get_buffer_size(const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)
int32_t riscv_convolve_1_x_n_s8_get_buffer_size(const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)
int32_t riscv_convolve_1x1_s8_fast_get_buffer_size(const nmsis_nn_dims *input_dims)
int32_t riscv_convolve_wrapper_s8_get_buffer_size(const nmsis_nn_conv_params *conv_params, const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims, const nmsis_nn_dims *output_dims)
int32_t riscv_convolve_wrapper_s8_get_buffer_size_dsp(const nmsis_nn_conv_params *conv_params, const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims, const nmsis_nn_dims *output_dims)
__STATIC_INLINE int32_t riscv_depthwise_conv_fast_s16_get_buffer_size_dsp (const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)
int32_t riscv_depthwise_conv_fast_s16_get_buffer_size(const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)
int32_t riscv_depthwise_conv_wrapper_s16_get_buffer_size(const nmsis_nn_dw_conv_params *dw_conv_params, const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims, const nmsis_nn_dims *output_dims)
int32_t riscv_depthwise_conv_wrapper_s16_get_buffer_size_dsp(const nmsis_nn_dw_conv_params *dw_conv_params, const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims, const nmsis_nn_dims *output_dims)
__STATIC_INLINE int32_t riscv_depthwise_conv_s8_opt_get_buffer_size_dsp (const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)
int32_t riscv_depthwise_conv_s8_opt_get_buffer_size(const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)
int32_t riscv_depthwise_conv_wrapper_s8_get_buffer_size(const nmsis_nn_dw_conv_params *dw_conv_params, const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims, const nmsis_nn_dims *output_dims)
int32_t riscv_depthwise_conv_wrapper_s8_get_buffer_size_dsp(const nmsis_nn_dw_conv_params *dw_conv_params, const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims, const nmsis_nn_dims *output_dims)
group GetBufferSizeNNConv

Functions

__STATIC_INLINE int32_t riscv_convolve_fast_s16_get_buffer_size_dsp (const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)
int32_t riscv_convolve_fast_s16_get_buffer_size(const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)

Get the required buffer size for fast s16 convolution function.

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

  • filter_dims[in] Filter tensor dimensions. Format: [C_OUT, HK, WK, C_IN] where HK and WK are the spatial filter dimensions

Returns

The function returns required buffer size(bytes)

int32_t riscv_convolve_s16_get_buffer_size(const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)

Get the required buffer size for s16 convolution function.

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

  • filter_dims[in] Filter tensor dimensions. Format: [C_OUT, HK, WK, C_IN] where HK and WK are the spatial filter dimensions

Returns

The function returns required buffer size(bytes)

int32_t riscv_convolve_wrapper_s16_get_buffer_size(const nmsis_nn_conv_params *conv_params, const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims, const nmsis_nn_dims *output_dims)

Get the required buffer size for riscv_convolve_wrapper_s16.

Parameters
  • conv_params[in] Convolution parameters (e.g. strides, dilations, pads,…). conv_params->input_offset : Not used conv_params->output_offset : Not used

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

  • filter_dims[in] Filter dimensions. Format: [C_OUT, HK, WK, C_IN] where HK and WK are the spatial filter dimensions

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

Returns

The function returns required buffer size(bytes)

int32_t riscv_convolve_wrapper_s16_get_buffer_size_dsp(const nmsis_nn_conv_params *conv_params, const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims, const nmsis_nn_dims *output_dims)

Get the required buffer size for riscv_convolve_wrapper_s16 for for processors with DSP extension. Refer to riscv_convolve_wrapper_s16_get_buffer_size() for function argument details.

Note

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

int32_t riscv_convolve_s8_get_buffer_size(const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)

Get the required buffer size for s8 convolution function.

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

  • filter_dims[in] Filter tensor dimensions. Format: [C_OUT, HK, WK, C_IN] where HK and WK are the spatial filter dimensions

Returns

The function returns required buffer size(bytes)

int32_t riscv_convolve_1_x_n_s8_get_buffer_size(const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)

Get the required additional buffer size for 1xn convolution.

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

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

Returns

The function returns required buffer size(bytes)

int32_t riscv_convolve_1x1_s8_fast_get_buffer_size(const nmsis_nn_dims *input_dims)

Get the required buffer size for riscv_convolve_1x1_s8_fast.

Parameters

input_dims[in] Input (activation) dimensions

Returns

The function returns the required buffer size in bytes

int32_t riscv_convolve_wrapper_s8_get_buffer_size(const nmsis_nn_conv_params *conv_params, const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims, const nmsis_nn_dims *output_dims)

Get the required buffer size for riscv_convolve_wrapper_s8.

Parameters
  • 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]

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

  • filter_dims[in] Filter dimensions. Format: [C_OUT, HK, WK, C_IN] where HK and WK are the spatial filter dimensions

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

Returns

The function returns required buffer size(bytes)

int32_t riscv_convolve_wrapper_s8_get_buffer_size_dsp(const nmsis_nn_conv_params *conv_params, const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims, const nmsis_nn_dims *output_dims)

Get the required buffer size for riscv_convolve_wrapper_s8 for processors with DSP extension. Refer to riscv_convolve_wrapper_s8_get_buffer_size() for function argument details.

Note

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

__STATIC_INLINE int32_t riscv_depthwise_conv_fast_s16_get_buffer_size_dsp (const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)
int32_t riscv_depthwise_conv_fast_s16_get_buffer_size(const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)

Get the required buffer size for optimized s16 depthwise convolution function with constraint that in_channel equals out_channel.

Parameters
  • input_dims[in] Input (activation) tensor dimensions. Format: [1, H, W, C_IN] Batch argument N is not used.

  • filter_dims[in] Filter tensor dimensions. Format: [1, H, W, C_OUT]

Returns

The function returns required buffer size in bytes

int32_t riscv_depthwise_conv_wrapper_s16_get_buffer_size(const nmsis_nn_dw_conv_params *dw_conv_params, const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims, const nmsis_nn_dims *output_dims)

Get size of additional buffer required by riscv_depthwise_conv_wrapper_s16()

Parameters
  • dw_conv_params[in] Depthwise convolution parameters (e.g. strides, dilations, pads,…) Range of dw_conv_params->input_offset : Not used Range of dw_conv_params->input_offset : Not used

  • input_dims[in] Input (activation) tensor dimensions. Format: [H, W, C_IN] Batch argument N is not used and assumed to be 1.

  • filter_dims[in] Filter tensor dimensions. Format: [1, H, W, C_OUT]

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

Returns

Size of additional memory required for optimizations in bytes.

int32_t riscv_depthwise_conv_wrapper_s16_get_buffer_size_dsp(const nmsis_nn_dw_conv_params *dw_conv_params, const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims, const nmsis_nn_dims *output_dims)
__STATIC_INLINE int32_t riscv_depthwise_conv_s8_opt_get_buffer_size_dsp (const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)
int32_t riscv_depthwise_conv_s8_opt_get_buffer_size(const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims)

Get the required buffer size for optimized s8 depthwise convolution function with constraint that in_channel equals out_channel.

Parameters
  • input_dims[in] Input (activation) tensor dimensions. Format: [1, H, W, C_IN] Batch argument N is not used.

  • filter_dims[in] Filter tensor dimensions. Format: [1, H, W, C_OUT]

Returns

The function returns required buffer size in bytes

int32_t riscv_depthwise_conv_wrapper_s8_get_buffer_size(const nmsis_nn_dw_conv_params *dw_conv_params, const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims, const nmsis_nn_dims *output_dims)

Get size of additional buffer required by riscv_depthwise_conv_wrapper_s8()

Parameters
  • dw_conv_params[in] Depthwise convolution parameters (e.g. strides, dilations, pads,…) Range of dw_conv_params->input_offset : [-127, 128] Range of dw_conv_params->input_offset : [-128, 127]

  • input_dims[in] Input (activation) tensor dimensions. Format: [H, W, C_IN] Batch argument N is not used and assumed to be 1.

  • filter_dims[in] Filter tensor dimensions. Format: [1, H, W, C_OUT]

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

Returns

Size of additional memory required for optimizations in bytes.

int32_t riscv_depthwise_conv_wrapper_s8_get_buffer_size_dsp(const nmsis_nn_dw_conv_params *dw_conv_params, const nmsis_nn_dims *input_dims, const nmsis_nn_dims *filter_dims, const nmsis_nn_dims *output_dims)