21 #ifndef DSPLIB_MATMUL_FIXED_IXX_IXX_OXX_PRIV_H_
22 #define DSPLIB_MATMUL_FIXED_IXX_IXX_OXX_PRIV_H_
24 #include "../common/DSPLIB_utility.h"
39 #define DSPLIB_MATMUL_FIXED_IXX_IXX_OXX_PBLOCK_SIZE (3 * SE_PARAM_SIZE)
40 #define DSPLIB_MATMAPY_FXD_I8S_O8S int8_t, c7x::char_hvec
41 #define DSPLIB_MATMAPY_FXD_I16S_O16S int16_t, c7x::short_vec
91 template <
typename dataTypeIn,
typename dataTypeOut>
124 template <
typename dataTypeIn,
typename dataTypeOut>
147 template <
typename dataType>
198 template <
typename dataTypeIn,
typename dataTypeOut>
205 template <
typename dataTypeIn,
typename dataTypeOut>
209 void *restrict pOut);
211 template <
typename dataType>
void printStridedMat(
char *inStr,
int Nrows,
int colStride, dataType *inMat)
213 printf(
"Nrwo: %d, colStride: %d\n", Nrows, colStride);
214 printf(
"%s:\n", inStr);
215 dataType *printMat = inMat;
216 for (
int i = 0; i < Nrows; i++) {
217 for (
int j = 0; j < colStride; j++) {
218 printf(
"%8d", (int16_t) *printMat++);
229 template <
typename dataType>
236 template <
typename dataTypeIn,
typename dataTypeOut>
240 void *restrict pOut);
242 template <
typename dataType>
249 template <
typename dataType>
253 void *restrict pOut);
#define DSPLIB_MATMUL_FIXED_IXX_IXX_OXX_PBLOCK_SIZE
Macro to define the size of bufPblock array of DSPLIB_matMul_fixed_PrivArgs structure.
template void printStridedMat< int8_t >(char *inStr, int Nrows, int colStride, int8_t *inMat)
DSPLIB_STATUS DSPLIB_matMul_fixed_generic_init_ci(DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsIn0, const DSPLIB_bufParams2D_t *bufParamsIn1, const DSPLIB_bufParams2D_t *bufParamsOut, const DSPLIB_matMul_fixed_InitArgs *pKerInitArgs)
DSPLIB_STATUS DSPLIB_matMul_fixed_exec_ci(DSPLIB_kernelHandle handle, void *restrict pIn1, void *restrict pIn2, void *restrict pOut)
This function is the main execution function for the C7x implementation of the kernel....
DSPLIB_STATUS DSPLIB_matMul_fixed_generic_exec_ci(DSPLIB_kernelHandle handle, void *restrict pIn0, void *restrict pIn1, void *restrict pOut)
DSPLIB_STATUS DSPLIB_matMul_fixed_N_unroll_init_ci(DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsIn0, const DSPLIB_bufParams2D_t *bufParamsIn1, const DSPLIB_bufParams2D_t *bufParamsOut, const DSPLIB_matMul_fixed_InitArgs *pKerInitArgs)
DSPLIB_STATUS DSPLIB_matMul_fixed_exec_cn(DSPLIB_kernelHandle handle, void *restrict pIn1, void *restrict pIn2, void *restrict pOut)
This function is the main execution function for the natural C implementation of the kernel....
template void printStridedMat< int16_t >(char *inStr, int Nrows, int colStride, int16_t *inMat)
DSPLIB_STATUS DSPLIB_matMul_fixed_init_cn(DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsIn0, DSPLIB_bufParams2D_t *bufParamsIn1, DSPLIB_bufParams2D_t *bufParamsOut)
This function is the initialization function for the natural C implementation of the kernel....
void printStridedMat(char *inStr, int Nrows, int colStride, dataType *inMat)
DSPLIB_STATUS(* pFxnDSPLIB_matMul_fixed_exec)(DSPLIB_kernelHandle handle, void *restrict pIn1, void *restrict pIn2, void *restrict pOut)
Macro to define the size of bufPblock array of DSPLIB_matMul_fixed_PrivArgs structure.
DSPLIB_STATUS DSPLIB_matMul_fixed_N_unroll_exec_ci(DSPLIB_kernelHandle handle, void *restrict pIn0, void *restrict pIn1, void *restrict pOut)
DSPLIB_STATUS DSPLIB_matMul_fixed_init_ci(DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsIn0, const DSPLIB_bufParams2D_t *bufParamsIn1, const DSPLIB_bufParams2D_t *bufParamsOut, const DSPLIB_matMul_fixed_InitArgs *pKerInitArgs)
This function is the initialization function for the C7x implementation of the kernel....
DSPLIB_STATUS_NAME DSPLIB_STATUS
Return value for DSPLIB functions.
DSPLIB_STATUS_NAME
The enumeration of all status codes.
void * DSPLIB_kernelHandle
Handle type for DSPLIB operations.
A structure for a 2 dimensional buffer descriptor.
Structure containing the parameters to initialize the kernel.
Structure that is reserved for internal use by the kernel.
pFxnDSPLIB_matMul_fixed_exec execute
Function pointer to point to the right execution variant between DSPLIB_matMul_fixed_exec_cn and DSPL...
int32_t strideIn0Elements
int32_t strideOutElements
int32_t strideIn1Elements