Skip to content
heliaCORE
API reference
HELIA HUB

Convolution Functions

Collection of convolution, depthwise convolution functions and their variants.

The convolution is implemented in 2 steps: im2col and General Matrix Multiplication(GEMM)

im2col is a process of converting each patch of image data into a column. After im2col, the convolution is computed as matrix-matrix multiplication.

To reduce the memory footprint, the im2col is performed partially. Each iteration, only a few column (i.e., patches) are generated followed by GEMM.

Machine-readable model

function

Depthwise convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:79

arm_cmsis_nn_status arm_depthwise_nhwc_conv_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f32 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input,
const cmsis_nn_dims *filter_dims,
const float32_t *kernel,
const cmsis_nn_dims *bias_dims,
const float32_t *bias,
const cmsis_nn_dims *output_dims,
float32_t *output
)

Depthwise convolution, NHWC layout.

Parameters of arm_depthwise_nhwc_conv_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
dw_conv_paramsconst cmsis_nn_dw_conv_params_f32 *inDepthwise convolution parameters (stride, padding, dilation, channel multiplier and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions in NHWC format.
inputconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions in NHWC-compatible depthwise format.
kernelconst float32_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
biasconst float32_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions in NHWC format.
outputfloat32_t *outPointer to the output tensor data.
Returns of arm_depthwise_nhwc_conv_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Depthwise convolution, dispatch by layout.

Include/arm_nnfunctions_flt.h:119

arm_cmsis_nn_status arm_depthwise_conv_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f32 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input,
const cmsis_nn_dims *filter_dims,
const float32_t *kernel,
const cmsis_nn_dims *bias_dims,
const float32_t *bias,
const cmsis_nn_dims *output_dims,
float32_t *output,
arm_nn_tensor_layout layout
)

Depthwise convolution, dispatch by layout.

Parameters of arm_depthwise_conv_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
dw_conv_paramsconst cmsis_nn_dw_conv_params_f32 *inDepthwise convolution parameters (stride, padding, dilation, channel multiplier and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format depends on `layout`.
inputconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format depends on `layout`.
kernelconst float32_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
biasconst float32_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format depends on `layout`.
outputfloat32_t *outPointer to the output tensor data.
layoutarm_nn_tensor_layoutinTensor layout selector. Current float APIs require `ARM_NN_LAYOUT_NHWC`.
Returns of arm_depthwise_conv_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Depthwise convolution wrapper using the CMSIS-NN baseline path.

Include/arm_nnfunctions_flt.h:158

arm_cmsis_nn_status arm_depthwise_conv_wrapper_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f32 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input,
const cmsis_nn_dims *filter_dims,
const float32_t *kernel,
const cmsis_nn_dims *bias_dims,
const float32_t *bias,
const cmsis_nn_dims *output_dims,
float32_t *output
)

Depthwise convolution wrapper using the CMSIS-NN baseline path.

Parameters of arm_depthwise_conv_wrapper_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
dw_conv_paramsconst cmsis_nn_dw_conv_params_f32 *inDepthwise convolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
inputconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
kernelconst float32_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
biasconst float32_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
outputfloat32_t *outPointer to the output tensor data.
Returns of arm_depthwise_conv_wrapper_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Get the temporary buffer size required by depthwise convolution.

Include/arm_nnfunctions_flt.h:193

int32_t arm_depthwise_conv_f32_get_buffer_size(
const cmsis_nn_dw_conv_params_f32 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims,
arm_nn_tensor_layout layout
)

Get the temporary buffer size required by depthwise convolution.

Parameters of arm_depthwise_conv_f32_get_buffer_size
NameTypeDirectionDescription
dw_conv_paramsconst cmsis_nn_dw_conv_params_f32 *inDepthwise convolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
layoutarm_nn_tensor_layoutinTensor layout selector.
Returns of arm_depthwise_conv_f32_get_buffer_size
Description
Required buffer size in bytes, or 0 when no scratch buffer is needed.
function

Get the buffer size required by the depthwise convolution wrapper.

Include/arm_nnfunctions_flt.h:209

int32_t arm_depthwise_conv_wrapper_f32_get_buffer_size(
const cmsis_nn_dw_conv_params_f32 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims
)

Get the buffer size required by the depthwise convolution wrapper.

Parameters of arm_depthwise_conv_wrapper_f32_get_buffer_size
NameTypeDirectionDescription
dw_conv_paramsconst cmsis_nn_dw_conv_params_f32 *inDepthwise convolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
Returns of arm_depthwise_conv_wrapper_f32_get_buffer_size
Description
Required buffer size in bytes, or 0 when no scratch buffer is needed.
function

Convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:244

arm_cmsis_nn_status arm_convolve_nhwc_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

Convolution, NHWC layout.

Parameters of arm_convolve_nhwc_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float32_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float32_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat32_t *outPointer to the output tensor data.
Returns of arm_convolve_nhwc_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Convolution, dispatch by layout.

Include/arm_nnfunctions_flt.h:278

arm_cmsis_nn_status arm_convolve_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data,
arm_nn_tensor_layout layout
)

Convolution, dispatch by layout.

Parameters of arm_convolve_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format depends on `layout`.
input_dataconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format depends on `layout`.
filter_dataconst float32_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float32_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format depends on `layout`.
output_datafloat32_t *outPointer to the output tensor data.
layoutarm_nn_tensor_layoutinTensor layout selector. Current float APIs require `ARM_NN_LAYOUT_NHWC`.
Returns of arm_convolve_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Convolution wrapper using the CMSIS-NN baseline path.

Include/arm_nnfunctions_flt.h:306

arm_cmsis_nn_status arm_convolve_wrapper_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

Convolution wrapper using the CMSIS-NN baseline path.

Parameters of arm_convolve_wrapper_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float32_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float32_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat32_t *outPointer to the output tensor data.
Returns of arm_convolve_wrapper_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1x1 convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:333

arm_cmsis_nn_status arm_convolve_1x1_nhwc_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

1x1 convolution, NHWC layout.

Parameters of arm_convolve_1x1_nhwc_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float32_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float32_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat32_t *outPointer to the output tensor data.
Returns of arm_convolve_1x1_nhwc_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1x1 convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:352

arm_cmsis_nn_status arm_convolve_1x1_nhwc_ohwi_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

1x1 convolution, NHWC layout.

Parameters of arm_convolve_1x1_nhwc_ohwi_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float32_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float32_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat32_t *outPointer to the output tensor data.
Returns of arm_convolve_1x1_nhwc_ohwi_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1x1 convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:371

arm_cmsis_nn_status arm_convolve_1x1_nhwc_packed_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

1x1 convolution, NHWC layout.

Parameters of arm_convolve_1x1_nhwc_packed_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float32_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float32_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat32_t *outPointer to the output tensor data.
Returns of arm_convolve_1x1_nhwc_packed_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1x1 convolution, dispatch by layout.

Include/arm_nnfunctions_flt.h:404

arm_cmsis_nn_status arm_convolve_1x1_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data,
arm_nn_tensor_layout layout
)

1x1 convolution, dispatch by layout.

Parameters of arm_convolve_1x1_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format depends on `layout`.
input_dataconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format depends on `layout`.
filter_dataconst float32_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float32_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format depends on `layout`.
output_datafloat32_t *outPointer to the output tensor data.
layoutarm_nn_tensor_layoutinTensor layout selector. Current float APIs require `ARM_NN_LAYOUT_NHWC`.
Returns of arm_convolve_1x1_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1xN convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:448

arm_cmsis_nn_status arm_convolve_1_x_n_nhwc_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

1xN convolution, NHWC layout.

Parameters of arm_convolve_1_x_n_nhwc_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float32_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float32_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat32_t *outPointer to the output tensor data.
Returns of arm_convolve_1_x_n_nhwc_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1xN convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:468

arm_cmsis_nn_status arm_convolve_1_x_n_nhwc_ohwi_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

1xN convolution, NHWC layout.

Parameters of arm_convolve_1_x_n_nhwc_ohwi_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float32_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float32_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat32_t *outPointer to the output tensor data.
Returns of arm_convolve_1_x_n_nhwc_ohwi_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1xN convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:488

arm_cmsis_nn_status arm_convolve_1_x_n_nhwc_packed_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

1xN convolution, NHWC layout.

Parameters of arm_convolve_1_x_n_nhwc_packed_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float32_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float32_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat32_t *outPointer to the output tensor data.
Returns of arm_convolve_1_x_n_nhwc_packed_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1xN convolution, dispatch by layout.

Include/arm_nnfunctions_flt.h:532

arm_cmsis_nn_status arm_convolve_1_x_n_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data,
arm_nn_tensor_layout layout
)

1xN convolution, dispatch by layout.

Parameters of arm_convolve_1_x_n_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format depends on `layout`.
input_dataconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format depends on `layout`.
filter_dataconst float32_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float32_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format depends on `layout`.
output_datafloat32_t *outPointer to the output tensor data.
layoutarm_nn_tensor_layoutinTensor layout selector. Current float APIs require `ARM_NN_LAYOUT_NHWC`.
Returns of arm_convolve_1_x_n_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Get the temporary buffer size required by convolution.

Include/arm_nnfunctions_flt.h:560

int32_t arm_convolve_f32_get_buffer_size(
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims,
arm_nn_tensor_layout layout
)

Get the temporary buffer size required by convolution.

Parameters of arm_convolve_f32_get_buffer_size
NameTypeDirectionDescription
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
layoutarm_nn_tensor_layoutinTensor layout selector.
Returns of arm_convolve_f32_get_buffer_size
Description
Required buffer size in bytes, or 0 when no scratch buffer is needed.
function

Get the buffer size required by the convolution wrapper.

Include/arm_nnfunctions_flt.h:576

int32_t arm_convolve_wrapper_f32_get_buffer_size(
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims
)

Get the buffer size required by the convolution wrapper.

Parameters of arm_convolve_wrapper_f32_get_buffer_size
NameTypeDirectionDescription
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
Returns of arm_convolve_wrapper_f32_get_buffer_size
Description
Required buffer size in bytes, or 0 when no scratch buffer is needed.
function

Get the buffer size required by 1x1 convolution.

Include/arm_nnfunctions_flt.h:597

int32_t arm_convolve_1x1_f32_get_buffer_size(
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims,
arm_nn_tensor_layout layout
)

Get the buffer size required by 1x1 convolution.

Parameters of arm_convolve_1x1_f32_get_buffer_size
NameTypeDirectionDescription
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
layoutarm_nn_tensor_layoutinTensor layout selector.
Returns of arm_convolve_1x1_f32_get_buffer_size
Description
Required buffer size in bytes, or 0 when no scratch buffer is needed.
function

Get the buffer size required by 1xN convolution.

Include/arm_nnfunctions_flt.h:614

int32_t arm_convolve_1_x_n_f32_get_buffer_size(
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims,
arm_nn_tensor_layout layout
)

Get the buffer size required by 1xN convolution.

Parameters of arm_convolve_1_x_n_f32_get_buffer_size
NameTypeDirectionDescription
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
layoutarm_nn_tensor_layoutinTensor layout selector.
Returns of arm_convolve_1_x_n_f32_get_buffer_size
Description
Required buffer size in bytes, or 0 when no scratch buffer is needed.
function

Basic float32 conv1d with a 1x5 filter.

Include/arm_nnfunctions_flt.h:653

arm_cmsis_nn_status arm_convolve_1d_k5_nhwc_ohwi_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

Basic float32 conv1d with a 1x5 filter.

The conv1d k5 route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry.

  • Gate: arm_nn_conv_flt_is_1d_k with k = 5: batch 1, input and output height 1, a 1x5 filter, unit stride and dilation, no padding. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_1d_k5_nhwc_ohwi_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float32_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float32_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float32_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat32_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_1d_k5_nhwc_ohwi_f32
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the layer is not the shape arm_nn_conv_flt_is_1d_k accepts with k = 5, or the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 conv1d with a 1x5 filter.

Include/arm_nnfunctions_flt.h:667

arm_cmsis_nn_status arm_convolve_1d_k5_nhwc_packed_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

Basic float32 conv1d with a 1x5 filter.

The conv1d k5 route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry.

  • Gate: arm_nn_conv_flt_is_1d_k with k = 5: batch 1, input and output height 1, a 1x5 filter, unit stride and dilation, no padding. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_1d_k5_nhwc_packed_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float32_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float32_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float32_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat32_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_1d_k5_nhwc_packed_f32
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the layer is not the shape arm_nn_conv_flt_is_1d_k accepts with k = 5, or the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 conv1d with a 1x3 filter.

Include/arm_nnfunctions_flt.h:710

arm_cmsis_nn_status arm_convolve_1d_k3_nhwc_ohwi_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

Basic float32 conv1d with a 1x3 filter.

The conv1d k3 route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry.

  • Gate: arm_nn_conv_flt_is_1d_k with k = 3. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_1d_k3_nhwc_ohwi_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float32_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float32_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float32_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat32_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_1d_k3_nhwc_ohwi_f32
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the layer is not the shape arm_nn_conv_flt_is_1d_k accepts with k = 3, or the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 conv1d with a 1x3 filter.

Include/arm_nnfunctions_flt.h:724

arm_cmsis_nn_status arm_convolve_1d_k3_nhwc_packed_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

Basic float32 conv1d with a 1x3 filter.

The conv1d k3 route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry.

  • Gate: arm_nn_conv_flt_is_1d_k with k = 3. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_1d_k3_nhwc_packed_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float32_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float32_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float32_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat32_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_1d_k3_nhwc_packed_f32
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the layer is not the shape arm_nn_conv_flt_is_1d_k accepts with k = 3, or the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 direct convolution for small input-channel counts.

Include/arm_nnfunctions_flt.h:769

arm_cmsis_nn_status arm_convolve_small_c_nhwc_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

Basic float32 direct convolution for small input-channel counts.

The small-C route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry. Lanes are output x positions and weights are scalars.

  • Gate: arm_nn_conv_f32_is_small_c or arm_nn_conv_f32_is_small_c_3x3 for float32, subject to arm_nn_conv_f32_small_c_coords_ok; arm_nn_conv_f16_is_small_c for float16. Either filter format; the format changes only the weight stride inside one kernel. No scratch. The additional float32 region uses 3x3 filters, four input channels, at most eight output channels and at least four output columns.
  • arm_convolve_small_c_nhwc_f16() takes the same arguments and return codes. It accumulates in float32, the kernel both arm_convolve_f16() and arm_convolve_f16_acc16() run on this route. For 3x3 filters, 2..3 input channels and output height/width >= 32, it caches two channels of weights in a fixed 216-byte stack buffer. Other admitted shapes use the uncached kernel. Neither path needs caller scratch.
Parameters of arm_convolve_small_c_nhwc_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float32_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float32_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float32_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat32_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_small_c_nhwc_f32
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the layer is outside the gate, or the build lacks MVE float (ARM_MATH_MVEF for float32, ARM_MATH_MVE_FLOAT16 for float16) or defines ARM_MATH_AUTOVECTORIZE; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 packed-patch GEMM convolution.

Include/arm_nnfunctions_flt.h:816

arm_cmsis_nn_status arm_convolve_patch_gemm_nhwc_ohwi_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

Basic float32 packed-patch GEMM convolution.

The packed-patch GEMM route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry: up to ARM_NN_CONV_NHWC_PATCH_GEMM_F32_MAX_TILE_ROWS output positions at a time are packed into ctx as patch rows and multiplied with the filter.

  • Valid for any NHWC layer. The router takes it when arm_nn_conv_flt_is_patch_gemm holds and ctx holds one patch row; unlike the router, the entry does not fall back to the direct route.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_patch_gemm_nhwc_ohwi_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inScratch buffer of at least one patch row (HK x WK x C_IN elements); `arm_convolve_patch_gemm_f32_get_buffer_size()` gives the size for full tiles
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float32_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float32_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float32_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat32_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_patch_gemm_nhwc_ohwi_f32
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL, or ctx, ctx->buf is NULL or ctx->size is below one patch row `ARM_CMSIS_NN_NO_IMPL_ERROR` - the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 packed-patch GEMM convolution.

Include/arm_nnfunctions_flt.h:830

arm_cmsis_nn_status arm_convolve_patch_gemm_nhwc_packed_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

Basic float32 packed-patch GEMM convolution.

The packed-patch GEMM route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry: up to ARM_NN_CONV_NHWC_PATCH_GEMM_F32_MAX_TILE_ROWS output positions at a time are packed into ctx as patch rows and multiplied with the filter.

  • Valid for any NHWC layer. The router takes it when arm_nn_conv_flt_is_patch_gemm holds and ctx holds one patch row; unlike the router, the entry does not fall back to the direct route.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_patch_gemm_nhwc_packed_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inScratch buffer of at least one patch row (HK x WK x C_IN elements); `arm_convolve_patch_gemm_f32_get_buffer_size()` gives the size for full tiles
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float32_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float32_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float32_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat32_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_patch_gemm_nhwc_packed_f32
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL, or ctx, ctx->buf is NULL or ctx->size is below one patch row `ARM_CMSIS_NN_NO_IMPL_ERROR` - the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 direct convolution.

Include/arm_nnfunctions_flt.h:873

arm_cmsis_nn_status arm_convolve_direct_nhwc_ohwi_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

Basic float32 direct convolution.

The direct route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry: the route the routers take when no other route claims the layer.

  • Valid for any NHWC layer. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_direct_nhwc_ohwi_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float32_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float32_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float32_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat32_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_direct_nhwc_ohwi_f32
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 direct convolution.

Include/arm_nnfunctions_flt.h:887

arm_cmsis_nn_status arm_convolve_direct_nhwc_packed_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

Basic float32 direct convolution.

The direct route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry: the route the routers take when no other route claims the layer.

  • Valid for any NHWC layer. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_direct_nhwc_packed_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float32_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float32_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float32_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat32_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_direct_nhwc_packed_f32
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Scratch size in bytes for armconvolvepatchgemmnhwcohwif32() and packedf32(): ARMNNCONVNHWCPATCHGEMMF32MAXTILEROWS patch rows of HK x WK x CIN elements.

Include/arm_nnfunctions_flt.h:910

int32_t arm_convolve_patch_gemm_f32_get_buffer_size(
const cmsis_nn_conv_params_f32 *conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims
)

Scratch size in bytes for arm_convolve_patch_gemm_nhwc_ohwi_f32() and _packed_f32(): ARM_NN_CONV_NHWC_PATCH_GEMM_F32_MAX_TILE_ROWS patch rows of HK x WK x C_IN elements.

Parameters of arm_convolve_patch_gemm_f32_get_buffer_size
NameTypeDirectionDescription
conv_paramsconst cmsis_nn_conv_params_f32 *inConvolution parameters
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
Returns of arm_convolve_patch_gemm_f32_get_buffer_size
Description
The size in bytes, or 0 for a NULL argument, a non-positive C_IN, HK, WK or C_OUT, or a size above INT32_MAX
function

Transpose convolution wrapper using the CMSIS-NN baseline path.

Include/arm_nnfunctions_flt.h:2090

arm_cmsis_nn_status arm_transpose_conv_wrapper_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_context *output_ctx,
const cmsis_nn_transpose_conv_params_f32 *transpose_conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data,
arm_nn_tensor_layout layout
)

Transpose convolution wrapper using the CMSIS-NN baseline path.

Parameters of arm_transpose_conv_wrapper_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inFunction context. Unused; may be NULL.
output_ctxconst cmsis_nn_context *inOutput context. Unused; may be NULL.
transpose_conv_paramsconst cmsis_nn_transpose_conv_params_f32 *inTranspose convolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
input_dataconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
filter_dataconst float32_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions.
bias_dataconst float32_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
output_datafloat32_t *outPointer to the output tensor data.
layoutarm_nn_tensor_layoutinTensor layout selector. Current float APIs require `ARM_NN_LAYOUT_NHWC`.
Returns of arm_transpose_conv_wrapper_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Transpose convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:2120

arm_cmsis_nn_status arm_transpose_conv_nhwc_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_context *output_ctx,
const cmsis_nn_transpose_conv_params_f32 *transpose_conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data
)

Transpose convolution, NHWC layout.

Parameters of arm_transpose_conv_nhwc_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inFunction context. Unused; may be NULL.
output_ctxconst cmsis_nn_context *inOutput context. Unused; may be NULL.
transpose_conv_paramsconst cmsis_nn_transpose_conv_params_f32 *inTranspose convolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
input_dataconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
filter_dataconst float32_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions.
bias_dataconst float32_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
output_datafloat32_t *outPointer to the output tensor data.
Returns of arm_transpose_conv_nhwc_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Transpose convolution, dispatch by layout.

Include/arm_nnfunctions_flt.h:2150

arm_cmsis_nn_status arm_transpose_conv_f32(
const cmsis_nn_context *ctx,
const cmsis_nn_context *output_ctx,
const cmsis_nn_transpose_conv_params_f32 *transpose_conv_params,
const cmsis_nn_dims *input_dims,
const float32_t *input_data,
const cmsis_nn_dims *filter_dims,
const float32_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float32_t *bias_data,
const cmsis_nn_dims *output_dims,
float32_t *output_data,
arm_nn_tensor_layout layout
)

Transpose convolution, dispatch by layout.

Parameters of arm_transpose_conv_f32
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inFunction context. Unused; may be NULL.
output_ctxconst cmsis_nn_context *inOutput context. Unused; may be NULL.
transpose_conv_paramsconst cmsis_nn_transpose_conv_params_f32 *inTranspose convolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
input_dataconst float32_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
filter_dataconst float32_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions.
bias_dataconst float32_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
output_datafloat32_t *outPointer to the output tensor data.
layoutarm_nn_tensor_layoutinTensor layout selector. Current float APIs require `ARM_NN_LAYOUT_NHWC`.
Returns of arm_transpose_conv_f32
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Get the temporary buffer size required by transpose convolution.

Include/arm_nnfunctions_flt.h:2173

int32_t arm_transpose_conv_f32_get_buffer_size(
const cmsis_nn_transpose_conv_params_f32 *transpose_conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *out_dims
)

Get the temporary buffer size required by transpose convolution.

Parameters of arm_transpose_conv_f32_get_buffer_size
NameTypeDirectionDescription
transpose_conv_paramsconst cmsis_nn_transpose_conv_params_f32 *inTranspose convolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
out_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
Returns of arm_transpose_conv_f32_get_buffer_size
Description
Required buffer size in bytes, or 0 when no scratch buffer is needed.
function

Get the reverse-convolution workspace size used by transpose convolution helpers.

Include/arm_nnfunctions_flt.h:2188

int32_t arm_transpose_conv_f32_get_reverse_conv_buffer_size(
const cmsis_nn_transpose_conv_params_f32 *transpose_conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims
)

Get the reverse-convolution workspace size used by transpose convolution helpers.

Parameters of arm_transpose_conv_f32_get_reverse_conv_buffer_size
NameTypeDirectionDescription
transpose_conv_paramsconst cmsis_nn_transpose_conv_params_f32 *inTranspose convolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
Returns of arm_transpose_conv_f32_get_reverse_conv_buffer_size
Description
Required buffer size in bytes, or 0 when no reverse-convolution buffer is needed.
function

Depthwise convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:2834

arm_cmsis_nn_status arm_depthwise_nhwc_conv_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input,
const cmsis_nn_dims *filter_dims,
const float16_t *kernel,
const cmsis_nn_dims *bias_dims,
const float16_t *bias,
const cmsis_nn_dims *output_dims,
float16_t *output
)

Depthwise convolution, NHWC layout.

Parameters of arm_depthwise_nhwc_conv_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise convolution parameters (stride, padding, dilation, channel multiplier and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions in NHWC format.
inputconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions in NHWC-compatible depthwise format.
kernelconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
biasconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions in NHWC format.
outputfloat16_t *outPointer to the output tensor data.
Returns of arm_depthwise_nhwc_conv_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Depthwise convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:2857

arm_cmsis_nn_status arm_depthwise_nhwc_conv_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input,
const cmsis_nn_dims *filter_dims,
const float16_t *kernel,
const cmsis_nn_dims *bias_dims,
const float16_t *bias,
const cmsis_nn_dims *output_dims,
float16_t *output
)

Depthwise convolution, NHWC layout.

Parameters of arm_depthwise_nhwc_conv_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise convolution parameters (stride, padding, dilation, channel multiplier and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions in NHWC format.
inputconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions in NHWC-compatible depthwise format.
kernelconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
biasconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions in NHWC format.
outputfloat16_t *outPointer to the output tensor data.
Returns of arm_depthwise_nhwc_conv_f16_acc16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Basic float16 depthwise convolution, NHWC, on the generic route of armdepthwiseconvf16(), as a direct entry: any layer, no scratch.

Include/arm_nnfunctions_flt.h:2894

arm_cmsis_nn_status arm_depthwise_conv_generic_nhwc_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input,
const cmsis_nn_dims *filter_dims,
const float16_t *kernel,
const cmsis_nn_dims *bias_dims,
const float16_t *bias,
const cmsis_nn_dims *output_dims,
float16_t *output
)

Basic float16 depthwise convolution, NHWC, on the generic route of arm_depthwise_conv_f16(), as a direct entry: any layer, no scratch.

  • The output is identical to arm_depthwise_conv_f16() for a layer on this route. The _acc16 entries accumulate as arm_depthwise_conv_f16_acc16() does.
  • The other direct entries take the same arguments and return ARM_CMSIS_NN_NO_IMPL_ERROR, writing nothing, for a layer outside their gate (named in each entry’s note).
Parameters of arm_depthwise_conv_generic_nhwc_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise parameters: stride, padding, dilation, channel multiplier and activation
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN]
inputconst float16_t *inInput data pointer. Data type: float16
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [1, HK, WK, C_OUT]
kernelconst float16_t *inFilter data pointer, KC layout. Data type: float16
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
biasconst float16_t *inBias data pointer, or NULL for no bias. Data type: float16
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
outputfloat16_t *outOutput data pointer. Data type: float16
Returns of arm_depthwise_conv_generic_nhwc_f16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - dw_conv_params, a dimension or a data pointer other than bias is NULL `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float16 depthwise convolution, NHWC, on the generic route of armdepthwiseconvf16(), as a direct entry: any layer, no scratch.

Include/arm_nnfunctions_flt.h:2910

arm_cmsis_nn_status arm_depthwise_conv_generic_nhwc_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input,
const cmsis_nn_dims *filter_dims,
const float16_t *kernel,
const cmsis_nn_dims *bias_dims,
const float16_t *bias,
const cmsis_nn_dims *output_dims,
float16_t *output
)

Basic float16 depthwise convolution, NHWC, on the generic route of arm_depthwise_conv_f16(), as a direct entry: any layer, no scratch.

  • The output is identical to arm_depthwise_conv_f16() for a layer on this route. The _acc16 entries accumulate as arm_depthwise_conv_f16_acc16() does.
  • The other direct entries take the same arguments and return ARM_CMSIS_NN_NO_IMPL_ERROR, writing nothing, for a layer outside their gate (named in each entry’s note).
Parameters of arm_depthwise_conv_generic_nhwc_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise parameters: stride, padding, dilation, channel multiplier and activation
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN]
inputconst float16_t *inInput data pointer. Data type: float16
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [1, HK, WK, C_OUT]
kernelconst float16_t *inFilter data pointer, KC layout. Data type: float16
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
biasconst float16_t *inBias data pointer, or NULL for no bias. Data type: float16
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
outputfloat16_t *outOutput data pointer. Data type: float16
Returns of arm_depthwise_conv_generic_nhwc_f16_acc16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - dw_conv_params, a dimension or a data pointer other than bias is NULL `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float16 depthwise convolution, NHWC, on the generic route of armdepthwiseconvf16(), as a direct entry: any layer, no scratch.

Include/arm_nnfunctions_flt.h:2927

arm_cmsis_nn_status arm_depthwise_conv_1d_k3_nhwc_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input,
const cmsis_nn_dims *filter_dims,
const float16_t *kernel,
const cmsis_nn_dims *bias_dims,
const float16_t *bias,
const cmsis_nn_dims *output_dims,
float16_t *output
)

Basic float16 depthwise convolution, NHWC, on the generic route of arm_depthwise_conv_f16(), as a direct entry: any layer, no scratch.

  • The output is identical to arm_depthwise_conv_f16() for a layer on this route. The _acc16 entries accumulate as arm_depthwise_conv_f16_acc16() does.
  • The other direct entries take the same arguments and return ARM_CMSIS_NN_NO_IMPL_ERROR, writing nothing, for a layer outside their gate (named in each entry’s note).
Parameters of arm_depthwise_conv_1d_k3_nhwc_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise parameters: stride, padding, dilation, channel multiplier and activation
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN]
inputconst float16_t *inInput data pointer. Data type: float16
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [1, HK, WK, C_OUT]
kernelconst float16_t *inFilter data pointer, KC layout. Data type: float16
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
biasconst float16_t *inBias data pointer, or NULL for no bias. Data type: float16
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
outputfloat16_t *outOutput data pointer. Data type: float16
Returns of arm_depthwise_conv_1d_k3_nhwc_f16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - dw_conv_params, a dimension or a data pointer other than bias is NULL `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float16 depthwise convolution, NHWC, on the generic route of armdepthwiseconvf16(), as a direct entry: any layer, no scratch.

Include/arm_nnfunctions_flt.h:2943

arm_cmsis_nn_status arm_depthwise_conv_1d_k3_nhwc_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input,
const cmsis_nn_dims *filter_dims,
const float16_t *kernel,
const cmsis_nn_dims *bias_dims,
const float16_t *bias,
const cmsis_nn_dims *output_dims,
float16_t *output
)

Basic float16 depthwise convolution, NHWC, on the generic route of arm_depthwise_conv_f16(), as a direct entry: any layer, no scratch.

  • The output is identical to arm_depthwise_conv_f16() for a layer on this route. The _acc16 entries accumulate as arm_depthwise_conv_f16_acc16() does.
  • The other direct entries take the same arguments and return ARM_CMSIS_NN_NO_IMPL_ERROR, writing nothing, for a layer outside their gate (named in each entry’s note).
Parameters of arm_depthwise_conv_1d_k3_nhwc_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise parameters: stride, padding, dilation, channel multiplier and activation
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN]
inputconst float16_t *inInput data pointer. Data type: float16
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [1, HK, WK, C_OUT]
kernelconst float16_t *inFilter data pointer, KC layout. Data type: float16
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
biasconst float16_t *inBias data pointer, or NULL for no bias. Data type: float16
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
outputfloat16_t *outOutput data pointer. Data type: float16
Returns of arm_depthwise_conv_1d_k3_nhwc_f16_acc16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - dw_conv_params, a dimension or a data pointer other than bias is NULL `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float16 depthwise convolution, NHWC, on the generic route of armdepthwiseconvf16(), as a direct entry: any layer, no scratch.

Include/arm_nnfunctions_flt.h:2960

arm_cmsis_nn_status arm_depthwise_conv_2x5_nhwc_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input,
const cmsis_nn_dims *filter_dims,
const float16_t *kernel,
const cmsis_nn_dims *bias_dims,
const float16_t *bias,
const cmsis_nn_dims *output_dims,
float16_t *output
)

Basic float16 depthwise convolution, NHWC, on the generic route of arm_depthwise_conv_f16(), as a direct entry: any layer, no scratch.

  • The output is identical to arm_depthwise_conv_f16() for a layer on this route. The _acc16 entries accumulate as arm_depthwise_conv_f16_acc16() does.
  • The other direct entries take the same arguments and return ARM_CMSIS_NN_NO_IMPL_ERROR, writing nothing, for a layer outside their gate (named in each entry’s note).
Parameters of arm_depthwise_conv_2x5_nhwc_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise parameters: stride, padding, dilation, channel multiplier and activation
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN]
inputconst float16_t *inInput data pointer. Data type: float16
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [1, HK, WK, C_OUT]
kernelconst float16_t *inFilter data pointer, KC layout. Data type: float16
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
biasconst float16_t *inBias data pointer, or NULL for no bias. Data type: float16
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
outputfloat16_t *outOutput data pointer. Data type: float16
Returns of arm_depthwise_conv_2x5_nhwc_f16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - dw_conv_params, a dimension or a data pointer other than bias is NULL `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float16 depthwise convolution, NHWC, on the generic route of armdepthwiseconvf16(), as a direct entry: any layer, no scratch.

Include/arm_nnfunctions_flt.h:2976

arm_cmsis_nn_status arm_depthwise_conv_2x5_nhwc_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input,
const cmsis_nn_dims *filter_dims,
const float16_t *kernel,
const cmsis_nn_dims *bias_dims,
const float16_t *bias,
const cmsis_nn_dims *output_dims,
float16_t *output
)

Basic float16 depthwise convolution, NHWC, on the generic route of arm_depthwise_conv_f16(), as a direct entry: any layer, no scratch.

  • The output is identical to arm_depthwise_conv_f16() for a layer on this route. The _acc16 entries accumulate as arm_depthwise_conv_f16_acc16() does.
  • The other direct entries take the same arguments and return ARM_CMSIS_NN_NO_IMPL_ERROR, writing nothing, for a layer outside their gate (named in each entry’s note).
Parameters of arm_depthwise_conv_2x5_nhwc_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise parameters: stride, padding, dilation, channel multiplier and activation
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN]
inputconst float16_t *inInput data pointer. Data type: float16
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [1, HK, WK, C_OUT]
kernelconst float16_t *inFilter data pointer, KC layout. Data type: float16
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
biasconst float16_t *inBias data pointer, or NULL for no bias. Data type: float16
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
outputfloat16_t *outOutput data pointer. Data type: float16
Returns of arm_depthwise_conv_2x5_nhwc_f16_acc16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - dw_conv_params, a dimension or a data pointer other than bias is NULL `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float16 depthwise convolution, NHWC, on the generic route of armdepthwiseconvf16(), as a direct entry: any layer, no scratch.

Include/arm_nnfunctions_flt.h:2992

arm_cmsis_nn_status arm_depthwise_conv_direct_nhwc_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input,
const cmsis_nn_dims *filter_dims,
const float16_t *kernel,
const cmsis_nn_dims *bias_dims,
const float16_t *bias,
const cmsis_nn_dims *output_dims,
float16_t *output
)

Basic float16 depthwise convolution, NHWC, on the generic route of arm_depthwise_conv_f16(), as a direct entry: any layer, no scratch.

  • The output is identical to arm_depthwise_conv_f16() for a layer on this route. The _acc16 entries accumulate as arm_depthwise_conv_f16_acc16() does.
  • The other direct entries take the same arguments and return ARM_CMSIS_NN_NO_IMPL_ERROR, writing nothing, for a layer outside their gate (named in each entry’s note).
Parameters of arm_depthwise_conv_direct_nhwc_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise parameters: stride, padding, dilation, channel multiplier and activation
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN]
inputconst float16_t *inInput data pointer. Data type: float16
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [1, HK, WK, C_OUT]
kernelconst float16_t *inFilter data pointer, KC layout. Data type: float16
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
biasconst float16_t *inBias data pointer, or NULL for no bias. Data type: float16
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
outputfloat16_t *outOutput data pointer. Data type: float16
Returns of arm_depthwise_conv_direct_nhwc_f16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - dw_conv_params, a dimension or a data pointer other than bias is NULL `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float16 depthwise convolution, NHWC, on the generic route of armdepthwiseconvf16(), as a direct entry: any layer, no scratch.

Include/arm_nnfunctions_flt.h:3008

arm_cmsis_nn_status arm_depthwise_conv_direct_nhwc_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input,
const cmsis_nn_dims *filter_dims,
const float16_t *kernel,
const cmsis_nn_dims *bias_dims,
const float16_t *bias,
const cmsis_nn_dims *output_dims,
float16_t *output
)

Basic float16 depthwise convolution, NHWC, on the generic route of arm_depthwise_conv_f16(), as a direct entry: any layer, no scratch.

  • The output is identical to arm_depthwise_conv_f16() for a layer on this route. The _acc16 entries accumulate as arm_depthwise_conv_f16_acc16() does.
  • The other direct entries take the same arguments and return ARM_CMSIS_NN_NO_IMPL_ERROR, writing nothing, for a layer outside their gate (named in each entry’s note).
Parameters of arm_depthwise_conv_direct_nhwc_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise parameters: stride, padding, dilation, channel multiplier and activation
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN]
inputconst float16_t *inInput data pointer. Data type: float16
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [1, HK, WK, C_OUT]
kernelconst float16_t *inFilter data pointer, KC layout. Data type: float16
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
biasconst float16_t *inBias data pointer, or NULL for no bias. Data type: float16
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
outputfloat16_t *outOutput data pointer. Data type: float16
Returns of arm_depthwise_conv_direct_nhwc_f16_acc16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - dw_conv_params, a dimension or a data pointer other than bias is NULL `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float16 depthwise convolution, NHWC, on the generic route of armdepthwiseconvf16(), as a direct entry: any layer, no scratch.

Include/arm_nnfunctions_flt.h:3028

arm_cmsis_nn_status arm_depthwise_conv_cin1_nhwc_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input,
const cmsis_nn_dims *filter_dims,
const float16_t *kernel,
const cmsis_nn_dims *bias_dims,
const float16_t *bias,
const cmsis_nn_dims *output_dims,
float16_t *output
)

Basic float16 depthwise convolution, NHWC, on the generic route of arm_depthwise_conv_f16(), as a direct entry: any layer, no scratch.

  • The output is identical to arm_depthwise_conv_f16() for a layer on this route. The _acc16 entries accumulate as arm_depthwise_conv_f16_acc16() does.
  • The other direct entries take the same arguments and return ARM_CMSIS_NN_NO_IMPL_ERROR, writing nothing, for a layer outside their gate (named in each entry’s note).
Parameters of arm_depthwise_conv_cin1_nhwc_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise parameters: stride, padding, dilation, channel multiplier and activation
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN]
inputconst float16_t *inInput data pointer. Data type: float16
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [1, HK, WK, C_OUT]
kernelconst float16_t *inFilter data pointer, KC layout. Data type: float16
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
biasconst float16_t *inBias data pointer, or NULL for no bias. Data type: float16
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
outputfloat16_t *outOutput data pointer. Data type: float16
Returns of arm_depthwise_conv_cin1_nhwc_f16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - dw_conv_params, a dimension or a data pointer other than bias is NULL `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float16 depthwise convolution, NHWC, on the generic route of armdepthwiseconvf16(), as a direct entry: any layer, no scratch.

Include/arm_nnfunctions_flt.h:3045

arm_cmsis_nn_status arm_depthwise_conv_cin1_nhwc_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input,
const cmsis_nn_dims *filter_dims,
const float16_t *kernel,
const cmsis_nn_dims *bias_dims,
const float16_t *bias,
const cmsis_nn_dims *output_dims,
float16_t *output
)

Basic float16 depthwise convolution, NHWC, on the generic route of arm_depthwise_conv_f16(), as a direct entry: any layer, no scratch.

  • The output is identical to arm_depthwise_conv_f16() for a layer on this route. The _acc16 entries accumulate as arm_depthwise_conv_f16_acc16() does.
  • The other direct entries take the same arguments and return ARM_CMSIS_NN_NO_IMPL_ERROR, writing nothing, for a layer outside their gate (named in each entry’s note).
Parameters of arm_depthwise_conv_cin1_nhwc_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise parameters: stride, padding, dilation, channel multiplier and activation
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN]
inputconst float16_t *inInput data pointer. Data type: float16
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [1, HK, WK, C_OUT]
kernelconst float16_t *inFilter data pointer, KC layout. Data type: float16
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
biasconst float16_t *inBias data pointer, or NULL for no bias. Data type: float16
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
outputfloat16_t *outOutput data pointer. Data type: float16
Returns of arm_depthwise_conv_cin1_nhwc_f16_acc16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - dw_conv_params, a dimension or a data pointer other than bias is NULL `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Depthwise convolution, dispatch by layout.

Include/arm_nnfunctions_flt.h:3076

arm_cmsis_nn_status arm_depthwise_conv_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input,
const cmsis_nn_dims *filter_dims,
const float16_t *kernel,
const cmsis_nn_dims *bias_dims,
const float16_t *bias,
const cmsis_nn_dims *output_dims,
float16_t *output,
arm_nn_tensor_layout layout
)

Depthwise convolution, dispatch by layout.

Parameters of arm_depthwise_conv_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise convolution parameters (stride, padding, dilation, channel multiplier and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format depends on `layout`.
inputconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format depends on `layout`.
kernelconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
biasconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format depends on `layout`.
outputfloat16_t *outPointer to the output tensor data.
layoutarm_nn_tensor_layoutinTensor layout selector. Current float APIs require `ARM_NN_LAYOUT_NHWC`.
Returns of arm_depthwise_conv_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Depthwise convolution, dispatch by layout.

Include/arm_nnfunctions_flt.h:3100

arm_cmsis_nn_status arm_depthwise_conv_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input,
const cmsis_nn_dims *filter_dims,
const float16_t *kernel,
const cmsis_nn_dims *bias_dims,
const float16_t *bias,
const cmsis_nn_dims *output_dims,
float16_t *output,
arm_nn_tensor_layout layout
)

Depthwise convolution, dispatch by layout.

Parameters of arm_depthwise_conv_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise convolution parameters (stride, padding, dilation, channel multiplier and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format depends on `layout`.
inputconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format depends on `layout`.
kernelconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
biasconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format depends on `layout`.
outputfloat16_t *outPointer to the output tensor data.
layoutarm_nn_tensor_layoutinTensor layout selector. Current float APIs require `ARM_NN_LAYOUT_NHWC`.
Returns of arm_depthwise_conv_f16_acc16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Depthwise convolution wrapper using the CMSIS-NN baseline path.

Include/arm_nnfunctions_flt.h:3132

arm_cmsis_nn_status arm_depthwise_conv_wrapper_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input,
const cmsis_nn_dims *filter_dims,
const float16_t *kernel,
const cmsis_nn_dims *bias_dims,
const float16_t *bias,
const cmsis_nn_dims *output_dims,
float16_t *output
)

Depthwise convolution wrapper using the CMSIS-NN baseline path.

Parameters of arm_depthwise_conv_wrapper_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise convolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
inputconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
kernelconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
biasconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
outputfloat16_t *outPointer to the output tensor data.
Returns of arm_depthwise_conv_wrapper_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Depthwise convolution wrapper using the CMSIS-NN baseline path.

Include/arm_nnfunctions_flt.h:3155

arm_cmsis_nn_status arm_depthwise_conv_wrapper_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input,
const cmsis_nn_dims *filter_dims,
const float16_t *kernel,
const cmsis_nn_dims *bias_dims,
const float16_t *bias,
const cmsis_nn_dims *output_dims,
float16_t *output
)

Depthwise convolution wrapper using the CMSIS-NN baseline path.

Parameters of arm_depthwise_conv_wrapper_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise convolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
inputconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
kernelconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
biasconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
outputfloat16_t *outPointer to the output tensor data.
Returns of arm_depthwise_conv_wrapper_f16_acc16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Get the temporary buffer size required by depthwise convolution.

Include/arm_nnfunctions_flt.h:3171

int32_t arm_depthwise_conv_f16_get_buffer_size(
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims,
arm_nn_tensor_layout layout
)

Get the temporary buffer size required by depthwise convolution.

Parameters of arm_depthwise_conv_f16_get_buffer_size
NameTypeDirectionDescription
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise convolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
layoutarm_nn_tensor_layoutinTensor layout selector.
Returns of arm_depthwise_conv_f16_get_buffer_size
Description
Required buffer size in bytes, or 0 when no scratch buffer is needed.
function

Get the buffer size required by the depthwise convolution wrapper.

Include/arm_nnfunctions_flt.h:3180

int32_t arm_depthwise_conv_wrapper_f16_get_buffer_size(
const cmsis_nn_dw_conv_params_f16 *dw_conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims
)

Get the buffer size required by the depthwise convolution wrapper.

Parameters of arm_depthwise_conv_wrapper_f16_get_buffer_size
NameTypeDirectionDescription
dw_conv_paramsconst cmsis_nn_dw_conv_params_f16 *inDepthwise convolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
Returns of arm_depthwise_conv_wrapper_f16_get_buffer_size
Description
Required buffer size in bytes, or 0 when no scratch buffer is needed.
function

Convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:3188

arm_cmsis_nn_status arm_convolve_nhwc_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Convolution, NHWC layout.

Parameters of arm_convolve_nhwc_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat16_t *outPointer to the output tensor data.
Returns of arm_convolve_nhwc_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:3207

arm_cmsis_nn_status arm_convolve_nhwc_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Convolution, NHWC layout.

Parameters of arm_convolve_nhwc_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat16_t *outPointer to the output tensor data.
Returns of arm_convolve_nhwc_f16_acc16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Convolution, dispatch by layout.

Include/arm_nnfunctions_flt.h:3245

arm_cmsis_nn_status arm_convolve_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data,
arm_nn_tensor_layout layout
)

Convolution, dispatch by layout.

Parameters of arm_convolve_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format depends on `layout`.
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format depends on `layout`.
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format depends on `layout`.
output_datafloat16_t *outPointer to the output tensor data.
layoutarm_nn_tensor_layoutinTensor layout selector. Current float APIs require `ARM_NN_LAYOUT_NHWC`.
Returns of arm_convolve_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Convolution, dispatch by layout.

Include/arm_nnfunctions_flt.h:3265

arm_cmsis_nn_status arm_convolve_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data,
arm_nn_tensor_layout layout
)

Convolution, dispatch by layout.

Parameters of arm_convolve_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format depends on `layout`.
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format depends on `layout`.
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format depends on `layout`.
output_datafloat16_t *outPointer to the output tensor data.
layoutarm_nn_tensor_layoutinTensor layout selector. Current float APIs require `ARM_NN_LAYOUT_NHWC`.
Returns of arm_convolve_f16_acc16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Convolution wrapper using the CMSIS-NN baseline path.

Include/arm_nnfunctions_flt.h:3280

arm_cmsis_nn_status arm_convolve_wrapper_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Convolution wrapper using the CMSIS-NN baseline path.

Parameters of arm_convolve_wrapper_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat16_t *outPointer to the output tensor data.
Returns of arm_convolve_wrapper_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Convolution wrapper using the CMSIS-NN baseline path.

Include/arm_nnfunctions_flt.h:3299

arm_cmsis_nn_status arm_convolve_wrapper_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Convolution wrapper using the CMSIS-NN baseline path.

Parameters of arm_convolve_wrapper_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat16_t *outPointer to the output tensor data.
Returns of arm_convolve_wrapper_f16_acc16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1x1 convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:3313

arm_cmsis_nn_status arm_convolve_1x1_nhwc_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

1x1 convolution, NHWC layout.

Parameters of arm_convolve_1x1_nhwc_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat16_t *outPointer to the output tensor data.
Returns of arm_convolve_1x1_nhwc_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1x1 convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:3332

arm_cmsis_nn_status arm_convolve_1x1_nhwc_ohwi_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

1x1 convolution, NHWC layout.

Parameters of arm_convolve_1x1_nhwc_ohwi_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat16_t *outPointer to the output tensor data.
Returns of arm_convolve_1x1_nhwc_ohwi_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1x1 convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:3351

arm_cmsis_nn_status arm_convolve_1x1_nhwc_packed_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

1x1 convolution, NHWC layout.

Parameters of arm_convolve_1x1_nhwc_packed_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat16_t *outPointer to the output tensor data.
Returns of arm_convolve_1x1_nhwc_packed_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1x1 convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:3370

arm_cmsis_nn_status arm_convolve_1x1_nhwc_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

1x1 convolution, NHWC layout.

Parameters of arm_convolve_1x1_nhwc_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat16_t *outPointer to the output tensor data.
Returns of arm_convolve_1x1_nhwc_f16_acc16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1x1 convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:3389

arm_cmsis_nn_status arm_convolve_1x1_nhwc_ohwi_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

1x1 convolution, NHWC layout.

Parameters of arm_convolve_1x1_nhwc_ohwi_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat16_t *outPointer to the output tensor data.
Returns of arm_convolve_1x1_nhwc_ohwi_f16_acc16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1x1 convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:3408

arm_cmsis_nn_status arm_convolve_1x1_nhwc_packed_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

1x1 convolution, NHWC layout.

Parameters of arm_convolve_1x1_nhwc_packed_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat16_t *outPointer to the output tensor data.
Returns of arm_convolve_1x1_nhwc_packed_f16_acc16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1x1 convolution, dispatch by layout.

Include/arm_nnfunctions_flt.h:3422

arm_cmsis_nn_status arm_convolve_1x1_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data,
arm_nn_tensor_layout layout
)

1x1 convolution, dispatch by layout.

Parameters of arm_convolve_1x1_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format depends on `layout`.
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format depends on `layout`.
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format depends on `layout`.
output_datafloat16_t *outPointer to the output tensor data.
layoutarm_nn_tensor_layoutinTensor layout selector. Current float APIs require `ARM_NN_LAYOUT_NHWC`.
Returns of arm_convolve_1x1_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1x1 convolution, dispatch by layout.

Include/arm_nnfunctions_flt.h:3442

arm_cmsis_nn_status arm_convolve_1x1_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data,
arm_nn_tensor_layout layout
)

1x1 convolution, dispatch by layout.

Parameters of arm_convolve_1x1_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format depends on `layout`.
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format depends on `layout`.
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format depends on `layout`.
output_datafloat16_t *outPointer to the output tensor data.
layoutarm_nn_tensor_layoutinTensor layout selector. Current float APIs require `ARM_NN_LAYOUT_NHWC`.
Returns of arm_convolve_1x1_f16_acc16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1xN convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:3457

arm_cmsis_nn_status arm_convolve_1_x_n_nhwc_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

1xN convolution, NHWC layout.

Parameters of arm_convolve_1_x_n_nhwc_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat16_t *outPointer to the output tensor data.
Returns of arm_convolve_1_x_n_nhwc_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1xN convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:3477

arm_cmsis_nn_status arm_convolve_1_x_n_nhwc_ohwi_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

1xN convolution, NHWC layout.

Parameters of arm_convolve_1_x_n_nhwc_ohwi_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat16_t *outPointer to the output tensor data.
Returns of arm_convolve_1_x_n_nhwc_ohwi_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1xN convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:3497

arm_cmsis_nn_status arm_convolve_1_x_n_nhwc_packed_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

1xN convolution, NHWC layout.

Parameters of arm_convolve_1_x_n_nhwc_packed_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat16_t *outPointer to the output tensor data.
Returns of arm_convolve_1_x_n_nhwc_packed_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1xN convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:3516

arm_cmsis_nn_status arm_convolve_1_x_n_nhwc_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

1xN convolution, NHWC layout.

Parameters of arm_convolve_1_x_n_nhwc_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat16_t *outPointer to the output tensor data.
Returns of arm_convolve_1_x_n_nhwc_f16_acc16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1xN convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:3536

arm_cmsis_nn_status arm_convolve_1_x_n_nhwc_ohwi_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

1xN convolution, NHWC layout.

Parameters of arm_convolve_1_x_n_nhwc_ohwi_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat16_t *outPointer to the output tensor data.
Returns of arm_convolve_1_x_n_nhwc_ohwi_f16_acc16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1xN convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:3556

arm_cmsis_nn_status arm_convolve_1_x_n_nhwc_packed_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

1xN convolution, NHWC layout.

Parameters of arm_convolve_1_x_n_nhwc_packed_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format: [N, H, W, C_IN].
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN].
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT].
output_datafloat16_t *outPointer to the output tensor data.
Returns of arm_convolve_1_x_n_nhwc_packed_f16_acc16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1xN convolution, dispatch by layout.

Include/arm_nnfunctions_flt.h:3581

arm_cmsis_nn_status arm_convolve_1_x_n_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data,
arm_nn_tensor_layout layout
)

1xN convolution, dispatch by layout.

Parameters of arm_convolve_1_x_n_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format depends on `layout`.
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format depends on `layout`.
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format depends on `layout`.
output_datafloat16_t *outPointer to the output tensor data.
layoutarm_nn_tensor_layoutinTensor layout selector. Current float APIs require `ARM_NN_LAYOUT_NHWC`.
Returns of arm_convolve_1_x_n_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

1xN convolution, dispatch by layout.

Include/arm_nnfunctions_flt.h:3601

arm_cmsis_nn_status arm_convolve_1_x_n_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data,
arm_nn_tensor_layout layout
)

1xN convolution, dispatch by layout.

Parameters of arm_convolve_1_x_n_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *in, outFunction context that may hold a temporary scratch buffer.
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters (stride, padding, dilation and activation clamp).
input_dimsconst cmsis_nn_dims *inInput tensor dimensions. Format depends on `layout`.
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format depends on `layout`.
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT].
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format depends on `layout`.
output_datafloat16_t *outPointer to the output tensor data.
layoutarm_nn_tensor_layoutinTensor layout selector. Current float APIs require `ARM_NN_LAYOUT_NHWC`.
Returns of arm_convolve_1_x_n_f16_acc16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Get the temporary buffer size required by convolution.

Include/arm_nnfunctions_flt.h:3616

int32_t arm_convolve_f16_get_buffer_size(
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims,
arm_nn_tensor_layout layout
)

Get the temporary buffer size required by convolution.

Parameters of arm_convolve_f16_get_buffer_size
NameTypeDirectionDescription
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
layoutarm_nn_tensor_layoutinTensor layout selector.
Returns of arm_convolve_f16_get_buffer_size
Description
Required buffer size in bytes, or 0 when no scratch buffer is needed.
function

Get the buffer size required by the convolution wrapper.

Include/arm_nnfunctions_flt.h:3625

int32_t arm_convolve_wrapper_f16_get_buffer_size(
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims
)

Get the buffer size required by the convolution wrapper.

Parameters of arm_convolve_wrapper_f16_get_buffer_size
NameTypeDirectionDescription
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
Returns of arm_convolve_wrapper_f16_get_buffer_size
Description
Required buffer size in bytes, or 0 when no scratch buffer is needed.
function

Get the buffer size required by 1x1 convolution.

Include/arm_nnfunctions_flt.h:3633

int32_t arm_convolve_1x1_f16_get_buffer_size(
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims,
arm_nn_tensor_layout layout
)

Get the buffer size required by 1x1 convolution.

Parameters of arm_convolve_1x1_f16_get_buffer_size
NameTypeDirectionDescription
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
layoutarm_nn_tensor_layoutinTensor layout selector.
Returns of arm_convolve_1x1_f16_get_buffer_size
Description
Required buffer size in bytes, or 0 when no scratch buffer is needed.
function

Get the buffer size required by 1xN convolution.

Include/arm_nnfunctions_flt.h:3642

int32_t arm_convolve_1_x_n_f16_get_buffer_size(
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims,
arm_nn_tensor_layout layout
)

Get the buffer size required by 1xN convolution.

Parameters of arm_convolve_1_x_n_f16_get_buffer_size
NameTypeDirectionDescription
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
layoutarm_nn_tensor_layoutinTensor layout selector.
Returns of arm_convolve_1_x_n_f16_get_buffer_size
Description
Required buffer size in bytes, or 0 when no scratch buffer is needed.
function

Basic float32 conv1d with a 1x5 filter.

Include/arm_nnfunctions_flt.h:3651

arm_cmsis_nn_status arm_convolve_1d_k5_nhwc_ohwi_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Basic float32 conv1d with a 1x5 filter.

The conv1d k5 route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry.

  • Gate: arm_nn_conv_flt_is_1d_k with k = 5: batch 1, input and output height 1, a 1x5 filter, unit stride and dilation, no padding. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_1d_k5_nhwc_ohwi_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float16_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float16_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float16_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat16_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_1d_k5_nhwc_ohwi_f16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the layer is not the shape arm_nn_conv_flt_is_1d_k accepts with k = 5, or the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 conv1d with a 1x5 filter.

Include/arm_nnfunctions_flt.h:3665

arm_cmsis_nn_status arm_convolve_1d_k5_nhwc_ohwi_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Basic float32 conv1d with a 1x5 filter.

The conv1d k5 route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry.

  • Gate: arm_nn_conv_flt_is_1d_k with k = 5: batch 1, input and output height 1, a 1x5 filter, unit stride and dilation, no padding. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_1d_k5_nhwc_ohwi_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float16_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float16_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float16_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat16_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_1d_k5_nhwc_ohwi_f16_acc16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the layer is not the shape arm_nn_conv_flt_is_1d_k accepts with k = 5, or the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 conv1d with a 1x5 filter.

Include/arm_nnfunctions_flt.h:3679

arm_cmsis_nn_status arm_convolve_1d_k5_nhwc_packed_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Basic float32 conv1d with a 1x5 filter.

The conv1d k5 route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry.

  • Gate: arm_nn_conv_flt_is_1d_k with k = 5: batch 1, input and output height 1, a 1x5 filter, unit stride and dilation, no padding. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_1d_k5_nhwc_packed_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float16_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float16_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float16_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat16_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_1d_k5_nhwc_packed_f16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the layer is not the shape arm_nn_conv_flt_is_1d_k accepts with k = 5, or the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 conv1d with a 1x5 filter.

Include/arm_nnfunctions_flt.h:3693

arm_cmsis_nn_status arm_convolve_1d_k5_nhwc_packed_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Basic float32 conv1d with a 1x5 filter.

The conv1d k5 route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry.

  • Gate: arm_nn_conv_flt_is_1d_k with k = 5: batch 1, input and output height 1, a 1x5 filter, unit stride and dilation, no padding. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_1d_k5_nhwc_packed_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float16_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float16_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float16_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat16_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_1d_k5_nhwc_packed_f16_acc16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the layer is not the shape arm_nn_conv_flt_is_1d_k accepts with k = 5, or the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 conv1d with a 1x3 filter.

Include/arm_nnfunctions_flt.h:3707

arm_cmsis_nn_status arm_convolve_1d_k3_nhwc_ohwi_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Basic float32 conv1d with a 1x3 filter.

The conv1d k3 route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry.

  • Gate: arm_nn_conv_flt_is_1d_k with k = 3. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_1d_k3_nhwc_ohwi_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float16_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float16_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float16_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat16_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_1d_k3_nhwc_ohwi_f16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the layer is not the shape arm_nn_conv_flt_is_1d_k accepts with k = 3, or the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 conv1d with a 1x3 filter.

Include/arm_nnfunctions_flt.h:3721

arm_cmsis_nn_status arm_convolve_1d_k3_nhwc_ohwi_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Basic float32 conv1d with a 1x3 filter.

The conv1d k3 route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry.

  • Gate: arm_nn_conv_flt_is_1d_k with k = 3. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_1d_k3_nhwc_ohwi_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float16_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float16_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float16_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat16_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_1d_k3_nhwc_ohwi_f16_acc16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the layer is not the shape arm_nn_conv_flt_is_1d_k accepts with k = 3, or the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 conv1d with a 1x3 filter.

Include/arm_nnfunctions_flt.h:3735

arm_cmsis_nn_status arm_convolve_1d_k3_nhwc_packed_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Basic float32 conv1d with a 1x3 filter.

The conv1d k3 route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry.

  • Gate: arm_nn_conv_flt_is_1d_k with k = 3. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_1d_k3_nhwc_packed_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float16_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float16_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float16_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat16_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_1d_k3_nhwc_packed_f16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the layer is not the shape arm_nn_conv_flt_is_1d_k accepts with k = 3, or the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 conv1d with a 1x3 filter.

Include/arm_nnfunctions_flt.h:3749

arm_cmsis_nn_status arm_convolve_1d_k3_nhwc_packed_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Basic float32 conv1d with a 1x3 filter.

The conv1d k3 route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry.

  • Gate: arm_nn_conv_flt_is_1d_k with k = 3. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_1d_k3_nhwc_packed_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float16_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float16_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float16_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat16_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_1d_k3_nhwc_packed_f16_acc16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the layer is not the shape arm_nn_conv_flt_is_1d_k accepts with k = 3, or the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 direct convolution for small input-channel counts.

Include/arm_nnfunctions_flt.h:3763

arm_cmsis_nn_status arm_convolve_small_c_nhwc_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Basic float32 direct convolution for small input-channel counts.

The small-C route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry. Lanes are output x positions and weights are scalars.

  • Gate: arm_nn_conv_f32_is_small_c or arm_nn_conv_f32_is_small_c_3x3 for float32, subject to arm_nn_conv_f32_small_c_coords_ok; arm_nn_conv_f16_is_small_c for float16. Either filter format; the format changes only the weight stride inside one kernel. No scratch. The additional float32 region uses 3x3 filters, four input channels, at most eight output channels and at least four output columns.
  • arm_convolve_small_c_nhwc_f16() takes the same arguments and return codes. It accumulates in float32, the kernel both arm_convolve_f16() and arm_convolve_f16_acc16() run on this route. For 3x3 filters, 2..3 input channels and output height/width >= 32, it caches two channels of weights in a fixed 216-byte stack buffer. Other admitted shapes use the uncached kernel. Neither path needs caller scratch.
Parameters of arm_convolve_small_c_nhwc_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float16_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float16_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float16_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat16_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_small_c_nhwc_f16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the layer is outside the gate, or the build lacks MVE float (ARM_MATH_MVEF for float32, ARM_MATH_MVE_FLOAT16 for float16) or defines ARM_MATH_AUTOVECTORIZE; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 packed-patch GEMM convolution.

Include/arm_nnfunctions_flt.h:3777

arm_cmsis_nn_status arm_convolve_patch_gemm_nhwc_ohwi_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Basic float32 packed-patch GEMM convolution.

The packed-patch GEMM route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry: up to ARM_NN_CONV_NHWC_PATCH_GEMM_F32_MAX_TILE_ROWS output positions at a time are packed into ctx as patch rows and multiplied with the filter.

  • Valid for any NHWC layer. The router takes it when arm_nn_conv_flt_is_patch_gemm holds and ctx holds one patch row; unlike the router, the entry does not fall back to the direct route.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_patch_gemm_nhwc_ohwi_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inScratch buffer of at least one patch row (HK x WK x C_IN elements); `arm_convolve_patch_gemm_f32_get_buffer_size()` gives the size for full tiles
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float16_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float16_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float16_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat16_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_patch_gemm_nhwc_ohwi_f16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL, or ctx, ctx->buf is NULL or ctx->size is below one patch row `ARM_CMSIS_NN_NO_IMPL_ERROR` - the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 packed-patch GEMM convolution.

Include/arm_nnfunctions_flt.h:3791

arm_cmsis_nn_status arm_convolve_patch_gemm_nhwc_ohwi_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Basic float32 packed-patch GEMM convolution.

The packed-patch GEMM route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry: up to ARM_NN_CONV_NHWC_PATCH_GEMM_F32_MAX_TILE_ROWS output positions at a time are packed into ctx as patch rows and multiplied with the filter.

  • Valid for any NHWC layer. The router takes it when arm_nn_conv_flt_is_patch_gemm holds and ctx holds one patch row; unlike the router, the entry does not fall back to the direct route.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_patch_gemm_nhwc_ohwi_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inScratch buffer of at least one patch row (HK x WK x C_IN elements); `arm_convolve_patch_gemm_f32_get_buffer_size()` gives the size for full tiles
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float16_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float16_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float16_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat16_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_patch_gemm_nhwc_ohwi_f16_acc16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL, or ctx, ctx->buf is NULL or ctx->size is below one patch row `ARM_CMSIS_NN_NO_IMPL_ERROR` - the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 packed-patch GEMM convolution.

Include/arm_nnfunctions_flt.h:3805

arm_cmsis_nn_status arm_convolve_patch_gemm_nhwc_packed_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Basic float32 packed-patch GEMM convolution.

The packed-patch GEMM route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry: up to ARM_NN_CONV_NHWC_PATCH_GEMM_F32_MAX_TILE_ROWS output positions at a time are packed into ctx as patch rows and multiplied with the filter.

  • Valid for any NHWC layer. The router takes it when arm_nn_conv_flt_is_patch_gemm holds and ctx holds one patch row; unlike the router, the entry does not fall back to the direct route.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_patch_gemm_nhwc_packed_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inScratch buffer of at least one patch row (HK x WK x C_IN elements); `arm_convolve_patch_gemm_f32_get_buffer_size()` gives the size for full tiles
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float16_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float16_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float16_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat16_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_patch_gemm_nhwc_packed_f16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL, or ctx, ctx->buf is NULL or ctx->size is below one patch row `ARM_CMSIS_NN_NO_IMPL_ERROR` - the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 packed-patch GEMM convolution.

Include/arm_nnfunctions_flt.h:3819

arm_cmsis_nn_status arm_convolve_patch_gemm_nhwc_packed_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Basic float32 packed-patch GEMM convolution.

The packed-patch GEMM route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry: up to ARM_NN_CONV_NHWC_PATCH_GEMM_F32_MAX_TILE_ROWS output positions at a time are packed into ctx as patch rows and multiplied with the filter.

  • Valid for any NHWC layer. The router takes it when arm_nn_conv_flt_is_patch_gemm holds and ctx holds one patch row; unlike the router, the entry does not fall back to the direct route.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_patch_gemm_nhwc_packed_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inScratch buffer of at least one patch row (HK x WK x C_IN elements); `arm_convolve_patch_gemm_f32_get_buffer_size()` gives the size for full tiles
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float16_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float16_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float16_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat16_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_patch_gemm_nhwc_packed_f16_acc16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL, or ctx, ctx->buf is NULL or ctx->size is below one patch row `ARM_CMSIS_NN_NO_IMPL_ERROR` - the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 direct convolution.

Include/arm_nnfunctions_flt.h:3833

arm_cmsis_nn_status arm_convolve_direct_nhwc_ohwi_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Basic float32 direct convolution.

The direct route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry: the route the routers take when no other route claims the layer.

  • Valid for any NHWC layer. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_direct_nhwc_ohwi_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float16_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float16_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float16_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat16_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_direct_nhwc_ohwi_f16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 direct convolution.

Include/arm_nnfunctions_flt.h:3847

arm_cmsis_nn_status arm_convolve_direct_nhwc_ohwi_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Basic float32 direct convolution.

The direct route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry: the route the routers take when no other route claims the layer.

  • Valid for any NHWC layer. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_direct_nhwc_ohwi_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float16_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float16_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float16_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat16_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_direct_nhwc_ohwi_f16_acc16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 direct convolution.

Include/arm_nnfunctions_flt.h:3861

arm_cmsis_nn_status arm_convolve_direct_nhwc_packed_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Basic float32 direct convolution.

The direct route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry: the route the routers take when no other route claims the layer.

  • Valid for any NHWC layer. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_direct_nhwc_packed_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float16_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float16_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float16_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat16_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_direct_nhwc_packed_f16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Basic float32 direct convolution.

Include/arm_nnfunctions_flt.h:3875

arm_cmsis_nn_status arm_convolve_direct_nhwc_packed_f16_acc16(
const cmsis_nn_context *ctx,
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Basic float32 direct convolution.

The direct route of arm_convolve_f32() and arm_convolve_f16(), as a direct entry: the route the routers take when no other route claims the layer.

  • Valid for any NHWC layer. No scratch.
  • The ohwi entry takes ARM_NN_WEIGHT_FORMAT_STANDARD filters and the packed entry ARM_NN_WEIGHT_FORMAT_NT_N_PACKED filters; each returns ARM_CMSIS_NN_NO_IMPL_ERROR for the other format, so that an image links only the kernel for its format.
  • The float16 entries of the same name take the same arguments and return codes; the _f16 entry accumulates as arm_convolve_f16() does and the _f16_acc16 entry as arm_convolve_f16_acc16() does.
Parameters of arm_convolve_direct_nhwc_packed_f16_acc16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inUnused
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters: stride, padding, dilation, activation and weight_format
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
input_dataconst float16_t *inInput (activation) data pointer. Data type: float32
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
filter_dataconst float16_t *inFilter data pointer, in the format the entry names. Data type: float32
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions. Format: [C_OUT]. Unused
bias_dataconst float16_t *inBias data pointer, or NULL for no bias. Data type: float32
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
output_datafloat16_t *outOutput data pointer. Data type: float32
Returns of arm_convolve_direct_nhwc_packed_f16_acc16
Description
The function returns one of the following `ARM_CMSIS_NN_ARG_ERROR` - conv_params, a dimension or a data pointer other than bias_data is NULL `ARM_CMSIS_NN_NO_IMPL_ERROR` - the filter format is not the entry's; nothing is written `ARM_CMSIS_NN_SUCCESS` - Successful operation
function

Scratch size in bytes for armconvolvepatchgemmnhwcohwif32() and packedf32(): ARMNNCONVNHWCPATCHGEMMF32MAXTILEROWS patch rows of HK x WK x CIN elements.

Include/arm_nnfunctions_flt.h:3891

int32_t arm_convolve_patch_gemm_f16_get_buffer_size(
const cmsis_nn_conv_params_f16 *conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *output_dims
)

Scratch size in bytes for arm_convolve_patch_gemm_nhwc_ohwi_f32() and _packed_f32(): ARM_NN_CONV_NHWC_PATCH_GEMM_F32_MAX_TILE_ROWS patch rows of HK x WK x C_IN elements.

Parameters of arm_convolve_patch_gemm_f16_get_buffer_size
NameTypeDirectionDescription
conv_paramsconst cmsis_nn_conv_params_f16 *inConvolution parameters
input_dimsconst cmsis_nn_dims *inInput (activation) tensor dimensions. Format: [N, H, W, C_IN]
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions. Format: [C_OUT, HK, WK, C_IN]
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions. Format: [N, H, W, C_OUT]
Returns of arm_convolve_patch_gemm_f16_get_buffer_size
Description
The size in bytes, or 0 for a NULL argument, a non-positive C_IN, HK, WK or C_OUT, or a size above INT32_MAX
function

Transpose convolution wrapper using the CMSIS-NN baseline path.

Include/arm_nnfunctions_flt.h:4662

arm_cmsis_nn_status arm_transpose_conv_wrapper_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_context *output_ctx,
const cmsis_nn_transpose_conv_params_f16 *transpose_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data,
arm_nn_tensor_layout layout
)

Transpose convolution wrapper using the CMSIS-NN baseline path.

Parameters of arm_transpose_conv_wrapper_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inFunction context. Unused; may be NULL.
output_ctxconst cmsis_nn_context *inOutput context. Unused; may be NULL.
transpose_conv_paramsconst cmsis_nn_transpose_conv_params_f16 *inTranspose convolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions.
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
output_datafloat16_t *outPointer to the output tensor data.
layoutarm_nn_tensor_layoutinTensor layout selector. Current float APIs require `ARM_NN_LAYOUT_NHWC`.
Returns of arm_transpose_conv_wrapper_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Transpose convolution, NHWC layout.

Include/arm_nnfunctions_flt.h:4678

arm_cmsis_nn_status arm_transpose_conv_nhwc_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_context *output_ctx,
const cmsis_nn_transpose_conv_params_f16 *transpose_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data
)

Transpose convolution, NHWC layout.

Parameters of arm_transpose_conv_nhwc_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inFunction context. Unused; may be NULL.
output_ctxconst cmsis_nn_context *inOutput context. Unused; may be NULL.
transpose_conv_paramsconst cmsis_nn_transpose_conv_params_f16 *inTranspose convolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions.
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
output_datafloat16_t *outPointer to the output tensor data.
Returns of arm_transpose_conv_nhwc_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Transpose convolution, dispatch by layout.

Include/arm_nnfunctions_flt.h:4693

arm_cmsis_nn_status arm_transpose_conv_f16(
const cmsis_nn_context *ctx,
const cmsis_nn_context *output_ctx,
const cmsis_nn_transpose_conv_params_f16 *transpose_conv_params,
const cmsis_nn_dims *input_dims,
const float16_t *input_data,
const cmsis_nn_dims *filter_dims,
const float16_t *filter_data,
const cmsis_nn_dims *bias_dims,
const float16_t *bias_data,
const cmsis_nn_dims *output_dims,
float16_t *output_data,
arm_nn_tensor_layout layout
)

Transpose convolution, dispatch by layout.

Parameters of arm_transpose_conv_f16
NameTypeDirectionDescription
ctxconst cmsis_nn_context *inFunction context. Unused; may be NULL.
output_ctxconst cmsis_nn_context *inOutput context. Unused; may be NULL.
transpose_conv_paramsconst cmsis_nn_transpose_conv_params_f16 *inTranspose convolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
input_dataconst float16_t *inPointer to the input tensor data.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
filter_dataconst float16_t *inPointer to the filter tensor data.
bias_dimsconst cmsis_nn_dims *inBias tensor dimensions.
bias_dataconst float16_t *inOptional bias tensor data.
output_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
output_datafloat16_t *outPointer to the output tensor data.
layoutarm_nn_tensor_layoutinTensor layout selector. Current float APIs require `ARM_NN_LAYOUT_NHWC`.
Returns of arm_transpose_conv_f16
Description
`ARM_CMSIS_NN_SUCCESS` on success or `ARM_CMSIS_NN_ARG_ERROR` on invalid arguments.
function

Get the temporary buffer size required by transpose convolution.

Include/arm_nnfunctions_flt.h:4709

int32_t arm_transpose_conv_f16_get_buffer_size(
const cmsis_nn_transpose_conv_params_f16 *transpose_conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims,
const cmsis_nn_dims *out_dims
)

Get the temporary buffer size required by transpose convolution.

Parameters of arm_transpose_conv_f16_get_buffer_size
NameTypeDirectionDescription
transpose_conv_paramsconst cmsis_nn_transpose_conv_params_f16 *inTranspose convolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
out_dimsconst cmsis_nn_dims *inOutput tensor dimensions.
Returns of arm_transpose_conv_f16_get_buffer_size
Description
Required buffer size in bytes, or 0 when no scratch buffer is needed.
function

Get the reverse-convolution workspace size used by transpose convolution helpers.

Include/arm_nnfunctions_flt.h:4718

int32_t arm_transpose_conv_f16_get_reverse_conv_buffer_size(
const cmsis_nn_transpose_conv_params_f16 *transpose_conv_params,
const cmsis_nn_dims *input_dims,
const cmsis_nn_dims *filter_dims
)

Get the reverse-convolution workspace size used by transpose convolution helpers.

Parameters of arm_transpose_conv_f16_get_reverse_conv_buffer_size
NameTypeDirectionDescription
transpose_conv_paramsconst cmsis_nn_transpose_conv_params_f16 *inTranspose convolution parameters.
input_dimsconst cmsis_nn_dims *inInput tensor dimensions.
filter_dimsconst cmsis_nn_dims *inFilter tensor dimensions.
Returns of arm_transpose_conv_f16_get_reverse_conv_buffer_size
Description
Required buffer size in bytes, or 0 when no reverse-convolution buffer is needed.