22 #ifndef MMALIB_CNN_CONVOLVE_COL_SMALLNO_HIGHPRECISION_POINTWISEPOST_H_
23 #define MMALIB_CNN_CONVOLVE_COL_SMALLNO_HIGHPRECISION_POINTWISEPOST_H_
25 #include "../../common/MMALIB_types.h"
33 #define ENABLE_FEATURE_MAP_DIM_SPLIT_GROUPS_ODD_CHECK 0
95 #define MMALIB_CONVOLVE_COL_SHIFT_PER_GROUP 1
121 #if defined(__C7100__)
123 int32_t biasDataType;
132 #if defined(MMALIB_CONVOLVE_COL_IN_KERNEL_PADDING)
135 #if defined(MMALIB_ENABLE_DYNAMIC_RANGE_TRACKING)
156 #if defined(MMALIB_ENABLE_DYNAMIC_RANGE_TRACKING)
173 #if defined(MMALIB_ENABLE_DYNAMIC_RANGE_TRACKING)
310 const uint8_t *shiftValues,
311 const void *lutValues,
346 const uint8_t *shiftValues,
347 const void *lutValues,
MMALIB_CNN_CONVOLVE_COL_SMALLNO_HIGHPRECISION_POINTWISEPOST_STATUS_NAME
Enumeration for different error codes for MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost...
MMALIB_STATUS MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost_exec(MMALIB_kernelHandle handle, const void *src0, const void *src1, const void *src2, const void *src3, const uint8_t *shiftValues, const void *lutValues, void *restrict dst, const MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost_ExecInArgs *pKerInArgs, MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost_ExecOutArgs *pKerOutArgs)
This function is the main compute function, and performs the convolution primitive (conv + ReLU) for ...
MMALIB_STATUS MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost_init(MMALIB_kernelHandle handle, const MMALIB_bufParams3D_t *src0_addr, const MMALIB_bufParams2D_t *src1_addr, const MMALIB_bufParams2D_t *src2_addr, const MMALIB_bufParams1D_t *src3_addr, const MMALIB_bufParams3D_t *dst_addr, const MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost_InitArgs *pKerInitArgs)
This function call is required to initialize the handle. In this function most of the one time operat...
MMALIB_STATUS MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost_exec_checkParams(MMALIB_kernelHandle handle, const void *src0, const void *src1, const void *src2, const void *src3, const uint8_t *shiftValues, const void *lutValues, const void *dst, const MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost_ExecInArgs *pKerInArgs)
This function checks the parameters and should be called before kernel execution. It can be called on...
int32_t MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost_getHandleSize(MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost_InitArgs *pKerInitArgs)
This is a query function to kernel to get the size of internal handle.
MMALIB_STATUS MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost_init_checkParams(MMALIB_kernelHandle handle, const MMALIB_bufParams3D_t *src0_addr, const MMALIB_bufParams2D_t *src1_addr, const MMALIB_bufParams2D_t *src2_addr, const MMALIB_bufParams1D_t *src3_addr, const MMALIB_bufParams3D_t *dst_addr, const MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost_InitArgs *pKerInitArgs)
This function checks the parameters and should be called before kernel execution. It can be called on...
@ MMALIB_CNN_CONVOLVE_COL_SMALLNO_HIGHPRECISION_POINTWISEPOST_ERR_SMALL_K
@ MMALIB_CNN_CONVOLVE_COL_SMALLNO_HIGHPRECISION_POINTWISEPOST_ERR_MAX
MMALIB_enableDynamicRange_type_e
The enumeration of possible dynamic range enable settings.
MMALIB_STATUS_NAME
The enumeration of all status codes.
MMALIB_initDynamicRange_type_e
The enumeration of possible dynamic range reset options.
void * MMALIB_kernelHandle
Handle type for MMALIB operations.
This structure holds all the execution input parameters for the CNN column based convolution kernel.
MMALIB_initDynamicRange_type initDynamicRange
Flag indicating whether to reset dynamic range (min,max) calculation at beginning of compute.
int32_t padFillValue
Pad fill value, must be zero for C7100 devices.
MMALIB_enableDynamicRange_type enableDynamicRange
Flag indicating whether to enable dynamic range range (min,max) calculation.
int32_t blockFeatureWidth
Width of the input feature map to be processed.
This structure holds all the runtime output parameters for CNN column based convolution kernel.
int64_t dynamicRangeMin
Minimum computed value, controlled with MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost_E...
int32_t validColsOut
Width of buffer C.
int64_t dynamicRangeMax
Maximum computed value, controlled with MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost_E...
This structure holds all the initialization parameters for CNN column based convolution kernel.
int32_t outPairOffset
Distance, in elements, between the output of the even- and odd-numbered output feature map block colu...
int32_t topPad
pixels of pad to apply to the top side of the input data
uint8_t shift
Number of bits of right shift parameter for output precision.
uint8_t activationType
Activation of RELU, SAT or none for output.
int32_t leftPad
pixels of pad to apply to the left side of the input data
int32_t groupOffset
Distance, in elements, between groups.
int32_t Fr
Number of kernel rows (height)
int8_t shiftMethod
Control behavior of MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost_InitArgs....
int32_t strideX
Stride size across columns (horizontal dimension)
int32_t No
Number of output channels to be processed per group.
int32_t inPairOffset
Distance, in elements, between the even- and odd-numbered input feature map block columns (i....
int32_t numGroupsPerKernel
Number of groups to be processed in a single kernel call.
int32_t inChOffset
Distance, in elements, between the input channels.
int32_t Fc
Number of kernel columns (width)
int32_t pSatMax
Maximum value for parameterized saturation.
int32_t bottomPad
pixels of pad to apply to the bottom side of the input data
int32_t strideY
Stride size across rows (vertical dimension)
int32_t blockFeaturePitch
Pitch between rows of input feature map, in bytes, without pad.
int32_t rightPad
pixels of pad to apply to the right side of the input data
int32_t dilationY
Dilation of kernel height.
int32_t featureWidth
Total feature map width, without pad.
int32_t Ni
Number of input channels to be processed per group.
int32_t blockFeatureHeight
Number of rows from the input feature map to be processed, without pad.
int32_t pSatMin
Minimum value for parameterized saturation.
int8_t funcStyle
Variant of the function; refer to MMALIB_FUNCTION_STYLE.
int32_t columnOffset
Distance, in elements, between starting points of even-numbered input feature map block columns (0,...
int32_t dilationX
Dilation of kernel width.
A structure for a 1 dimensional buffer descriptor.
A structure for a 2 dimensional buffer descriptor.
A structure for a 3 dimensional buffer descriptor.