![]() |
DSPLIB User Guide
|
Go to the source code of this file.
Functions | |
| template<typename dataType > | |
| void | DSPLIB_lud_sol_substitution_init_ci (DSPLIB_kernelHandle handle) |
| template void | DSPLIB_lud_sol_substitution_init_ci< float > (DSPLIB_kernelHandle handle) |
| template void | DSPLIB_lud_sol_substitution_init_ci< double > (DSPLIB_kernelHandle handle) |
| template<typename dataType > | |
| void | DSPLIB_lud_sol_permuteB_init_ci (DSPLIB_kernelHandle handle) |
| template void | DSPLIB_lud_sol_permuteB_init_ci< float > (DSPLIB_kernelHandle handle) |
| template void | DSPLIB_lud_sol_permuteB_init_ci< double > (DSPLIB_kernelHandle handle) |
| 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 *bufParamsScratchTrans, 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 DSPLIB_STATUS | DSPLIB_lud_sol_init_ci< float > (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 *bufParamsScratchTrans, const DSPLIB_lud_solInitArgs *pKerInitArgs) |
| template DSPLIB_STATUS | DSPLIB_lud_sol_init_ci< double > (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 *bufParamsScratchTrans, const DSPLIB_lud_solInitArgs *pKerInitArgs) |
| template<typename dataType > | |
| void | DSPLIB_lud_sol_permuteB_ci (unsigned short *pIn, dataType *B, dataType *B_Mod, int32_t order, int32_t colPStride, uint32_t *permuteOrder, uint8_t *pBlock) |
| template void | DSPLIB_lud_sol_permuteB_ci< float > (unsigned short *pIn, float *B, float *B_Mod, int32_t order, int32_t colPStride, uint32_t *permuteOrder, uint8_t *pBlock) |
| template void | DSPLIB_lud_sol_permuteB_ci< double > (unsigned short *pIn, double *B, double *B_Mod, int32_t order, int32_t colPStride, uint32_t *permuteOrder, uint8_t *pBlock) |
| template<typename dataType , typename V = typename c7x::make_full_vector<dataType>::type> | |
| void | getElement (V inVec, uint32_t index, dataType *element) |
| template<typename V > | |
| void | getElement (V inVec, uint32_t index, float *element) |
| template<typename V > | |
| void | getElement (V inVec, uint32_t index, double *element) |
| template<typename dataType > | |
| static void | DSPLIB_lud_sol_forwardSubstitution_ci (dataType *pL, dataType *pY, dataType *pB, dataType *pDiv, int32_t order, int32_t colLstride, uint8_t *pBlock) |
| template void | DSPLIB_lud_sol_forwardSubstitution_ci< float > (float *pL, float *pX, float *pY, float *pDiv, int32_t order, int32_t colLstride, uint8_t *pBlock) |
| template void | DSPLIB_lud_sol_forwardSubstitution_ci< double > (double *pL, double *pX, double *pY, double *pDiv, int32_t order, int32_t colLstride, uint8_t *pBlock) |
| template<typename dataType > | |
| static void | DSPLIB_lud_sol_backSubstitution_ci (dataType *pL, dataType *pX, dataType *pY, dataType *pDiv, int32_t order, int32_t colLstride, uint8_t *pBlock) |
| template void | DSPLIB_lud_sol_backSubstitution_ci< float > (float *pL, float *pX, float *pY, float *pDiv, int32_t order, int32_t colLstride, uint8_t *pBlock) |
| template void | DSPLIB_lud_sol_backSubstitution_ci< double > (double *pL, double *pX, double *pY, double *pDiv, int32_t order, int32_t colLstride, uint8_t *pBlock) |
| template<typename dataType > | |
| int | DSPLIB_lud_sol_ci (DSPLIB_lud_sol_PrivArgs *pKerPrivArgs, unsigned short *P, dataType *L, dataType *U, dataType *B, dataType *B_Mod, dataType *Y, dataType *X, dataType *pDiv, dataType *pScratchTrans) |
| template int | DSPLIB_lud_sol_ci< float > (DSPLIB_lud_sol_PrivArgs *pKerPrivArgs, unsigned short *P, float *L, float *U, float *B, float *B_Mod, float *Y, float *X, float *pDiv, float *pScratchTrans) |
| template int | DSPLIB_lud_sol_ci< double > (DSPLIB_lud_sol_PrivArgs *pKerPrivArgs, unsigned short *P, double *L, double *U, double *B, double *B_Mod, double *Y, double *X, double *pDiv, double *pScratchTrans) |
| 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... | |
| template DSPLIB_STATUS | DSPLIB_lud_sol_exec_ci< float > (DSPLIB_kernelHandle handle, void *restrict pP, void *restrict pL, void *restrict pU, void *restrict pB, void *restrict pX, void *restrict pVecScratch, void *restrict pScratchTrans) |
| template DSPLIB_STATUS | DSPLIB_lud_sol_exec_ci< double > (DSPLIB_kernelHandle handle, void *restrict pP, void *restrict pL, void *restrict pU, void *restrict pB, void *restrict pX, void *restrict pVecScratch, void *restrict pScratchTrans) |
| void DSPLIB_lud_sol_substitution_init_ci | ( | DSPLIB_kernelHandle | handle | ) |
Definition at line 55 of file DSPLIB_lud_sol_ci.cpp.
| template void DSPLIB_lud_sol_substitution_init_ci< float > | ( | DSPLIB_kernelHandle | handle | ) |
| template void DSPLIB_lud_sol_substitution_init_ci< double > | ( | DSPLIB_kernelHandle | handle | ) |
| void DSPLIB_lud_sol_permuteB_init_ci | ( | DSPLIB_kernelHandle | handle | ) |
Definition at line 131 of file DSPLIB_lud_sol_ci.cpp.
| template void DSPLIB_lud_sol_permuteB_init_ci< float > | ( | DSPLIB_kernelHandle | handle | ) |
| template void DSPLIB_lud_sol_permuteB_init_ci< double > | ( | DSPLIB_kernelHandle | handle | ) |
| 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.
| template DSPLIB_STATUS DSPLIB_lud_sol_init_ci< float > | ( | 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 * | bufParamsScratchTrans, | ||
| const DSPLIB_lud_solInitArgs * | pKerInitArgs | ||
| ) |
| template DSPLIB_STATUS DSPLIB_lud_sol_init_ci< double > | ( | 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 * | bufParamsScratchTrans, | ||
| const DSPLIB_lud_solInitArgs * | pKerInitArgs | ||
| ) |
| void DSPLIB_lud_sol_permuteB_ci | ( | unsigned short * | pIn, |
| dataType * | B, | ||
| dataType * | B_Mod, | ||
| int32_t | order, | ||
| int32_t | colPStride, | ||
| uint32_t * | permuteOrder, | ||
| uint8_t * | pBlock | ||
| ) |
Definition at line 219 of file DSPLIB_lud_sol_ci.cpp.
| template void DSPLIB_lud_sol_permuteB_ci< float > | ( | unsigned short * | pIn, |
| float * | B, | ||
| float * | B_Mod, | ||
| int32_t | order, | ||
| int32_t | colPStride, | ||
| uint32_t * | permuteOrder, | ||
| uint8_t * | pBlock | ||
| ) |
| template void DSPLIB_lud_sol_permuteB_ci< double > | ( | unsigned short * | pIn, |
| double * | B, | ||
| double * | B_Mod, | ||
| int32_t | order, | ||
| int32_t | colPStride, | ||
| uint32_t * | permuteOrder, | ||
| uint8_t * | pBlock | ||
| ) |
|
inline |
|
inline |
Definition at line 345 of file DSPLIB_lud_sol_ci.cpp.
|
inline |
Definition at line 350 of file DSPLIB_lud_sol_ci.cpp.
|
inlinestatic |
Definition at line 356 of file DSPLIB_lud_sol_ci.cpp.
| template void DSPLIB_lud_sol_forwardSubstitution_ci< float > | ( | float * | pL, |
| float * | pX, | ||
| float * | pY, | ||
| float * | pDiv, | ||
| int32_t | order, | ||
| int32_t | colLstride, | ||
| uint8_t * | pBlock | ||
| ) |
| template void DSPLIB_lud_sol_forwardSubstitution_ci< double > | ( | double * | pL, |
| double * | pX, | ||
| double * | pY, | ||
| double * | pDiv, | ||
| int32_t | order, | ||
| int32_t | colLstride, | ||
| uint8_t * | pBlock | ||
| ) |
|
inlinestatic |
Definition at line 571 of file DSPLIB_lud_sol_ci.cpp.
| template void DSPLIB_lud_sol_backSubstitution_ci< float > | ( | float * | pL, |
| float * | pX, | ||
| float * | pY, | ||
| float * | pDiv, | ||
| int32_t | order, | ||
| int32_t | colLstride, | ||
| uint8_t * | pBlock | ||
| ) |
| template void DSPLIB_lud_sol_backSubstitution_ci< double > | ( | double * | pL, |
| double * | pX, | ||
| double * | pY, | ||
| double * | pDiv, | ||
| int32_t | order, | ||
| int32_t | colLstride, | ||
| uint8_t * | pBlock | ||
| ) |
| int DSPLIB_lud_sol_ci | ( | DSPLIB_lud_sol_PrivArgs * | pKerPrivArgs, |
| unsigned short * | P, | ||
| dataType * | L, | ||
| dataType * | U, | ||
| dataType * | B, | ||
| dataType * | B_Mod, | ||
| dataType * | Y, | ||
| dataType * | X, | ||
| dataType * | pDiv, | ||
| dataType * | pScratchTrans | ||
| ) |
Definition at line 863 of file DSPLIB_lud_sol_ci.cpp.
| template int DSPLIB_lud_sol_ci< float > | ( | DSPLIB_lud_sol_PrivArgs * | pKerPrivArgs, |
| unsigned short * | P, | ||
| float * | L, | ||
| float * | U, | ||
| float * | B, | ||
| float * | B_Mod, | ||
| float * | Y, | ||
| float * | X, | ||
| float * | pDiv, | ||
| float * | pScratchTrans | ||
| ) |
| template int DSPLIB_lud_sol_ci< double > | ( | DSPLIB_lud_sol_PrivArgs * | pKerPrivArgs, |
| unsigned short * | P, | ||
| double * | L, | ||
| double * | U, | ||
| double * | B, | ||
| double * | B_Mod, | ||
| double * | Y, | ||
| double * | X, | ||
| double * | pDiv, | ||
| double * | pScratchTrans | ||
| ) |
| 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.
| template DSPLIB_STATUS DSPLIB_lud_sol_exec_ci< float > | ( | DSPLIB_kernelHandle | handle, |
| void *restrict | pP, | ||
| void *restrict | pL, | ||
| void *restrict | pU, | ||
| void *restrict | pB, | ||
| void *restrict | pX, | ||
| void *restrict | pVecScratch, | ||
| void *restrict | pScratchTrans | ||
| ) |
| template DSPLIB_STATUS DSPLIB_lud_sol_exec_ci< double > | ( | DSPLIB_kernelHandle | handle, |
| void *restrict | pP, | ||
| void *restrict | pL, | ||
| void *restrict | pU, | ||
| void *restrict | pB, | ||
| void *restrict | pX, | ||
| void *restrict | pVecScratch, | ||
| void *restrict | pScratchTrans | ||
| ) |