MMALIB User Guide
MMALIB_types.h
Go to the documentation of this file.
1 /******************************************************************************
2  * *
3  * module name :MMALIB *
4  * *
5  * module descripton :Matrix Multiply Accelerator Library module for C7x+MMA *
6  * *
7  * Copyright (C) 2017-2018 Texas Instruments Incorporated - https://www.ti.com/ *
8  * ALL RIGHTS RESERVED *
9  * *
10  ******************************************************************************/
11 
23 #ifndef COMMON_MMALIB_TYPES_H_
24 #define COMMON_MMALIB_TYPES_H_ 1
25 
26 /* This header is needed to be included in OpenCL programs which link
27  * against MMALIB, but OpenCL doesn't need the following headers */
28 #ifndef __OPENCL_VERSION__
29 #include <stdint.h>
30 #include <stdlib.h>
31 #include <inttypes.h>
32 #include <stddef.h> // for NULL
33 #include <stdio.h> // for printf
34 #endif
35 #include <c7x.h> // for streaming engine, streaming address gen.
36 
37 #include "MMALIB_int128_t.h"
38 #include "MMALIB_bufParams.h"
39 #include "TI_platforms.h"
40 
41 #include "c71/MMALIB_defines.h"
42 
43 #include "c7100/MMALIB_defines.h"
44 #include "c7100/MMALIB_types.h"
45 
49 #if !defined(MMALIB_DEBUGPRINT)
50 #define MMALIB_DEBUGPRINT 0
51 #endif
52 
53 #if (defined(_HOST_BUILD) && (MMALIB_COMPILER_VERSION < 1003999))
54 #define MMALIB_const
55 #else
56 #define MMALIB_const const
57 #endif
58 
59 // #define __PRAGMA(x) _Pragma(#x)
60 // #ifdef __cplusplus
61 // # define __INLINE_FUNC(x) __PRAGMA(FUNC_ALWAYS_INLINE)
62 // #else
63 // # define __INLINE_FUNC(x) __PRAGMA(FUNC_ALWAYS_INLINE(x))
64 // #endif
65 
66 /* ---------------------------------------------------------------- */
67 /* MISRAC Rule 4.9(DEFINE.FUNC) Deviation: The following two */
68 /* function-like macros do not have equivalent function */
69 /* implementations. */
70 /* ---------------------------------------------------------------- */
71 #if defined(EVM_TEST)
72 #define MMALIB_PRINTF(fmt,...) \
73  do { \
74  fprintf(stdout, fmt, ##__VA_ARGS__); \
75  } while ((bool) 0)
76 
77 #if MMALIB_DEBUGPRINT > 0
78 #define MMALIB_DEBUGPRINTFN(N, fmt, ...) \
79  do { \
80  if (MMALIB_DEBUGPRINT >= (N)) { \
81  fprintf(stdout, "MMALIB debug %s - %d: " fmt, __FUNCTION__, __LINE__, \
82  ##__VA_ARGS__); \
83  } \
84  } while (0)
85 
86 #else // MMALIB_DEBUGPRINT == 0
87 
88 #define MMALIB_DEBUGPRINTFN(N, fmt, ...)
89 //#define MMALIB_PRINTF(fmt, ...)
90 #endif // #if MMALIB_DEBUGPRINT
91 
92 #else
93 
94 #if MMALIB_DEBUGPRINT > 0
95 #define MMALIB_DEBUGPRINTFN(N, fmt, ...) \
96  if (MMALIB_DEBUGPRINT >= (N)) { \
97  fprintf(stderr, "MMALIB debug %s - %d: " fmt, __FUNCTION__, __LINE__, \
98  ##__VA_ARGS__); \
99  } \
100 
101 #define MMALIB_PRINTF(fmt, ...) \
102  fprintf(stderr, fmt, ##__VA_ARGS__)
103 
104 #else // MMALIB_DEBUGPRINT == 0
105 
106 #define MMALIB_DEBUGPRINTFN(N, fmt, ...)
107 #define MMALIB_PRINTF(fmt, ...)
108 
109 #endif // #if MMALIB_DEBUGPRINT
110 #endif // #if defined(EVM_TEST)
111 
112 #if defined(MMALIB_MESSAGES)
113 // if enabled, display messages to the library user
114 // MMALIB_MESSAGES should only be defined when TARGET_BUILD=debug or CHECKPARAMS=1
115 #define MMALIB_MESG(fmt, ...) fprintf(stderr, fmt, ##__VA_ARGS__)
116 #else
117 #define MMALIB_MESG(fmt, ...)
118 #endif //#if defined(MMALIB_MESSAGES)
119 
120 /* Original implementation that had the benefit of always being compiled and thus
121  receiving error checking. However, the fprintf generates a MISRA-C violation.
122 #define MMALIB_DEBUGPRINTFN(N, fmt, ...) \
123  do { \
124  if (MMALIB_DEBUGPRINT >= (N)) { \
125  fprintf(stderr, "MMALIB debug %s - %d: " fmt, __FUNCTION__, __LINE__, \
126  __VA_ARGS__); \
127  } \
128  } while (0)
129 
130 #define MMALIB_PRINTF(fmt, ...) \
131  do { \
132  fprintf(stderr, fmt, __VA_ARGS__); \
133  } while (0)
134 #endif
135  */
136 
137 
138 #define MMALIB_SOFT_MMA_RESET 0
139 
140 // switch to enable or disable static inline for MMALIB functions defined in .c files (so not many functions)
141 #define MMALIB_STATIC_INLINE static inline
142 
143 
144 #ifdef __cplusplus
145 #include <c7x_scalable.h> // for device scalability
146 
147 extern const c7x::uchar_vec MMALIB_zeroVect_uchar_vec;
148 extern const c7x::ushort_vec MMALIB_zeroVect_ushort_vec;
149 extern const c7x::uchar_vec MMALIB_vperm_data_0_63;
150 
151 extern "C" {
152 #endif /* __cplusplus */
153 
163 /*******************************************************************************
164  *
165  * TYPEDEFS
166  *
167  ******************************************************************************/
168 
169 typedef double MMALIB_D64;
170 typedef float MMALIB_F32;
171 
173 typedef enum {
189 
190  // MMALIB_CNN_convolve_row
205  MMALIB_ERR_CONVOLVE_ROW_INVALID_INPUTPITCHPERROW = 1014, // Invalid inputPitchPerRow
206 
207  // MMALIB_CNN_convolve_col_smallNo
225  // MMALIB_CNN_deconvolve_row
235 
236  // MMALIB_CNN_fullyConnected
241  // MMALIB_CNN_pixelShuffle_row
254  // MMALIB_CNN_tensor_convert_ixX_oxX
264  // MMALIB_LINALG_matrixMatrixMultiply
268  // MMALIB_LINALG_matrixMatrixMultiplyAccumulate
272  // MMALIB_LINALG_matrixTranspose
276  // MMALIB_LINALG_pointwiseMatrixMatrixMultiply
281 
283 
284 typedef void *MMALIB_kernelHandle;
285 
287 typedef enum {
291  MMALIB_FUNCTION_MAX = 128
293 
296 typedef enum {
301 } MMALIB_buffer_mode_e; // formerly eMMABufferMode;
302 
304 typedef enum {
306  MMALIB_HWC
308 
310 
312 typedef enum {
315 
317 
319 typedef enum {
328 
330 
331 /*******************************************************************************
332  *
333  * DEFINES
334  *
335  ******************************************************************************/
336 
337 #define MMALIB_PARAM_SIZE 192
338 #define MMALIB_BYTE_WIDTH __MMA_A_COLS(sizeof(int8_t))
339 #define MMALIB_MMA_ACCUMULATOR_BYTE_WIDTH_8_BIT 4
340 #define MMALIB_MMA_ACCUMULATOR_BYTE_WIDTH_16_BIT 8
341 #define MMALIB_MMA_ACCUMULATOR_BYTE_WIDTH_32_BIT 16
342 
343 
344 /*******************************************************************************
345  *
346  * Macros
347  *
348  ******************************************************************************/
349 
350 #define MMALIB_ALIGN_SHIFT_64BYTES \
351  6
352 #define MMALIB_ALIGN_SHIFT_128BYTES \
353  7
354 #define MMALIB_ALIGN_SHIFT_256BYTES \
355  8
356 
357 #define MMALIB_ALIGN_64BYTES \
358  (1 << MMALIB_ALIGN_SHIFT_64BYTES)
359 #define MMALIB_ALIGN_128BYTES \
360  (1 << MMALIB_ALIGN_SHIFT_128BYTES)
361 #define MMALIB_ALIGN_256BYTES \
362  (1 << MMALIB_ALIGN_SHIFT_256BYTES)
363 
364 #define MMALIB_L2DATA_ALIGN_SHIFT \
365  MMALIB_ALIGN_SHIFT_64BYTES
366 
369 #define MMALIB_L2DATA_ALIGNMENT (((uint32_t)1) << ((uint32_t)MMALIB_L2DATA_ALIGN_SHIFT))
370 
371 /* ---------------------------------------------------------------- */
372 /* MISRAC Rule 4.9(DEFINE.FUNC) Deviation: The advisory is not */
373 /* being addressed */
374 /* ---------------------------------------------------------------- */
375 
378 #define MMALIB_MMA_SIZE_8_BIT __MMA_A_COLS(sizeof(int8_t))
379 #define MMALIB_MMA_SIZE_16_BIT __MMA_A_COLS(sizeof(int16_t))
380 #define MMALIB_MMA_SIZE_32_BIT __MMA_A_COLS(sizeof(int32_t))
381 
382 
383 #define MMALIB_MMA_BIAS_SIZE_32_BIT __MMA_A_COLS(sizeof(int32_t))
384 #define MMALIB_MMA_BIAS_SIZE_64_BIT ((MMALIB_MMA_BIAS_SIZE_32_BIT) >> 1)
385 
388 /******************************************************************************
389  *
390  * Do not document these in the User Guide
391  ******************************************************************************/
392 
399 /* ---------------------------------------------------------------- */
400 /* MISRAC Rule 4.9(DEFINE.FUNC) Deviation: The advisory is not */
401 /* being addressed */
402 /* ---------------------------------------------------------------- */
403 // remove asm comments for Loki testing as they may add cycles
404 #if defined(QT_TEST) || defined(RTL_TEST) || defined(EVM_TEST)
405  #if defined(_HOST_BUILD)
406  #define MMALIB_asm(string) ;
407  #else
408  #define MMALIB_asm(string); asm(string);
409  #endif // _HOST_BUILD
410 #else
411  #define MMALIB_asm(string) ;
412 #endif
413 
414 /* ---------------------------------------------------------------- */
415 /* MISRAC Rule 4.9(DEFINE.FUNC) Deviation: The advisory is not */
416 /* being addressed so as not to lose portability across different */
417 /* platforms. */
418 /* ---------------------------------------------------------------- */
419 // cl7x unroll attributes not recognized by gcc/gpp compiler and generate
420 // warnings. Remove them with macro
421 #if defined(_HOST_BUILD)
422 #define str(x) #x
423 #define xstr(x) str(x)
424 #ifdef WIN32
425 #define __attribute__()
426 #define MMALIB_UNROLL(count)
427 #else
428 #define MMALIB_UNROLL(count) _Pragma(str(UNROLL(count)))
429 #endif
430 #else
431 #define MMALIB_UNROLL(COUNT) [[TI::unroll(COUNT)]]
432 #endif
433 
434 #if defined(_HOST_BUILD)
435 #ifdef WIN32
436 #define __attribute__()
437 #define MMALIB_MUST_ITERATE(initial, max, multiple)
438 #else
439 #define MMALIB_MUST_ITERATE(initial, max, multiple) _Pragma(str(MUST_ITERATE(initial, max, multiple)))
440 #endif
441 #else
442 #define MMALIB_MUST_ITERATE(INTIAL, MAX, MULTIPLE) [[TI::must_iterate(INTIAL, MAX, MULTIPLE)]]
443 #endif
444 
445 // #ifndef MMALIB_NUMBER_RANDOM_DIM_TESTS
446 // #define MMALIB_MAX_TEST_PER_KERNEL 1024
447 // #endif
448 
449 #ifndef MMALIB_NUMBER_RANDOM_DIM_TESTS
450 #define MMALIB_NUMBER_RANDOM_DIM_TESTS 1
451 #endif
452 
453 #if defined(PERFORMANCE_TEST)
454 #define MMALIB_PERFORMANCE_TEST_PATTERN SEQUENTIAL
455 #else
456 #define MMALIB_PERFORMANCE_TEST_PATTERN RANDOM_SIGNED
457 #endif
458 
459 #define MMALIB_TEST_OUTPUT_HEAP 0
460 #if defined(_HOST_BUILD)
461  // Valgrind works better when output is in the heap (it can't track statically allocated memory), so
462  // in host emulation mode, place test outputs in the heap rather than statically allocated MSMC
463  #define MMALIB_TEST_OUTPUT_MSMC MMALIB_TEST_OUTPUT_HEAP
464 #else
465  #define MMALIB_TEST_OUTPUT_MSMC 1
466 #endif
467 
468 #define STRIDE_OPT_4CYCLE 1
469 
470 /*******************************************************************************
471  *
472  * MACROS
473  *
474  ******************************************************************************/
475 
476 /* ---------------------------------------------------------------- */
477 /* MISRAC Rule 4.9(DEFINE.FUNC) Deviation: The following */
478 /* function-like macros are intended to be used across different */
479 /* data types. */
480 /* ---------------------------------------------------------------- */
481 #define MMALIB_min(x, y) \
482  (((x) < (y)) ? (x) : (y))
483 #define MMALIB_max(x, y) \
484  (((x) < (y)) ? (y) : (x))
485 #define MMALIB_ceilingDiv(x, y) \
486  (((x) + (y)-1) / \
487  (y))
490 /******************************************************************************
491  *
492  * COMMON MMA CONIFGURATIONS
493  *
494  ******************************************************************************/
495 
496  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i32f_i32f_o32f;
497  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i32s_i32s_o32s;
498 
499  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i16s_i16s_o16s;
500  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i16s_i16s_o16u;
501  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i16u_i16s_o16s;
502  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i16u_i16s_o16u;
503  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i16s_i16u_o16u;
504  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i16s_i16u_o16s;
505  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i16u_i16u_o16s;
506  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i16u_i16u_o16u;
507 
508 
509  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i8s_i8s_o8s;
510  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i8s_i8s_o8u;
511  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i8u_i8s_o8s;
512  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i8u_i8s_o8u;
513  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i8s_i8u_o8s;
514  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i8s_i8u_o8u;
515  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i8u_i8u_o8s;
516  extern const MMALIB_MMA_CONFIG_REG configRegisterStruct_i8u_i8u_o8u;
517 
518  extern const __HWA_OFFSET_REG offsetRegStruct_zeros;
519  extern const __HWA_OFFSET_REG offsetRegStruct_diagonal_32bit;
520  extern const __HWA_OFFSET_REG offsetRegStruct_diagonal_16bit;
521  extern const __HWA_OFFSET_REG offsetRegStruct_diagonal_8bit;
522 
523 
527 #ifdef __cplusplus
528 }
529 #endif /* __cplusplus */
530 #endif /* COMMON_MMALIB_TYPES_H_ */
531 
532 /* ======================================================================== */
533 /* End of file: MMALIB_types.h */
534 /* ======================================================================== */
File to hold buffer parameter related info for MMALIB.
#define MMALIB_MMA_CONFIG_REG
File to hold common structure, enums, macros and functions for MMALIB.
MMALIB_broadcast_e
The enumeration of possible broadcast.
Definition: MMALIB_types.h:319
MMALIB_tensor_format_e MMALIB_tensor_format
Definition: MMALIB_types.h:309
MMALIB_LUT_type_e
The enumeration of possible look-up table (LUT) settings.
Definition: MMALIB_types.h:312
MMALIB_broadcast_e MMALIB_broadcast
Definition: MMALIB_types.h:329
MMALIB_STATUS_NAME
The enumeration of all status codes.
Definition: MMALIB_types.h:173
MMALIB_STATUS_NAME MMALIB_STATUS
Return value for MMALIB functions.
Definition: MMALIB_types.h:282
float MMALIB_F32
Single precision floating point.
Definition: MMALIB_types.h:170
MMALIB_FUNCTION_STYLE
Enumeration for the style of function implementation.
Definition: MMALIB_types.h:287
void * MMALIB_kernelHandle
Handle type for MMALIB operations.
Definition: MMALIB_types.h:284
MMALIB_buffer_mode_e
Buffer structure for input feature maps and coefficients of MMALIB_CNN_convolve_row_ixX_ixX_oxX.
Definition: MMALIB_types.h:296
double MMALIB_D64
Double precision floating point.
Definition: MMALIB_types.h:169
MMALIB_LUT_type_e MMALIB_LUT_type
Definition: MMALIB_types.h:316
MMALIB_tensor_format_e
Tensor format.
Definition: MMALIB_types.h:304
@ MMALIB_NO_BROADCAST
no broadcast
Definition: MMALIB_types.h:320
@ MMALIB_CHANNEL_BROADCAST_IN0
channel broadcast in the fist input matrix
Definition: MMALIB_types.h:322
@ MMALIB_ROW_CHANNEL_BROADCAST_IN1
row + channel broadcast in the second input matrix
Definition: MMALIB_types.h:326
@ MMALIB_ROW_BROADCAST_IN0
row broadcast in the first input matrix
Definition: MMALIB_types.h:321
@ MMALIB_CHANNEL_BROADCAST_IN1
channel broadcast in the second input matrix
Definition: MMALIB_types.h:324
@ MMALIB_ROW_CHANNEL_BROADCAST_IN0
row + channel broadcast in the fist input matrix
Definition: MMALIB_types.h:325
@ MMALIB_ROW_BROADCAST_IN1
row broadcast in the second input matrix
Definition: MMALIB_types.h:323
@ MMALIB_LUT_NONE
No lookup table post processing.
Definition: MMALIB_types.h:313
@ MMALIB_ERR_CONVOLVE_ROW_INVALID_SUBMCHANNELS
Definition: MMALIB_types.h:196
@ MMALIB_ERR_INVALID_ACTIVATION
Definition: MMALIB_types.h:186
@ MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_TYPE_COMBINATION
Definition: MMALIB_types.h:267
@ MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_WEIGHTS_TYPE
Definition: MMALIB_types.h:215
@ MMALIB_ERR_CONVOLVE_COL_INVALID_SHIFTMETHOD
Definition: MMALIB_types.h:208
@ MMALIB_ERR_POINTWISE_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_INPUT_TYPE
Definition: MMALIB_types.h:277
@ MMALIB_ERR_INVALID_VALUE
Definition: MMALIB_types.h:177
@ MMALIB_ERR_CONVOLVE_COL_INVALID_BIASB_TYPE
Definition: MMALIB_types.h:213
@ MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_ROWS_STRIDE
Definition: MMALIB_types.h:249
@ MMALIB_ERR_DECONVOLVE_ROW_INVALID_BUFFER_SIZES
Definition: MMALIB_types.h:233
@ MMALIB_ERR_TENSOR_CONVERT_UNSUPPORTED_TYPE_COMBINATION
Definition: MMALIB_types.h:257
@ MMALIB_ERR_CONVOLVE_ROW_INVALID_NUM_OUTPUT_CHANNELS_PER_GROUP
Definition: MMALIB_types.h:202
@ MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_WEIGHTS_DIMENSION
Definition: MMALIB_types.h:216
@ MMALIB_ERR_MATRIX_TRANSPOSE_UNSUPPORTED_INPUT_TYPE
Definition: MMALIB_types.h:273
@ MMALIB_ERR_DECONVOLVE_ROW_INVALID_PAD
Definition: MMALIB_types.h:229
@ MMALIB_ERR_CONVOLVE_ROW_INVALID_ROWS_STRIDE
Definition: MMALIB_types.h:198
@ MMALIB_ERR_POINTWISE_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_TYPE_COMBINATION
Definition: MMALIB_types.h:279
@ MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_ACCUMULATE_UNSUPPORTED_TYPE_COMBINATION
Definition: MMALIB_types.h:271
@ MMALIB_ERR_NOT_EQUAL_WIDTH_STRIDE
Definition: MMALIB_types.h:182
@ MMALIB_STATUS_NOT_SET
Definition: MMALIB_types.h:174
@ MMALIB_ERR_PIXELSHUFFLE_ROW_UNSUPPORTED_STRIDE
Definition: MMALIB_types.h:243
@ MMALIB_ERR_CONVOLVE_COL_EVEN_NUMBER_OF_GROUPS_REQUIRED
Definition: MMALIB_types.h:223
@ MMALIB_ERROR_MAX
Definition: MMALIB_types.h:188
@ MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_INITARGS
Definition: MMALIB_types.h:250
@ MMALIB_ERR_CONVOLVE_COL_INVALID_SHIFTVALUES
Definition: MMALIB_types.h:209
@ MMALIB_ERR_CONVOLVE_COL_INVALID_BIASBVALUES
Definition: MMALIB_types.h:212
@ MMALIB_ERR_DECONVOLVE_ROW_INVALID_SUBMCHANNELS
Definition: MMALIB_types.h:232
@ MMALIB_ERR_CONVOLVE_COL_INVALID_CASE
Definition: MMALIB_types.h:221
@ MMALIB_ERR_POINTWISE_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_OUTPUT_TYPE
Definition: MMALIB_types.h:278
@ MMALIB_ERR_PIXELSHUFFLE_ROW_UNSUPPORTED_TYPE_COMBINATION
Definition: MMALIB_types.h:244
@ MMALIB_ERR_DECONVOLVE_ROW_INVALID_STRIDE
Definition: MMALIB_types.h:227
@ MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_TYPE_COMBINATION
Definition: MMALIB_types.h:218
@ MMALIB_ERR_NULL_POINTER
Definition: MMALIB_types.h:180
@ MMALIB_ERR_CONVOLVE_ROW_INVALID_INCHOFFSET_CIRCULAR
Definition: MMALIB_types.h:191
@ MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_OUTPUT_TYPE
Definition: MMALIB_types.h:266
@ MMALIB_ERR_MATRIX_TRANSPOSE_UNSUPPORTED_TYPE_COMBINATION
Definition: MMALIB_types.h:275
@ MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_SUBMCHANNELS
Definition: MMALIB_types.h:247
@ MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_OUTPUT_FEATURE_MAP_TYPE
Definition: MMALIB_types.h:217
@ MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_STRIDE
Definition: MMALIB_types.h:219
@ MMALIB_ERR_NOT_ALIGNED_PTRS_STRIDES
Definition: MMALIB_types.h:183
@ MMALIB_ERR_MATRIX_TRANSPOSE_UNSUPPORTED_OUTPUT_TYPE
Definition: MMALIB_types.h:274
@ MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_ACCUMULATE_UNSUPPORTED_INPUT_TYPE
Definition: MMALIB_types.h:269
@ MMALIB_ERR_CONVOLVE_ROW_INVALID_INPUTPITCHPERROW
Definition: MMALIB_types.h:205
@ MMALIB_ERR_DECONVOLVE_ROW_INVALID_TYPE_RELU_COMBINATION
Definition: MMALIB_types.h:234
@ MMALIB_ERR_INVALID_SHIFT
Definition: MMALIB_types.h:187
@ MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_STRIDE_DILATION_COMBINATION
Definition: MMALIB_types.h:222
@ MMALIB_ERR_INVALID_TYPE
Definition: MMALIB_types.h:178
@ MMALIB_ERR_CONVOLVE_ROW_INVALID_VALIDCOLSIN
Definition: MMALIB_types.h:200
@ MMALIB_ERR_CONVOLVE_ROW_INVALID_SUBMCHANNELS_STRIDE
Definition: MMALIB_types.h:195
@ MMALIB_ERR_FULLYCONNECTED_INVALID_TYPE_COMBINATION
Definition: MMALIB_types.h:237
@ MMALIB_ERR_CONVOLVE_COL_INVALID_NUMBIASVALS
Definition: MMALIB_types.h:211
@ MMALIB_ERR_FULLYCONNECTED_INVALID_TYPE_RELU_COMBINATION
Definition: MMALIB_types.h:239
@ MMALIB_ERR_NOT_ALIGNED_WIDTHS
Definition: MMALIB_types.h:184
@ MMALIB_ERR_TENSOR_CONVERT_INVALID_TYPE_COMBINATION
Definition: MMALIB_types.h:255
@ MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_INCHOFFSET_CIRCULAR
Definition: MMALIB_types.h:242
@ MMALIB_ERR_DECONVOLVE_ROW_INVALID_INIT_ARGS
Definition: MMALIB_types.h:230
@ MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_UNSUPPORTED_INPUT_TYPE
Definition: MMALIB_types.h:265
@ MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_BUFFER_DIMENSION
Definition: MMALIB_types.h:248
@ MMALIB_ERR_NOT_IMPLEMENTED
Definition: MMALIB_types.h:181
@ MMALIB_ERR_TENSOR_CONVERT_UNSUPPORTED_PAD_DIMENSION
Definition: MMALIB_types.h:260
@ MMALIB_ERR_BUFFER_TOO_SMALL
Definition: MMALIB_types.h:185
@ MMALIB_ERR_FULLYCONNECTED_INVALID_DIMENSION_COMBINATION
Definition: MMALIB_types.h:238
@ MMALIB_ERR_CONVOLVE_ROW_INVALID_NUM_GROUPS_PER_KERNEL
Definition: MMALIB_types.h:201
@ MMALIB_ERR_CONVOLVE_ROW_UNSUPPORTED_STRIDE
Definition: MMALIB_types.h:192
@ MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_UPSCALE_FACTOR
Definition: MMALIB_types.h:252
@ MMALIB_ERR_INVALID_DIMENSION
Definition: MMALIB_types.h:179
@ MMALIB_ERR_CONVOLVE_ROW_UNSUPPORTED_TYPE_COMBINATION
Definition: MMALIB_types.h:193
@ MMALIB_ERR_DECONVOLVE_ROW_INVALID_KERNEL_SIZE
Definition: MMALIB_types.h:226
@ MMALIB_ERR_TENSOR_CONVERT_UNSUPPORTED_CHANNEL_DIMENSION
Definition: MMALIB_types.h:258
@ MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_INPUT_FEATURE_MAP_TYPE
Definition: MMALIB_types.h:214
@ MMALIB_ERR_CONVOLVE_COL_UNSUPPORTED_GROUPING
Definition: MMALIB_types.h:220
@ MMALIB_ERR_CONVOLVE_ROW_INVALID_PAD_VALUES
Definition: MMALIB_types.h:204
@ MMALIB_SUCCESS
Definition: MMALIB_types.h:175
@ MMALIB_ERR_TENSOR_CONVERT_INVALID_DATA_STRIDE
Definition: MMALIB_types.h:261
@ MMALIB_ERR_CONVOLVE_ROW_INVALID_PTR_STRIDE
Definition: MMALIB_types.h:194
@ MMALIB_ERR_CONVOLVE_ROW_INVALID_NUM_GROUPS_PER_KERNEL_STRIDED
Definition: MMALIB_types.h:203
@ MMALIB_ERR_CONVOLVE_ROW_INVALID_INITARGS
Definition: MMALIB_types.h:199
@ MMALIB_ERR_MATRIX_MATRIX_MULTIPLY_ACCUMULATE_UNSUPPORTED_OUTPUT_TYPE
Definition: MMALIB_types.h:270
@ MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_PTR_STRIDE
Definition: MMALIB_types.h:245
@ MMALIB_ERR_TENSOR_CONVERT_UNSUPPORTED_CONVERSION_FORMAT
Definition: MMALIB_types.h:259
@ MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_VALIDCOLSIN
Definition: MMALIB_types.h:251
@ MMALIB_ERR_CONVOLVE_COL_INVALID_PAD_VALUES
Definition: MMALIB_types.h:210
@ MMALIB_ERR_DECONVOLVE_ROW_INVALID_BUFFER_DIMENSION_WEIGHTS
Definition: MMALIB_types.h:231
@ MMALIB_ERR_CONVOLVE_ROW_INVALID_BUFFER_DIMENSION
Definition: MMALIB_types.h:197
@ MMALIB_ERR_PIXELSHUFFLE_ROW_INVALID_SUBMCHANNELS_STRIDE
Definition: MMALIB_types.h:246
@ MMALIB_ERR_DECONVOLVE_ROW_INVALID_DILATION
Definition: MMALIB_types.h:228
@ MMALIB_ERR_FAILURE
Definition: MMALIB_types.h:176
@ MMALIB_ERR_TENSOR_CONVERT_INVALID_DIMENSION_COMBINATION
Definition: MMALIB_types.h:256
@ MMALIB_FUNCTION_MAX
Definition: MMALIB_types.h:291
@ MMALIB_FUNCTION_NATC
Definition: MMALIB_types.h:288
@ MMALIB_FUNCTION_OPTIMIZED
Definition: MMALIB_types.h:289
@ MMALIB_BUF_CIRCULAR
Circular buffer for coefficients.
Definition: MMALIB_types.h:300
@ MMALIB_LINEAR
Linear buffer.
Definition: MMALIB_types.h:297
@ MMALIB_SE_CIRCULAR
Definition: MMALIB_types.h:298
@ MMALIB_HWC
Used when tensor is in NHWC format.
Definition: MMALIB_types.h:306
@ MMALIB_CHW
Used when tensor is in NCHW format.
Definition: MMALIB_types.h:305