FFTLIB User Guide
FFTLIB_LINALG_matrixMatrixMultiply_ixX_ixX_oxX_priv.h
Go to the documentation of this file.
1 /******************************************************************************
2 * *
3 * module name :FFTLIB *
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 
12 /********************************************************************************
13  * @file FFTLIB_LINALG_matrixMatrixMultiply_ixX_ixX_oxX_priv.h
14  *
15  * @brief File to hold private parameters of function FFTLIB_LINALG_matrixMatrixMultiply
16  *
17  * @version 0.1 - Jan 2018 : Initial Version
18  *
19  ********************************************************************************/
20 
21 #ifndef FFTLIB_LINALG_MATRIXMATRIXMULTIPLY_IXX_IXX_OXX_PRIV_H_
22 #define FFTLIB_LINALG_MATRIXMATRIXMULTIPLY_IXX_IXX_OXX_PRIV_H_
23 
25 #include "../../common/FFTLIB_utility.h"
26 
38 #define FFTLIB_LINALG_MATRIXMATRIXMULTIPLY_IXX_IXX_OXX_PBLOCK_SIZE (3*SE_PARAM_SIZE + 1*FFTLIB_PARAM_SIZE)
39 
40 
47  FFTLIB_kernelHandle handle,
48  const void * src0,
49  const void * src1,
50  void *dst);
51 
55 typedef struct
56 {
59  int32_t M;
60  int32_t K;
61  int32_t N;
62 
63  int32_t strideAElements;
64  int32_t strideBElements;
65  int32_t strideCElements;
66 
69 
70 
101 template <uint32_t dataType>
103  const FFTLIB_bufParams2D_t *src0_addr,
104  const FFTLIB_bufParams2D_t *src1_addr,
105  const FFTLIB_bufParams2D_t *dst_addr,
107 
108 
126 template <int32_t MMA_SIZE>
128  const void *src0,
129  const void *src1,
130  void *dst);
131 
132 
133 
154  const FFTLIB_bufParams2D_t *src0_addr,
155  const FFTLIB_bufParams2D_t *src1_addr,
156  const FFTLIB_bufParams2D_t *dst_addr,
158 
159 
178 template <typename dataType, typename accumulateType>
180  const void *src0,
181  const void *src1,
182  void *dst);
183 
184 
185 #endif /* FFTLIB_LINALG_MATRIXMATRIXMULTIPLY_IXX_IXX_OXX_PRIV_H_ */
186 
187 /* ======================================================================== */
188 /* End of file: FFTLIB_LINALG_matrixMatrixMultiply_ixX_ixX_oxX.h */
189 /* ======================================================================== */
190 
FFTLIB_STATUS FFTLIB_LINALG_matrixMatrixMultiply_ixX_ixX_oxX_exec_cn(FFTLIB_kernelHandle handle, const void *src0, const void *src1, void *dst)
This function is the main execution function for the natural C implementation of the matrix-matrix mu...
FFTLIB_STATUS FFTLIB_LINALG_matrixMatrixMultiply_ixX_ixX_oxX_init_ci(FFTLIB_kernelHandle handle, const FFTLIB_bufParams2D_t *src0_addr, const FFTLIB_bufParams2D_t *src1_addr, const FFTLIB_bufParams2D_t *dst_addr, const FFTLIB_LINALG_matrixMatrixMultiply_ixX_ixX_oxX_InitArgs *pKerInitArgs)
This function is the initialization function for the optimized C implementation of the kernel.
FFTLIB_STATUS FFTLIB_LINALG_matrixMatrixMultiply_ixX_ixX_oxX_exec_ci(FFTLIB_kernelHandle handle, const void *src0, const void *src1, void *dst)
This function is the main execution function for the optimized C7x-MMA implementation of the matrix-m...
FFTLIB_STATUS(* pFxnFFTLIB_LINALG_matrixMatrixMultiply_ixX_ixX_oxX_exec)(FFTLIB_kernelHandle handle, const void *src0, const void *src1, void *dst)
This is a function pointer type that conforms to the declaration of FFTLIB_LINALG_matrixMatrixMultipl...
#define FFTLIB_LINALG_MATRIXMATRIXMULTIPLY_IXX_IXX_OXX_PBLOCK_SIZE
Macro to define the size of bufPblock array of FFTLIB_LINALG_matrixMatrixMultiply_ixX_ixX_oxX_PrivArg...
FFTLIB_STATUS FFTLIB_LINALG_matrixMatrixMultiply_ixX_ixX_oxX_init_cn(FFTLIB_kernelHandle handle, const FFTLIB_bufParams2D_t *src0_addr, const FFTLIB_bufParams2D_t *src1_addr, const FFTLIB_bufParams2D_t *dst_addr, const FFTLIB_LINALG_matrixMatrixMultiply_ixX_ixX_oxX_InitArgs *pKerInitArgs)
This function is the initialization function for the natural C implementation of the kernel.
void * FFTLIB_kernelHandle
Handle type for FFTLIB operations.
Definition: FFTLIB_types.h:217
FFTLIB_STATUS_NAME
The enumeration of all status codes.
Definition: FFTLIB_types.h:172
FFTLIB_STATUS_NAME FFTLIB_STATUS
Return value for FFTLIB functions.
Definition: FFTLIB_types.h:215
This structure holds all the initialization parameters for matrix- matrix multiplication.
pFxnFFTLIB_LINALG_matrixMatrixMultiply_ixX_ixX_oxX_exec execute
Function pointer to the execution variant.
int32_t K
Number of blocks in the horizontal dimension of the first input matrix. In the case of natural C code...
int32_t M
Number of blocks in the vertical dimension of the first input matrix. In the case of natural C code,...
int32_t N
Number of blocks in the horizontal dimension of the second input matrix. In the case of natural C cod...
FFTLIB_LINALG_matrixMatrixMultiply_ixX_ixX_oxX_InitArgs initArgs
Structure holding initialization parameters.
A structure for a 2 dimensional buffer descriptor.