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"
92 #define MMALIB_CONVOLVE_COL_SHIFT_SINGLE 0
93 #define MMALIB_CONVOLVE_COL_SHIFT_PER_GROUP 1
296 const uint8_t *shiftValues,
297 const void *lutValues,
332 const uint8_t *shiftValues,
333 const void *lutValues,
374 uint64_t *archCycles, uint64_t *estCycles);
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 ...
void MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost_perfEst(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, const MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost_ExecInArgs *pExecInArgs, MMALIB_CNN_convolve_col_smallNo_highPrecision_pointwisePost_ExecOutArgs *pExecOutArgs, uint64_t *archCycles, uint64_t *estCycles)
This function estimates the cycles consumed for the kernel execution.
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_STATUS_NAME
The enumeration of all status codes.
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.
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.
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.