DSPLIB User Guide
DSPLIB_qrd_priv.h
Go to the documentation of this file.
1 /******************************************************************************
2  * *
3  * module name :DSPLIB *
4  * *
5  * module descripton :Digital Signal Processing 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 DSPLIB_qrd_priv.h
14  *
15  * @brief File to hold private parameter of function DSPLIB_qrd
16  *
17  * @version 0.1 - Jun 2023 : Initial Version
18  *
19  ********************************************************************************/
20 
21 #ifndef DSPLIB_QRD_IXX_IXX_OXX_PRIV_H_
22 #define DSPLIB_QRD_IXX_IXX_OXX_PRIV_H_
23 
24 #include "../common/DSPLIB_inlines.h"
25 #include "../common/DSPLIB_utility.h"
26 #include "DSPLIB_qrd.h"
27 #include "DSPLIB_qrd_common.h"
28 
40 #define DSPLIB_QRD_IXX_IXX_OXX_PBLOCK_SIZE (20 * SE_PARAM_SIZE)
41 
48  const void *restrict pA,
49  const void *restrict pQ,
50  const void *restrict pR,
51  const void *restrict pU,
52  const void *restrict pScratch);
53 
85 template <typename dataType>
87  DSPLIB_bufParams2D_t *bufParamsA,
88  DSPLIB_bufParams2D_t *bufParamsQ,
89  DSPLIB_bufParams2D_t *bufParamsR,
90  DSPLIB_bufParams1D_t *bufParamsU,
91  const DSPLIB_qrdInitArgs *pKerInitArgs);
92 
116 template <typename dataType>
118  const void *restrict pA,
119  const void *restrict pQ,
120  const void *restrict pR,
121  const void *restrict pU,
122  const void *restrict pScratch);
123 
146 template <typename dataType>
148  DSPLIB_bufParams2D_t *bufParamsA,
149  DSPLIB_bufParams2D_t *bufParamsQ,
150  DSPLIB_bufParams2D_t *bufParamsR,
151  DSPLIB_bufParams1D_t *bufParamsU,
152  const DSPLIB_qrdInitArgs *pKerInitArgs);
153 
171 template <typename dataType>
173  const void *restrict pA,
174  const void *restrict pQ,
175  const void *restrict pR,
176  const void *restrict pU,
177  const void *restrict pScratch);
178 
182 typedef struct {
191  uint32_t widthA;
193  uint32_t heightA;
195  int32_t strideA;
197  int32_t strideQ;
199  int32_t strideR;
203 
204 template <typename dataType> void DSPLIB_qrd_blk_move_init_ci(DSPLIB_kernelHandle handle);
205 template <typename dataType> void DSPLIB_qrd_alpha_init_ci(DSPLIB_kernelHandle handle);
206 template <typename dataType> void DSPLIB_R_column_init_ci(DSPLIB_kernelHandle handle);
207 template <typename dataType> void DSPLIB_Q_matrix_init_ci(DSPLIB_kernelHandle handle);
208 
209 template <typename dataType>
210 void DSPLIB_qrd_R_matrix_exec_ci(dataType *pLocalR,
211  dataType *pLocalU,
212  dataType *pSum,
213  dataType scale,
214  int32_t colStrideR,
215  int32_t nRows,
216  int32_t nCols,
217  uint8_t *pBlock);
218 
219 template <typename dataType>
220 void DSPLIB_qrd_Q_matrix_exec_ci(dataType *pLocalQ,
221  dataType *pLocalU,
222  dataType *pSum,
223  dataType scale,
224  int32_t colStrideQ,
225  int32_t nRows,
226  int32_t nCols,
227  uint8_t *pBlock);
228 
229 #endif /* DSPLIB_QRD_IXX_IXX_OXX_PRIV_H_ */
230 
231 /* ======================================================================== */
232 /* End of file: DSPLIB_qrd_priv.h */
233 /* ======================================================================== */
DSPLIB_STATUS DSPLIB_qrd_init_ci(DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsA, DSPLIB_bufParams2D_t *bufParamsQ, DSPLIB_bufParams2D_t *bufParamsR, DSPLIB_bufParams1D_t *bufParamsU, const DSPLIB_qrdInitArgs *pKerInitArgs)
This function is the initialization function for the C7x implementation of the kernel....
DSPLIB_STATUS DSPLIB_qrd_init_cn(DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsA, DSPLIB_bufParams2D_t *bufParamsQ, DSPLIB_bufParams2D_t *bufParamsR, DSPLIB_bufParams1D_t *bufParamsU, const DSPLIB_qrdInitArgs *pKerInitArgs)
This function is the initialization function for the natural C implementation of the kernel....
DSPLIB_STATUS(* pFxnDSPLIB_qrd_exec)(DSPLIB_kernelHandle handle, const void *restrict pA, const void *restrict pQ, const void *restrict pR, const void *restrict pU, const void *restrict pScratch)
This is a function pointer type that conforms to the declaration of DSPLIB_qrd_exec_ci and DSPLIB_qrd...
void DSPLIB_R_column_init_ci(DSPLIB_kernelHandle handle)
void DSPLIB_qrd_Q_matrix_exec_ci(dataType *pLocalQ, dataType *pLocalU, dataType *pSum, dataType scale, int32_t colStrideQ, int32_t nRows, int32_t nCols, uint8_t *pBlock)
#define DSPLIB_QRD_IXX_IXX_OXX_PBLOCK_SIZE
Macro to define the size of bufPblock array of DSPLIB_qrd_PrivArgs structure.
void DSPLIB_qrd_R_matrix_exec_ci(dataType *pLocalR, dataType *pLocalU, dataType *pSum, dataType scale, int32_t colStrideR, int32_t nRows, int32_t nCols, uint8_t *pBlock)
void DSPLIB_Q_matrix_init_ci(DSPLIB_kernelHandle handle)
void DSPLIB_qrd_blk_move_init_ci(DSPLIB_kernelHandle handle)
void DSPLIB_qrd_alpha_init_ci(DSPLIB_kernelHandle handle)
DSPLIB_STATUS DSPLIB_qrd_exec_ci(DSPLIB_kernelHandle handle, const void *restrict pA, const void *restrict pQ, const void *restrict pR, const void *restrict pU, const void *restrict pScratch)
This function is the main execution function for the C7x implementation of the kernel....
DSPLIB_STATUS DSPLIB_qrd_exec_cn(DSPLIB_kernelHandle handle, const void *restrict pA, const void *restrict pQ, const void *restrict pR, const void *restrict pU, const void *restrict pScratch)
This function is the main execution function for the natural C implementation of the kernel....
DSPLIB_STATUS_NAME DSPLIB_STATUS
Return value for DSPLIB functions.
Definition: DSPLIB_types.h:170
DSPLIB_STATUS_NAME
The enumeration of all status codes.
Definition: DSPLIB_types.h:151
void * DSPLIB_kernelHandle
Handle type for DSPLIB operations.
Definition: DSPLIB_types.h:172
A structure for a 1 dimensional buffer descriptor.
A structure for a 2 dimensional buffer descriptor.
Structure containing the parameters to initialize the kernel.
Definition: DSPLIB_qrd.h:112
Structure that is reserved for internal use by the kernel.
pFxnDSPLIB_qrd_exec execute
Function pointer to point to the right execution variant between DSPLIB_qrd_exec_cn and DSPLIB_qrd_ex...
int32_t strideR
Stride between rows of R output data matrix
uint32_t heightA
Height of input data matrix
uint32_t widthA
Size of input buffer for different batches DSPLIB_qrd_init that will be retrieved and used by DSPLIB_...
int32_t strideQ
Stride between rows of Q output data matrix
int32_t strideA
Stride between rows of input data matrix