MMALIB User Guide
Common definitions

Introduction

This module consists of definitions (macros, structures, utility functions) that are commonly applicable to all MMALIB kernels.

File to hold buffer parameter related info for MMALIB.

Version
0.1 - Jan 2018 : Initial Version

Data Structures

struct  MMALIB_bufParams1D_t
 A structure for a 1 dimensional buffer descriptor. More...
 
struct  MMALIB_bufParams2D_t
 A structure for a 2 dimensional buffer descriptor. More...
 
struct  MMALIB_bufParams3D_t
 A structure for a 3 dimensional buffer descriptor. More...
 
struct  MMALIB_bufParamsND_t
 A structure for a N dimensional buffer descriptor. More...
 

Functions

static int32_t MMALIB_sizeof (uint32_t type)
 Inline function returns number of bytes per element given a type of MMALIB_data_type_e. More...
 

Typedefs

typedef double MMALIB_D64
 Double precision floating point. More...
 
typedef float MMALIB_F32
 Single precision floating point. More...
 
typedef MMALIB_STATUS_NAME MMALIB_STATUS
 Return value for MMALIB functions. More...
 
typedef void * MMALIB_kernelHandle
 Handle type for MMALIB operations. More...
 
typedef MMALIB_tensor_format_e MMALIB_tensor_format
 
typedef MMALIB_LUT_type_e MMALIB_LUT_type
 

Enumerations

enum  MMALIB_data_type_e {
  MMALIB_INT8 = 0 , MMALIB_INT16 = 1 , MMALIB_INT32 = 2 , MMALIB_INT64 = 3 ,
  MMALIB_INT128 = 4 , MMALIB_UINT8 = 5 , MMALIB_UINT16 = 6 , MMALIB_UINT24 = 7 ,
  MMALIB_UINT32 = 8 , MMALIB_UINT64 = 9 , MMALIB_UINT128 = 10 , MMALIB_FLOAT16 = 11 ,
  MMALIB_FLOAT32 = 12 , MMALIB_FLOAT64 = 13
}
 The enumeration of all data types. More...
 
enum  MMALIB_dimension_e {
  MMALIB_2D = 0 , MMALIB_3D = 1 , MMALIB_4D = 2 , MMALIB_5D = 3 ,
  MMALIB_6D = 4
}
 The enumeration of multidimensional buffer types. More...
 
enum  MMALIB_STATUS_NAME {
  MMALIB_STATUS_NOT_SET = 999 , MMALIB_SUCCESS = 0 , MMALIB_ERR_FAILURE = 1 , MMALIB_ERR_INVALID_VALUE = 2 ,
  MMALIB_ERR_INVALID_TYPE = 3 , MMALIB_ERR_INVALID_DIMENSION = 4 , MMALIB_ERR_NULL_POINTER = 5 , MMALIB_ERR_NOT_IMPLEMENTED = 6 ,
  MMALIB_ERR_NOT_EQUAL_WIDTH_STRIDE = 7 , MMALIB_ERR_NOT_ALIGNED_PTRS_STRIDES = 8 , MMALIB_ERR_NOT_ALIGNED_WIDTHS = 9 , MMALIB_ERR_BUFFER_TOO_SMALL = 10 ,
  MMALIB_ERR_INVALID_ACTIVATION = 11 , MMALIB_ERR_INVALID_SHIFT = 12 , MMALIB_ERROR_MAX = 13 , MMALIB_ERR_CONVOLVE_ROW_INVALID_INCHOFFSET_CIRCULAR = 1000 ,
  MMALIB_ERR_CONVOLVE_ROW_UNSUPPORTED_STRIDE = 1001 , MMALIB_ERR_CONVOLVE_ROW_UNSUPPORTED_TYPE_COMBINATION = 1002 , MMALIB_ERR_CONVOLVE_ROW_INVALID_PTR_STRIDE = 1003 , MMALIB_ERR_CONVOLVE_ROW_INVALID_SUBMCHANNELS_STRIDE = 1004 ,
  MMALIB_ERR_CONVOLVE_ROW_INVALID_SUBMCHANNELS = 1005 , MMALIB_ERR_CONVOLVE_ROW_INVALID_BUFFER_DIMENSION = 1006 , MMALIB_ERR_CONVOLVE_ROW_INVALID_ROWS_STRIDE = 1007 , MMALIB_ERR_CONVOLVE_ROW_INVALID_INITARGS = 1008 ,
  MMALIB_ERR_CONVOLVE_ROW_INVALID_VALIDCOLSIN = 1009 , MMALIB_ERR_CONVOLVE_ROW_INVALID_NUM_GROUPS_PER_KERNEL = 1010 , MMALIB_ERR_CONVOLVE_ROW_INVALID_NUM_OUTPUT_CHANNELS_PER_GROUP = 1011 , MMALIB_ERR_CONVOLVE_ROW_INVALID_NUM_GROUPS_PER_KERNEL_STRIDED = 1012 ,
  MMALIB_ERR_CONVOLVE_ROW_INVALID_PAD_VALUES = 1013 , MMALIB_ERR_CONVOLVE_COL_INVALID_SHIFTMETHOD = 2000 , MMALIB_ERR_CONVOLVE_COL_INVALID_SHIFTVALUES = 2001 , MMALIB_ERR_CONVOLVE_COL_INVALID_PAD_VALUES = 2002 ,
  MMALIB_ERR_CONVOLVE_COL_INVALID_NUMBIASVALS = 2003 , MMALIB_ERR_CONVOLVE_COL_INVALID_BIASBVALUES = 2004 , MMALIB_ERR_CONVOLVE_COL_INVALID_BIASB_TYPE = 2005 , MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_INPUT_FEATURE_MAP_TYPE = 2006 ,
  MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_WEIGHTS_TYPE = 2007 , MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_WEIGHTS_DIMENSION = 2008 , MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_OUTPUT_FEATURE_MAP_TYPE = 2009 , MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_TYPE_COMBINATION = 2010 ,
  MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_STRIDE = 2011 , MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_GROUPING = 2012 , MMALIB_ERR_CONVOLVE_COL_INVALID_CASE = 2013 , MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_STRIDE_DILATION_COMBINATION = 2014 ,
  MMALIB_ERR_DECONVOLVE_ROW_INVALID_KERNEL_SIZE = 3000 , MMALIB_ERR_DECONVOLVE_ROW_INVALID_STRIDE = 3001 , MMALIB_ERR_DECONVOLVE_ROW_INVALID_DILATION = 3002 , MMALIB_ERR_DECONVOLVE_ROW_INVALID_PAD = 3003 ,
  MMALIB_ERR_DECONVOLVE_ROW_INVALID_INIT_ARGS = 3004 , MMALIB_ERR_DECONVOLVE_ROW_INVALID_BUFFER_DIMENSION_WEIGHTS = 3005 , MMALIB_ERR_DECONVOLVE_ROW_INVALID_SUBMCHANNELS = 3006 , MMALIB_ERR_DECONVOLVE_ROW_INVALID_BUFFER_SIZES = 3007 ,
  MMALIB_ERR_FULLYCONNECTED_INVALID_TYPE_COMBINATION = 4000 , MMALIB_ERR_FULLYCONNECTED_INVALID_DIMENSION_COMBINATION = 4001 , MMALIB_ERR_FULLYCONNECTED_INVALID_TYPE_RELU_COMBINATION = 4002 , MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_INCHOFFSET_CIRCULAR = 5000 ,
  MMALIB_ERR_PIXELSHUFFLE_ROW_UNSUPPORTED_STRIDE = 5001 , MMALIB_ERR_PIXELSHUFFLE_ROW_UNSUPPORTED_TYPE_COMBINATION = 5002 , MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_PTR_STRIDE = 5003 , MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_SUBMCHANNELS_STRIDE = 5004 ,
  MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_SUBMCHANNELS = 5005 , MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_BUFFER_DIMENSION = 5006 , MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_ROWS_STRIDE = 5007 , MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_INITARGS = 5008 ,
  MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_VALIDCOLSIN = 5009 , MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_UPSCALE_FACTOR = 5010 , MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_KDIM = 5011 , MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_NUMOFOUTPUTCHKERBUF = 5012 ,
  MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_PITCHA = 5013 , MMALIB_ERR_TENSOR_CONVERT_INVALID_TYPE_COMBINATION = 6000 , MMALIB_ERR_TENSOR_CONVERT_INVALID_DIMENSION_COMBINATION = 6001 , MMALIB_ERR_TENSOR_CONVERT_UNSUPPORTED_TYPE_COMBINATION = 6002 ,
  MMALIB_ERR_TENSOR_CONVERT_UNSUPPORTED_CHANNEL_DIMENSION = 6003 , MMALIB_ERR_TENSOR_CONVERT_UNSUPPORTED_CONVRSION_FORMAT = 6004 , MMALIB_ERR_TENSOR_CONVERT_UNSUPPORTED_PAD_DIMENSION = 6005 , MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_INPUT_TYPE = 10000 ,
  MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_OUTPUT_TYPE = 10001 , MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_TYPE_COMBINATION = 10002 , MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_ACCUMULATE_UNSUPPORTED_INPUT_TYPE = 11000 , MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_ACCUMULATE_UNSUPPORTED_OUTPUT_TYPE = 11001 ,
  MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_ACCUMULATE_UNSUPPORTED_TYPE_COMBINATION = 11002 , MMALIB_ERR_MATRIX_TRANSPOSE_UNSUPPORTED_INPUT_TYPE = 12000 , MMALIB_ERR_MATRIX_TRANSPOSE_UNSUPPORTED_OUTPUT_TYPE = 12001 , MMALIB_ERR_MATRIX_TRANSPOSE_UNSUPPORTED_TYPE_COMBINATION = 12002 ,
  MMALIB_ERR_POINTWISE_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_INPUT_TYPE = 13000 , MMALIB_ERR_POINTWISE_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_OUTPUT_TYPE = 13001 , MMALIB_ERR_POINTWISE_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_TYPE_COMBINATION = 13002
}
 The enumeration of all status codes. More...
 
enum  MMALIB_FUNCTION_STYLE { MMALIB_FUNCTION_NATC = 0 , MMALIB_FUNCTION_OPTIMIZED , MMALIB_FUNCTION_MAX = 128 }
 Enumeration for the style of function implementation. More...
 
enum  MMALIB_buffer_mode_e { MMALIB_LINEAR = 0 , MMALIB_SE_CIRCULAR , MMALIB_BUF_CIRCULAR }
 Buffer structure for input feature maps and coefficients of MMALIB_CNN_convolve_row_ixX_ixX_oxX. More...
 
enum  MMALIB_tensor_format_e { MMALIB_CHW = 0 , MMALIB_HWC }
 Tensor format. More...
 
enum  MMALIB_LUT_type_e { MMALIB_LUT_NONE = 0 , MMALIB_LUT_ILUT = 1 }
 The enumeration of possible look-up table (LUT) settings. More...
 

Macros

#define MMALIB_ISSIGNED(type)   ((type) < MMALIB_UINT8 || (type) > MMALIB_UINT128)
 
#define MMALIB_SIGNEDNESS(type)   (MMALIB_ISSIGNED((type)) ? "signed" : "unsigned")
 
#define MMALIB_PARAM_SIZE   128
 Parameter structure size in bytes. More...
 
#define MMALIB_BYTE_WIDTH   __MMA_A_COLS(sizeof(int8_t))
 MMA width in bytes. More...
 
#define MMALIB_MMA_ACCUMULATOR_BYTE_WIDTH_8_BIT   4
 MMA accumulator width in bytes for 8 bit output data width. More...
 
#define MMALIB_MMA_ACCUMULATOR_BYTE_WIDTH_16_BIT   8
 MMA accumulator width in bytes for 16 bit output data width. More...
 
#define MMALIB_MMA_ACCUMULATOR_BYTE_WIDTH_32_BIT   16
 MMA accumulator width in bytes for 32 bit output data width. More...
 
#define MMALIB_ALIGN_SHIFT_64BYTES    6
 Number of bits to shift for 64-byte memory alignment. More...
 
#define MMALIB_ALIGN_SHIFT_128BYTES    7
 Number of bits to shift for 128-byte memory alignment. More...
 
#define MMALIB_ALIGN_SHIFT_256BYTES    8
 Number of bits to shift for 256-byte memory alignment. More...
 
#define MMALIB_ALIGN_64BYTES    (1 << MMALIB_ALIGN_SHIFT_64BYTES)
 Align by 64-byte memory alignment. More...
 
#define MMALIB_ALIGN_128BYTES    (1 << MMALIB_ALIGN_SHIFT_128BYTES)
 Align by 128-byte memory alignment. More...
 
#define MMALIB_ALIGN_256BYTES    (1 << MMALIB_ALIGN_SHIFT_256BYTES)
 Align by 256-byte memory alignment. More...
 
#define MMALIB_L2DATA_ALIGN_SHIFT    MMALIB_ALIGN_SHIFT_64BYTES
 Set the default L2 data alignment. More...
 
#define MMALIB_L2DATA_ALIGNMENT   (((uint32_t)1) << ((uint32_t)MMALIB_L2DATA_ALIGN_SHIFT))
 Macro that specifies the alignment of data buffers in L2 memory for optimal performance. More...
 
#define MMALIB_MMA_SIZE_8_BIT   __MMA_A_COLS(sizeof(int8_t))
 MMA size as a function of precision. More...
 
#define MMALIB_MMA_SIZE_16_BIT   __MMA_A_COLS(sizeof(int16_t))
 
#define MMALIB_MMA_SIZE_32_BIT   __MMA_A_COLS(sizeof(int32_t))
 
#define MMALIB_MMA_BIAS_SIZE_32_BIT   __MMA_A_COLS(sizeof(int32_t))
 
#define MMALIB_MMA_BIAS_SIZE_64_BIT   ((MMALIB_MMA_BIAS_SIZE_32_BIT) >> 1)
 

Macro Definition Documentation

◆ MMALIB_ISSIGNED

#define MMALIB_ISSIGNED (   type)    ((type) < MMALIB_UINT8 || (type) > MMALIB_UINT128)

Definition at line 69 of file MMALIB_bufParams.h.

◆ MMALIB_SIGNEDNESS

#define MMALIB_SIGNEDNESS (   type)    (MMALIB_ISSIGNED((type)) ? "signed" : "unsigned")

Definition at line 70 of file MMALIB_bufParams.h.

◆ MMALIB_PARAM_SIZE

#define MMALIB_PARAM_SIZE   128

Parameter structure size in bytes.

Definition at line 304 of file MMALIB_types.h.

◆ MMALIB_BYTE_WIDTH

#define MMALIB_BYTE_WIDTH   __MMA_A_COLS(sizeof(int8_t))

MMA width in bytes.

Definition at line 305 of file MMALIB_types.h.

◆ MMALIB_MMA_ACCUMULATOR_BYTE_WIDTH_8_BIT

#define MMALIB_MMA_ACCUMULATOR_BYTE_WIDTH_8_BIT   4

MMA accumulator width in bytes for 8 bit output data width.

Definition at line 306 of file MMALIB_types.h.

◆ MMALIB_MMA_ACCUMULATOR_BYTE_WIDTH_16_BIT

#define MMALIB_MMA_ACCUMULATOR_BYTE_WIDTH_16_BIT   8

MMA accumulator width in bytes for 16 bit output data width.

Definition at line 307 of file MMALIB_types.h.

◆ MMALIB_MMA_ACCUMULATOR_BYTE_WIDTH_32_BIT

#define MMALIB_MMA_ACCUMULATOR_BYTE_WIDTH_32_BIT   16

MMA accumulator width in bytes for 32 bit output data width.

Definition at line 308 of file MMALIB_types.h.

◆ MMALIB_ALIGN_SHIFT_64BYTES

#define MMALIB_ALIGN_SHIFT_64BYTES    6

Number of bits to shift for 64-byte memory alignment.

Definition at line 318 of file MMALIB_types.h.

◆ MMALIB_ALIGN_SHIFT_128BYTES

#define MMALIB_ALIGN_SHIFT_128BYTES    7

Number of bits to shift for 128-byte memory alignment.

Definition at line 320 of file MMALIB_types.h.

◆ MMALIB_ALIGN_SHIFT_256BYTES

#define MMALIB_ALIGN_SHIFT_256BYTES    8

Number of bits to shift for 256-byte memory alignment.

Definition at line 322 of file MMALIB_types.h.

◆ MMALIB_ALIGN_64BYTES

#define MMALIB_ALIGN_64BYTES    (1 << MMALIB_ALIGN_SHIFT_64BYTES)

Align by 64-byte memory alignment.

Definition at line 325 of file MMALIB_types.h.

◆ MMALIB_ALIGN_128BYTES

#define MMALIB_ALIGN_128BYTES    (1 << MMALIB_ALIGN_SHIFT_128BYTES)

Align by 128-byte memory alignment.

Definition at line 327 of file MMALIB_types.h.

◆ MMALIB_ALIGN_256BYTES

#define MMALIB_ALIGN_256BYTES    (1 << MMALIB_ALIGN_SHIFT_256BYTES)

Align by 256-byte memory alignment.

Definition at line 329 of file MMALIB_types.h.

◆ MMALIB_L2DATA_ALIGN_SHIFT

#define MMALIB_L2DATA_ALIGN_SHIFT    MMALIB_ALIGN_SHIFT_64BYTES

Set the default L2 data alignment.

Definition at line 332 of file MMALIB_types.h.

◆ MMALIB_L2DATA_ALIGNMENT

#define MMALIB_L2DATA_ALIGNMENT   (((uint32_t)1) << ((uint32_t)MMALIB_L2DATA_ALIGN_SHIFT))

Macro that specifies the alignment of data buffers in L2 memory for optimal performance.

Definition at line 336 of file MMALIB_types.h.

◆ MMALIB_MMA_SIZE_8_BIT

#define MMALIB_MMA_SIZE_8_BIT   __MMA_A_COLS(sizeof(int8_t))

MMA size as a function of precision.

Definition at line 345 of file MMALIB_types.h.

◆ MMALIB_MMA_SIZE_16_BIT

#define MMALIB_MMA_SIZE_16_BIT   __MMA_A_COLS(sizeof(int16_t))

Definition at line 346 of file MMALIB_types.h.

◆ MMALIB_MMA_SIZE_32_BIT

#define MMALIB_MMA_SIZE_32_BIT   __MMA_A_COLS(sizeof(int32_t))

Definition at line 347 of file MMALIB_types.h.

◆ MMALIB_MMA_BIAS_SIZE_32_BIT

#define MMALIB_MMA_BIAS_SIZE_32_BIT   __MMA_A_COLS(sizeof(int32_t))

Definition at line 350 of file MMALIB_types.h.

◆ MMALIB_MMA_BIAS_SIZE_64_BIT

#define MMALIB_MMA_BIAS_SIZE_64_BIT   ((MMALIB_MMA_BIAS_SIZE_32_BIT) >> 1)

Definition at line 351 of file MMALIB_types.h.

Typedef Documentation

◆ MMALIB_D64

typedef double MMALIB_D64

Double precision floating point.

Definition at line 148 of file MMALIB_types.h.

◆ MMALIB_F32

typedef float MMALIB_F32

Single precision floating point.

Definition at line 149 of file MMALIB_types.h.

◆ MMALIB_STATUS

Return value for MMALIB functions.

Definition at line 260 of file MMALIB_types.h.

◆ MMALIB_kernelHandle

typedef void* MMALIB_kernelHandle

Handle type for MMALIB operations.

Definition at line 262 of file MMALIB_types.h.

◆ MMALIB_tensor_format

Definition at line 287 of file MMALIB_types.h.

◆ MMALIB_LUT_type

Definition at line 295 of file MMALIB_types.h.

Enumeration Type Documentation

◆ MMALIB_data_type_e

The enumeration of all data types.

Enumerator
MMALIB_INT8 

Signed 8-bit integer

MMALIB_INT16 

Signed 16-bit integer

MMALIB_INT32 

Signed 32-bit integer

MMALIB_INT64 

Signed 64-bit integer

MMALIB_INT128 

Signed 128-bit integer

MMALIB_UINT8 

Unsigned 8-bit integer

MMALIB_UINT16 

Unsigned 16-bit integer

MMALIB_UINT24 

Unsigned 24-bit integer

MMALIB_UINT32 

Unsigned 32-bit integer

MMALIB_UINT64 

Unsigned 64-bit integer

MMALIB_UINT128 

Unsigned 128-bit integer

MMALIB_FLOAT16 

16-bit floating point number

MMALIB_FLOAT32 

32-bit floating point number

MMALIB_FLOAT64 

32-bit floating point number

Definition at line 40 of file MMALIB_bufParams.h.

◆ MMALIB_dimension_e

The enumeration of multidimensional buffer types.

Enumerator
MMALIB_2D 

Two dimensional buffer

MMALIB_3D 

Three dimensional buffer

MMALIB_4D 

Four dimensional buffer

MMALIB_5D 

Five dimensional buffer

MMALIB_6D 

Six dimensional buffer

Definition at line 73 of file MMALIB_bufParams.h.

◆ MMALIB_STATUS_NAME

The enumeration of all status codes.

Enumerator
MMALIB_STATUS_NOT_SET 

999 => Not Tested

MMALIB_SUCCESS 

0 => No error

MMALIB_ERR_FAILURE 

1 => Unspecified error

MMALIB_ERR_INVALID_VALUE 

2 => Invalid parameter value

MMALIB_ERR_INVALID_TYPE 

3 => Invalid parameter type (MMALIB_data_type_e data_type)

MMALIB_ERR_INVALID_DIMENSION 

4 => Dimension parameter (width/height) is too big/small

MMALIB_ERR_NULL_POINTER 

5 => Unsupported null pointer condition

MMALIB_ERR_NOT_IMPLEMENTED 

6 => Parameter configuration is not supported/implemented

MMALIB_ERR_NOT_EQUAL_WIDTH_STRIDE 

7 => Stride should be equal to width * element size

MMALIB_ERR_NOT_ALIGNED_PTRS_STRIDES 

8 => Pointers and stride values are not aligned to documented value

MMALIB_ERR_NOT_ALIGNED_WIDTHS 

9 => Width values are not aligned to documented value

MMALIB_ERR_BUFFER_TOO_SMALL 

10 => Buffer size not large enough

MMALIB_ERR_INVALID_ACTIVATION 

11 => Activation selection incompatible with data type

MMALIB_ERR_INVALID_SHIFT 

12 => Requested shift amount is not valid

MMALIB_ERROR_MAX 
MMALIB_ERR_CONVOLVE_ROW_INVALID_INCHOFFSET_CIRCULAR 

1000 => Invalid InChOffset value

MMALIB_ERR_CONVOLVE_ROW_UNSUPPORTED_STRIDE 

1001 => Unsupported stride value

MMALIB_ERR_CONVOLVE_ROW_UNSUPPORTED_TYPE_COMBINATION 

1002 => Unsupported combination of weights, input and output data types

MMALIB_ERR_CONVOLVE_ROW_INVALID_PTR_STRIDE 

1003 => Invalid pointer stride

MMALIB_ERR_CONVOLVE_ROW_INVALID_SUBMCHANNELS_STRIDE 

1004 => Invalid subMChannels strided

MMALIB_ERR_CONVOLVE_ROW_INVALID_SUBMCHANNELS 

1005 => Invalid subMChannels and MChannels combination

MMALIB_ERR_CONVOLVE_ROW_INVALID_BUFFER_DIMENSION 

1006 => Invalid buffer dimension

MMALIB_ERR_CONVOLVE_ROW_INVALID_ROWS_STRIDE 

1007 => Invalid Valid RowsIn Strided

MMALIB_ERR_CONVOLVE_ROW_INVALID_INITARGS 

1008 => inWidth, validColsIn, inChOffset, Fc, Fr, dilationX, dilationY, strideX, strideY, or maxHeight

MMALIB_ERR_CONVOLVE_ROW_INVALID_VALIDCOLSIN 

1009 => Invalid Valid ColsIn

MMALIB_ERR_CONVOLVE_ROW_INVALID_NUM_GROUPS_PER_KERNEL 

1010 => Invalid numGroupsPerKernel

MMALIB_ERR_CONVOLVE_ROW_INVALID_NUM_OUTPUT_CHANNELS_PER_GROUP 

1011 => Invalid number of output channels per group

MMALIB_ERR_CONVOLVE_ROW_INVALID_NUM_GROUPS_PER_KERNEL_STRIDED 

1012 => Invalid numGroupsPerKernel strided convolution

MMALIB_ERR_CONVOLVE_ROW_INVALID_PAD_VALUES 

1013 => Invalid combination of pad values

MMALIB_ERR_CONVOLVE_COL_INVALID_SHIFTMETHOD 

2000 => Invalid shiftMethod selected

MMALIB_ERR_CONVOLVE_COL_INVALID_SHIFTVALUES 

2001 => Invalid shiftValues pointer in combination with shiftMethod value

MMALIB_ERR_CONVOLVE_COL_INVALID_PAD_VALUES 

2002 => Invalid combination of pad values

MMALIB_ERR_CONVOLVE_COL_INVALID_NUMBIASVALS 

2003 => Invalid selection for numBiasVals, note combination restrictions with shiftMethod

MMALIB_ERR_CONVOLVE_COL_INVALID_BIASBVALUES 

2004 => Invalid biasBValues pointer in combination with shiftMethod value

MMALIB_ERR_CONVOLVE_COL_INVALID_BIASB_TYPE 

2005 => Invalid biasB data type, check that it matches input feature map type

MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_INPUT_FEATURE_MAP_TYPE 

2006 => Unsupported input feature map data type

MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_WEIGHTS_TYPE 

2007 => Unsupported filter weights data type

MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_WEIGHTS_DIMENSION 

2008 => Unsupported filter weights dimension

MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_OUTPUT_FEATURE_MAP_TYPE 

2009 => Unsupported output feature map data type

MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_TYPE_COMBINATION 

2010 => Unsupported combination of weights, input and output data types

MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_STRIDE 

2011 => Unsupported stride value

MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_GROUPING 

2012 => Unsupported input/output feature map grouping

MMALIB_ERR_CONVOLVE_COL_INVALID_CASE 

2013 => Unexpected error related to problem geometry

MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_STRIDE_DILATION_COMBINATION 

2014 => Unsupported combination of stride and dilation values

MMALIB_ERR_DECONVOLVE_ROW_INVALID_KERNEL_SIZE 

3000 => Invalid kernel size, widht or height

MMALIB_ERR_DECONVOLVE_ROW_INVALID_STRIDE 

3001 => Invalid stride values

MMALIB_ERR_DECONVOLVE_ROW_INVALID_DILATION 

3002 => Invalid dilation values

MMALIB_ERR_DECONVOLVE_ROW_INVALID_PAD 

3003 => Invalid pad value

MMALIB_ERR_DECONVOLVE_ROW_INVALID_INIT_ARGS 

3004 => Invalid init args

MMALIB_ERR_DECONVOLVE_ROW_INVALID_BUFFER_DIMENSION_WEIGHTS 

3005 => Invalid buffer dim for weights

MMALIB_ERR_DECONVOLVE_ROW_INVALID_SUBMCHANNELS 

3006 => Invalid subMChannels and MChannels combination

MMALIB_ERR_DECONVOLVE_ROW_INVALID_BUFFER_SIZES 

3007 => Invalid buffer size

MMALIB_ERR_FULLYCONNECTED_INVALID_TYPE_COMBINATION 

4000 => Invalid datatype combination

MMALIB_ERR_FULLYCONNECTED_INVALID_DIMENSION_COMBINATION 

4001 => Invalid dimension combination

MMALIB_ERR_FULLYCONNECTED_INVALID_TYPE_RELU_COMBINATION 

4002 => Invalid type and ReLU combination

MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_INCHOFFSET_CIRCULAR 

5000 => Invalid InChOffset value

MMALIB_ERR_PIXELSHUFFLE_ROW_UNSUPPORTED_STRIDE 

5001 => Unsupported stride value

MMALIB_ERR_PIXELSHUFFLE_ROW_UNSUPPORTED_TYPE_COMBINATION 

5002 => Unsupported combination of weights, input and output data types

MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_PTR_STRIDE 

5003 => Invalid pointer stride

MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_SUBMCHANNELS_STRIDE 

5004 => Invalid subMChannels strided

MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_SUBMCHANNELS 

5005 => Invalid subMChannels and MChannels combination

MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_BUFFER_DIMENSION 

5006 => Invalid buffer dimension

MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_ROWS_STRIDE 

5007 => Invalid Valid RowsIn Strided

MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_INITARGS 

5008 => inWidth, validColsIn, inChOffset, Fc, Fr, dilationX, dilationY, strideX, strideY, or maxHeight

MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_VALIDCOLSIN 

5009 => Invalid Valid ColsIn

MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_UPSCALE_FACTOR 

5010 => Invalid upscale factor

MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_KDIM 

5011 => Invalid kDim

MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_NUMOFOUTPUTCHKERBUF 

5012 => Invalid numOfOutputChKerBuf

MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_PITCHA 

5013 => Invalid pitchA

MMALIB_ERR_TENSOR_CONVERT_INVALID_TYPE_COMBINATION 

6000 => Invalid datatype combination

MMALIB_ERR_TENSOR_CONVERT_INVALID_DIMENSION_COMBINATION 

6001 => Invalid dimension combination

MMALIB_ERR_TENSOR_CONVERT_UNSUPPORTED_TYPE_COMBINATION 

6002 => Unsupported dimension combination

MMALIB_ERR_TENSOR_CONVERT_UNSUPPORTED_CHANNEL_DIMENSION 

6003 => Unsupported channel dimension

MMALIB_ERR_TENSOR_CONVERT_UNSUPPORTED_CONVRSION_FORMAT 

6004 => Unsupported conversion format

MMALIB_ERR_TENSOR_CONVERT_UNSUPPORTED_PAD_DIMENSION 

6005 => Unsupported pad dimension

MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_INPUT_TYPE 

10000 => Unsupported input data type

MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_OUTPUT_TYPE 

10001 => Unsupported output data type

MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_TYPE_COMBINATION 

10002 => Unsupported combination of input and output data type

MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_ACCUMULATE_UNSUPPORTED_INPUT_TYPE 

11000 => Unsupported input data type

MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_ACCUMULATE_UNSUPPORTED_OUTPUT_TYPE 

11001 => Unsupported output data type

MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_ACCUMULATE_UNSUPPORTED_TYPE_COMBINATION 

11002 => Unsupported combination of input and output data type

MMALIB_ERR_MATRIX_TRANSPOSE_UNSUPPORTED_INPUT_TYPE 

12000 => Unsupported input data type

MMALIB_ERR_MATRIX_TRANSPOSE_UNSUPPORTED_OUTPUT_TYPE 

12001 => Unsupported output data type

MMALIB_ERR_MATRIX_TRANSPOSE_UNSUPPORTED_TYPE_COMBINATION 

12002 => Unsupported combination of input and output data type

MMALIB_ERR_POINTWISE_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_INPUT_TYPE 

13000 => Unsupported input data type

MMALIB_ERR_POINTWISE_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_OUTPUT_TYPE 

13001 => Unsupported output data type

MMALIB_ERR_POINTWISE_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_TYPE_COMBINATION 

13002 => Unsupported combination of input and output data type

Definition at line 152 of file MMALIB_types.h.

◆ MMALIB_FUNCTION_STYLE

Enumeration for the style of function implementation.

Enumerator
MMALIB_FUNCTION_NATC 

Natural C implementation of the function

MMALIB_FUNCTION_OPTIMIZED 

Optimized C implementation of the function for the MMA + C7x architecture

MMALIB_FUNCTION_MAX 

Definition at line 265 of file MMALIB_types.h.

◆ MMALIB_buffer_mode_e

Buffer structure for input feature maps and coefficients of MMALIB_CNN_convolve_row_ixX_ixX_oxX.

Enumerator
MMALIB_LINEAR 

Linear buffer.

MMALIB_SE_CIRCULAR 

Circular buffer for input feature map managed by streaming engine

MMALIB_BUF_CIRCULAR 

Circular buffer for coefficients.

Definition at line 274 of file MMALIB_types.h.

◆ MMALIB_tensor_format_e

Tensor format.

Enumerator
MMALIB_CHW 

Used when tensor is in NCHW format.

MMALIB_HWC 

Used when tensor is in NHWC format.

Definition at line 282 of file MMALIB_types.h.

◆ MMALIB_LUT_type_e

The enumeration of possible look-up table (LUT) settings.

Enumerator
MMALIB_LUT_NONE 

No lookup table post processing.

MMALIB_LUT_ILUT 

Use ILUT post processing.

Definition at line 290 of file MMALIB_types.h.

Function Documentation

◆ MMALIB_sizeof()

static int32_t MMALIB_sizeof ( uint32_t  type)
inlinestatic

Inline function returns number of bytes per element given a type of MMALIB_data_type_e.

Definition at line 145 of file MMALIB_bufParams.h.