![]() |
DSPLIB User Guide
|
Header file for kernel's internal use. For the kernel's interface, please see DSPLIB_lud_sol.
Definition in file DSPLIB_lud_sol_priv.h.
Go to the source code of this file.
Data Structures | |
| struct | DSPLIB_lud_sol_PrivArgs |
| Structure that is reserved for internal use by the kernel. More... | |
Macros | |
| #define | DSPLIB_LUD_SOL_IXX_IXX_OXX_PBLOCK_SIZE (8 * SE_PARAM_SIZE) |
| Macro to define the size of bufPblock array of DSPLIB_lud_sol_PrivArgs structure. More... | |
Typedefs | |
| typedef DSPLIB_STATUS(* | pFxnDSPLIB_lud_sol_exec) (DSPLIB_kernelHandle handle, void *restrict pP, void *restrict pL, void *restrict pU, void *restrict pB, void *restrict pX, void *restrict pVecScratch, void *restrict pScratchTrans) |
| This is a function pointer type that conforms to the declaration of DSPLIB_lud_sol_exec_ci and DSPLIB_lud_sol_exec_cn. More... | |
Functions | |
| template<typename dataType > | |
| DSPLIB_STATUS | DSPLIB_lud_sol_init_ci (DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsP, const DSPLIB_bufParams2D_t *bufParamsL, const DSPLIB_bufParams2D_t *bufParamsU, const DSPLIB_bufParams1D_t *bufParamsB, const DSPLIB_bufParams1D_t *bufParamsX, const DSPLIB_bufParams2D_t *bufParamsVecScratch, const DSPLIB_bufParams2D_t *bufParamsTransposeScratch, const DSPLIB_lud_solInitArgs *pKerInitArgs) |
| This function is the initialization function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_lud_sol_init. More... | |
| template<typename dataType > | |
| DSPLIB_STATUS | DSPLIB_lud_sol_exec_ci (DSPLIB_kernelHandle handle, void *restrict pP, void *restrict pL, void *restrict pU, void *restrict pB, void *restrict pX, void *restrict pVecScratch, void *restrict pScratchTrans) |
| This function is the main execution function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_lud_sol_exec. More... | |
| DSPLIB_STATUS | DSPLIB_lud_sol_init_cn (DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsP, const DSPLIB_bufParams2D_t *bufParamsL, const DSPLIB_bufParams2D_t *bufParamsU, const DSPLIB_bufParams1D_t *bufParamsB, const DSPLIB_bufParams1D_t *bufParamsX, const DSPLIB_bufParams2D_t *bufParamsVecScratch, const DSPLIB_bufParams2D_t *bufParamsTransposeScratch, const DSPLIB_lud_solInitArgs *pKerInitArgs) |
| This function is the initialization function for the natural C implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_lud_sol_init. More... | |
| template<typename dataType > | |
| DSPLIB_STATUS | DSPLIB_lud_sol_exec_cn (DSPLIB_kernelHandle handle, void *restrict pP, void *restrict pL, void *restrict pU, void *restrict pB, void *restrict pX, void *restrict pVecScratch, void *restrict pScratchTrans) |
| This function is the main execution function for the natural C implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_lud_sol_exec. More... | |
| #define DSPLIB_LUD_SOL_IXX_IXX_OXX_PBLOCK_SIZE (8 * SE_PARAM_SIZE) |
Macro to define the size of bufPblock array of DSPLIB_lud_sol_PrivArgs structure.
Definition at line 39 of file DSPLIB_lud_sol_priv.h.
| typedef DSPLIB_STATUS(* pFxnDSPLIB_lud_sol_exec) (DSPLIB_kernelHandle handle, void *restrict pP, void *restrict pL, void *restrict pU, void *restrict pB, void *restrict pX, void *restrict pVecScratch, void *restrict pScratchTrans) |
This is a function pointer type that conforms to the declaration of DSPLIB_lud_sol_exec_ci and DSPLIB_lud_sol_exec_cn.
Definition at line 46 of file DSPLIB_lud_sol_priv.h.
| DSPLIB_STATUS DSPLIB_lud_sol_init_ci | ( | DSPLIB_kernelHandle | handle, |
| const DSPLIB_bufParams2D_t * | bufParamsP, | ||
| const DSPLIB_bufParams2D_t * | bufParamsL, | ||
| const DSPLIB_bufParams2D_t * | bufParamsU, | ||
| const DSPLIB_bufParams1D_t * | bufParamsB, | ||
| const DSPLIB_bufParams1D_t * | bufParamsX, | ||
| const DSPLIB_bufParams2D_t * | bufParamsVecScratch, | ||
| const DSPLIB_bufParams2D_t * | bufParamsTransposeScratch, | ||
| const DSPLIB_lud_solInitArgs * | pKerInitArgs | ||
| ) |
This function is the initialization function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_lud_sol_init.
This function determines the configuration for the streaming engine resources based on the function call parameters, and the configuration is saved in bufPBlock array. In the kernel call sequence, DSPLIB_lud_sol_exec_ci would be called later independently by the application. When DSPLIB_lud_sol_exec_ci runs, it merely retrieves the configuration from the bufPBlock and uses it to set up the hardware resources. This arrangement is so that DSPLIB_lud_sol_exec_ci does not lose cycles to determine the hardware configuration.
| [in] | handle | : Active handle to the kernel |
| [in] | bufParamsP | : Pointer to the structure containing dimensional information of input buffer P |
| [in] | bufParamsL | : Pointer to the structure containing dimensional information of input buffer L |
| [in] | bufParamsU | : Pointer to the structure containing dimensional information of input buffer U |
| [in] | bufParamsB | : Pointer to the structure containing dimensional information of input buffer B |
| [out] | bufParamsX | : Pointer to the structure containing dimensional information of ouput buffer X |
| [in] | bufParamsVecScratch | : Pointer to the structure containing dimensional information of intermediate buffer |
| [in] | bufParamsTransposeScratch | : Pointer to the structure containing dimensional information of scratch buffer pScratchTrans |
| [in] | pKerInitArgs | : Pointer to the structure holding init parameters |
Definition at line 161 of file DSPLIB_lud_sol_ci.cpp.
| DSPLIB_STATUS DSPLIB_lud_sol_exec_ci | ( | DSPLIB_kernelHandle | handle, |
| void *restrict | pP, | ||
| void *restrict | pL, | ||
| void *restrict | pU, | ||
| void *restrict | pB, | ||
| void *restrict | pX, | ||
| void *restrict | pVecScratch, | ||
| void *restrict | pScratchTrans | ||
| ) |
This function is the main execution function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_lud_sol_exec.
The function uses streaming engine to load data in TRANSPOSE MODE. The result is then stored at separate location using a streaming address generator.
| [in] | handle | : Active handle to the kernel |
| [in] | pP | : Pointer to permutation matrix P |
| [in] | pL | : Pointer to lower triangular matrix L |
| [in] | pU | : Pointer to upper triangular matrix U |
| [in] | pB | : Pointer to vector b |
| [out] | pX | : Pointer to final solver output vector x |
| [in] | pVecScratch | : Pointer to intermediate buffer |
| [in] | pScratchTrans | : Pointer to scratch buffer for transpose |
Definition at line 935 of file DSPLIB_lud_sol_ci.cpp.
| DSPLIB_STATUS DSPLIB_lud_sol_init_cn | ( | DSPLIB_kernelHandle | handle, |
| const DSPLIB_bufParams2D_t * | bufParamsP, | ||
| const DSPLIB_bufParams2D_t * | bufParamsL, | ||
| const DSPLIB_bufParams2D_t * | bufParamsU, | ||
| const DSPLIB_bufParams1D_t * | bufParamsB, | ||
| const DSPLIB_bufParams1D_t * | bufParamsX, | ||
| const DSPLIB_bufParams2D_t * | bufParamsVecScratch, | ||
| const DSPLIB_bufParams2D_t * | bufParamsTransposeScratch, | ||
| const DSPLIB_lud_solInitArgs * | pKerInitArgs | ||
| ) |
This function is the initialization function for the natural C implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_lud_sol_init.
| [in] | handle | : Active handle to the kernel |
| [in] | bufParamsP | : Pointer to the structure containing dimensional information of input buffer P |
| [in] | bufParamsL | : Pointer to the structure containing dimensional information of input buffer L |
| [in] | bufParamsU | : Pointer to the structure containing dimensional information of input buffer U |
| [in] | bufParamsB | : Pointer to the structure containing dimensional information of input buffer B |
| [out] | bufParamsX | : Pointer to the structure containing dimensional information of ouput buffer X |
| [in] | bufParamsVecScratch | : Pointer to the structure containing dimensional information of intermediate buffer |
| [in] | bufParamsTransposeScratch | : Pointer to the structure containing dimensional information of scratch buffer pScratchTrans |
| [in] | pKerInitArgs | : Pointer to the structure holding init parameters |
Definition at line 36 of file DSPLIB_lud_sol_cn.cpp.
| DSPLIB_STATUS DSPLIB_lud_sol_exec_cn | ( | DSPLIB_kernelHandle | handle, |
| void *restrict | pP, | ||
| void *restrict | pL, | ||
| void *restrict | pU, | ||
| void *restrict | pB, | ||
| void *restrict | pX, | ||
| void *restrict | pVecScratch, | ||
| void *restrict | pScratchTrans | ||
| ) |
This function is the main execution function for the natural C implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_lud_sol_exec.
| [in] | handle | : Active handle to the kernel |
| [in] | pP | : Pointer to permutation matrix P |
| [in] | pL | : Pointer to lower triangular matrix L |
| [in] | pU | : Pointer to upper triangular matrix U |
| [in] | pB | : Pointer to vector b |
| [out] | pX | : Pointer to final solver output vector x |
| [in] | pVecScratch | : Pointer to intermediate buffer |
| [in] | pScratchTrans | : Pointer to scratch buffer for transpose |
Definition at line 141 of file DSPLIB_lud_sol_cn.cpp.