![]() |
DSPLIB User Guide
|
Go to the source code of this file.
Macros | |
| #define | LUD_INV_HIGH_PRECISION |
Functions | |
| template<typename dataType > | |
| void | DSPLIB_lud_inv_permuteRows_init_ci (DSPLIB_kernelHandle handle) |
| template void | DSPLIB_lud_inv_permuteRows_init_ci< float > (DSPLIB_kernelHandle handle) |
| template void | DSPLIB_lud_inv_permuteRows_init_ci< double > (DSPLIB_kernelHandle handle) |
| template<typename dataType > | |
| void | DSPLIB_lud_inv_opt_init_ci (DSPLIB_kernelHandle handle) |
| template void | DSPLIB_lud_inv_opt_init_ci< float > (DSPLIB_kernelHandle handle) |
| template void | DSPLIB_lud_inv_opt_init_ci< double > (DSPLIB_kernelHandle handle) |
| template<typename dataType > | |
| DSPLIB_STATUS | DSPLIB_lud_inv_init_ci (DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsP, const DSPLIB_bufParams2D_t *bufParamsL, const DSPLIB_bufParams2D_t *bufParamsU, const DSPLIB_bufParams2D_t *bufParamsinvA, const DSPLIB_lud_invInitArgs *pKerInitArgs) |
| This function is the initialization function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_lud_inv_init. More... | |
| template DSPLIB_STATUS | DSPLIB_lud_inv_init_ci< float > (DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsP, const DSPLIB_bufParams2D_t *bufParamsL, const DSPLIB_bufParams2D_t *bufParamsU, const DSPLIB_bufParams2D_t *bufParamsinvA, const DSPLIB_lud_invInitArgs *pKerInitArgs) |
| template DSPLIB_STATUS | DSPLIB_lud_inv_init_ci< double > (DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsP, const DSPLIB_bufParams2D_t *bufParamsL, const DSPLIB_bufParams2D_t *bufParamsU, const DSPLIB_bufParams2D_t *bufParamsinvA, const DSPLIB_lud_invInitArgs *pKerInitArgs) |
| template<typename dataType > | |
| void | DSPLIB_lud_inv_permuteRows_ci (dataType *pIn, int32_t order, int32_t colStride, uint32_t *permuteOrder, dataType *pOut, uint8_t *pBlock) |
| template void | DSPLIB_lud_inv_permuteRows_ci< float > (float *pIn, int32_t order, int32_t colStride, uint32_t *permuteOrder, float *pOut, uint8_t *pBlock) |
| template void | DSPLIB_lud_inv_permuteRows_ci< double > (double *pIn, int32_t order, int32_t colStride, uint32_t *permuteOrder, double *pOut, uint8_t *pBlock) |
| void | DSPLIB_lud_inv_permuteIndex_ci (unsigned short *pIn, int32_t order, int32_t colPStride, uint32_t *permuteOrder, uint8_t *pBlock) |
| template<typename dataType , typename vec = typename c7x::make_full_vector<dataType>::type> | |
| static dataType | DSPLIB_lud_inv_factor_exec_ci (dataType *pCol, int32_t colStride, int32_t nRows, dataType *pFactor, vec scaleVec, uint8_t *pBlock, __SE_TEMPLATE_v1 se0Params, __SE_TEMPLATE_v1 se1Params, __SA_TEMPLATE_v1 sa0Params, __SA_TEMPLATE_v1 sa1Params) |
| template<typename dataType > | |
| void | DSPLIB_lud_inv_invU_exec_ci (dataType *pLocalU, dataType *pLocalInvU, int32_t nCols, int32_t colStrideOrder, int32_t colInvAStride, dataType *factArray, uint8_t *pBlock) |
| template void | DSPLIB_lud_inv_invU_exec_ci< float > (float *pLocalU, float *pLocalInvU, int32_t nCols, int32_t colStrideOrder, int32_t colInvAStride, float *factArray, uint8_t *pBlock) |
| template void | DSPLIB_lud_inv_invU_exec_ci< double > (double *pLocalU, double *pLocalInvU, int32_t nCols, int32_t colStrideOrder, int32_t colInvAStride, double *factArray, uint8_t *pBlock) |
| template<typename dataType > | |
| void | DSPLIB_lud_inv_invL_exec_ci (dataType *pLocalL, dataType *pLocalInvL, int32_t nCols, int32_t colStrideOrder, int32_t colInvLStride, dataType *factArray, uint8_t *pBlock) |
| template void | DSPLIB_lud_inv_invL_exec_ci< float > (float *pLocalL, float *pLocalInvL, int32_t nCols, int32_t colStrideOrder, int32_t colInvLStride, float *factArray, uint8_t *pBlock) |
| template void | DSPLIB_lud_inv_invL_exec_ci< double > (double *pLocalL, double *pLocalInvL, int32_t nCols, int32_t colStrideOrder, int32_t colInvLStride, double *factArray, uint8_t *pBlock) |
| template<typename dataType > | |
| DSPLIB_STATUS | DSPLIB_lud_inv_exec_ci (DSPLIB_kernelHandle handle, void *restrict pP, void *restrict pL, void *restrict pU, void *restrict pinvA, void *restrict pStratch) |
| This function is the main execution function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_lud_inv_exec. More... | |
| template DSPLIB_STATUS | DSPLIB_lud_inv_exec_ci< float > (DSPLIB_kernelHandle handle, void *restrict pP, void *restrict pL, void *restrict pU, void *restrict pinvA, void *restrict pStratch) |
| template DSPLIB_STATUS | DSPLIB_lud_inv_exec_ci< double > (DSPLIB_kernelHandle handle, void *restrict pP, void *restrict pL, void *restrict pU, void *restrict pinvA, void *restrict pStratch) |
| #define LUD_INV_HIGH_PRECISION |
Definition at line 49 of file DSPLIB_lud_inv_ci.cpp.
| void DSPLIB_lud_inv_permuteRows_init_ci | ( | DSPLIB_kernelHandle | handle | ) |
Definition at line 56 of file DSPLIB_lud_inv_ci.cpp.
| template void DSPLIB_lud_inv_permuteRows_init_ci< float > | ( | DSPLIB_kernelHandle | handle | ) |
| template void DSPLIB_lud_inv_permuteRows_init_ci< double > | ( | DSPLIB_kernelHandle | handle | ) |
| void DSPLIB_lud_inv_opt_init_ci | ( | DSPLIB_kernelHandle | handle | ) |
Definition at line 114 of file DSPLIB_lud_inv_ci.cpp.
| template void DSPLIB_lud_inv_opt_init_ci< float > | ( | DSPLIB_kernelHandle | handle | ) |
| template void DSPLIB_lud_inv_opt_init_ci< double > | ( | DSPLIB_kernelHandle | handle | ) |
| DSPLIB_STATUS DSPLIB_lud_inv_init_ci | ( | DSPLIB_kernelHandle | handle, |
| const DSPLIB_bufParams2D_t * | bufParamsP, | ||
| const DSPLIB_bufParams2D_t * | bufParamsL, | ||
| const DSPLIB_bufParams2D_t * | bufParamsU, | ||
| const DSPLIB_bufParams2D_t * | bufParamsinvA, | ||
| const DSPLIB_lud_invInitArgs * | pKerInitArgs | ||
| ) |
This function is the initialization function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_lud_inv_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_inv_exec_ci would be called later independently by the application. When DSPLIB_lud_inv_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_inv_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 |
| [out] | bufParamsinvA | : Pointer to the structure containing dimensional information of ouput buffer invA |
| [in] | pKerInitArgs | : Pointer to the structure holding init parameters |
Definition at line 204 of file DSPLIB_lud_inv_ci.cpp.
| template DSPLIB_STATUS DSPLIB_lud_inv_init_ci< float > | ( | DSPLIB_kernelHandle | handle, |
| const DSPLIB_bufParams2D_t * | bufParamsP, | ||
| const DSPLIB_bufParams2D_t * | bufParamsL, | ||
| const DSPLIB_bufParams2D_t * | bufParamsU, | ||
| const DSPLIB_bufParams2D_t * | bufParamsinvA, | ||
| const DSPLIB_lud_invInitArgs * | pKerInitArgs | ||
| ) |
| template DSPLIB_STATUS DSPLIB_lud_inv_init_ci< double > | ( | DSPLIB_kernelHandle | handle, |
| const DSPLIB_bufParams2D_t * | bufParamsP, | ||
| const DSPLIB_bufParams2D_t * | bufParamsL, | ||
| const DSPLIB_bufParams2D_t * | bufParamsU, | ||
| const DSPLIB_bufParams2D_t * | bufParamsinvA, | ||
| const DSPLIB_lud_invInitArgs * | pKerInitArgs | ||
| ) |
| void DSPLIB_lud_inv_permuteRows_ci | ( | dataType * | pIn, |
| int32_t | order, | ||
| int32_t | colStride, | ||
| uint32_t * | permuteOrder, | ||
| dataType * | pOut, | ||
| uint8_t * | pBlock | ||
| ) |
Definition at line 271 of file DSPLIB_lud_inv_ci.cpp.
| template void DSPLIB_lud_inv_permuteRows_ci< float > | ( | float * | pIn, |
| int32_t | order, | ||
| int32_t | colStride, | ||
| uint32_t * | permuteOrder, | ||
| float * | pOut, | ||
| uint8_t * | pBlock | ||
| ) |
| template void DSPLIB_lud_inv_permuteRows_ci< double > | ( | double * | pIn, |
| int32_t | order, | ||
| int32_t | colStride, | ||
| uint32_t * | permuteOrder, | ||
| double * | pOut, | ||
| uint8_t * | pBlock | ||
| ) |
| void DSPLIB_lud_inv_permuteIndex_ci | ( | unsigned short * | pIn, |
| int32_t | order, | ||
| int32_t | colPStride, | ||
| uint32_t * | permuteOrder, | ||
| uint8_t * | pBlock | ||
| ) |
Definition at line 355 of file DSPLIB_lud_inv_ci.cpp.
|
inlinestatic |
Definition at line 461 of file DSPLIB_lud_inv_ci.cpp.
| void DSPLIB_lud_inv_invU_exec_ci | ( | dataType * | pLocalU, |
| dataType * | pLocalInvU, | ||
| int32_t | nCols, | ||
| int32_t | colStrideOrder, | ||
| int32_t | colInvAStride, | ||
| dataType * | factArray, | ||
| uint8_t * | pBlock | ||
| ) |
Definition at line 590 of file DSPLIB_lud_inv_ci.cpp.
| template void DSPLIB_lud_inv_invU_exec_ci< float > | ( | float * | pLocalU, |
| float * | pLocalInvU, | ||
| int32_t | nCols, | ||
| int32_t | colStrideOrder, | ||
| int32_t | colInvAStride, | ||
| float * | factArray, | ||
| uint8_t * | pBlock | ||
| ) |
| template void DSPLIB_lud_inv_invU_exec_ci< double > | ( | double * | pLocalU, |
| double * | pLocalInvU, | ||
| int32_t | nCols, | ||
| int32_t | colStrideOrder, | ||
| int32_t | colInvAStride, | ||
| double * | factArray, | ||
| uint8_t * | pBlock | ||
| ) |
| void DSPLIB_lud_inv_invL_exec_ci | ( | dataType * | pLocalL, |
| dataType * | pLocalInvL, | ||
| int32_t | nCols, | ||
| int32_t | colStrideOrder, | ||
| int32_t | colInvLStride, | ||
| dataType * | factArray, | ||
| uint8_t * | pBlock | ||
| ) |
Definition at line 1391 of file DSPLIB_lud_inv_ci.cpp.
| template void DSPLIB_lud_inv_invL_exec_ci< float > | ( | float * | pLocalL, |
| float * | pLocalInvL, | ||
| int32_t | nCols, | ||
| int32_t | colStrideOrder, | ||
| int32_t | colInvLStride, | ||
| float * | factArray, | ||
| uint8_t * | pBlock | ||
| ) |
| template void DSPLIB_lud_inv_invL_exec_ci< double > | ( | double * | pLocalL, |
| double * | pLocalInvL, | ||
| int32_t | nCols, | ||
| int32_t | colStrideOrder, | ||
| int32_t | colInvLStride, | ||
| double * | factArray, | ||
| uint8_t * | pBlock | ||
| ) |
| DSPLIB_STATUS DSPLIB_lud_inv_exec_ci | ( | DSPLIB_kernelHandle | handle, |
| void *restrict | pP, | ||
| void *restrict | pL, | ||
| void *restrict | pU, | ||
| void *restrict | pinvA, | ||
| void *restrict | pScratch | ||
| ) |
This function is the main execution function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_lud_inv_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 |
| [out] | pinvA | : Pointer to inverse of A matrix |
| [in] | pScratch | : Pointer to scratch buffer |
Definition at line 2030 of file DSPLIB_lud_inv_ci.cpp.
| template DSPLIB_STATUS DSPLIB_lud_inv_exec_ci< float > | ( | DSPLIB_kernelHandle | handle, |
| void *restrict | pP, | ||
| void *restrict | pL, | ||
| void *restrict | pU, | ||
| void *restrict | pinvA, | ||
| void *restrict | pStratch | ||
| ) |
| template DSPLIB_STATUS DSPLIB_lud_inv_exec_ci< double > | ( | DSPLIB_kernelHandle | handle, |
| void *restrict | pP, | ||
| void *restrict | pL, | ||
| void *restrict | pU, | ||
| void *restrict | pinvA, | ||
| void *restrict | pStratch | ||
| ) |