![]() |
DSPLIB User Guide
|
Go to the source code of this file.
Macros | |
| #define | LUD_HIGH_PRECISION |
Functions | |
| template<typename dataType > | |
| DSPLIB_STATUS | DSPLIB_lud_init_ci (DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsA, const DSPLIB_bufParams2D_t *bufParamsL, const DSPLIB_bufParams2D_t *bufParamsU, const DSPLIB_bufParams2D_t *bufParamsP, const DSPLIB_ludInitArgs *pKerInitArgs) |
| This function is the initialization function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_lud_init. More... | |
| template DSPLIB_STATUS | DSPLIB_lud_init_ci< float > (DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsA, const DSPLIB_bufParams2D_t *bufParamsL, const DSPLIB_bufParams2D_t *bufParamsU, const DSPLIB_bufParams2D_t *bufParamsP, const DSPLIB_ludInitArgs *pKerInitArgs) |
| template DSPLIB_STATUS | DSPLIB_lud_init_ci< double > (DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsA, const DSPLIB_bufParams2D_t *bufParamsL, const DSPLIB_bufParams2D_t *bufParamsU, const DSPLIB_bufParams2D_t *bufParamsP, const DSPLIB_ludInitArgs *pKerInitArgs) |
| template<typename dataType > | |
| __vpred | getPMask (uint32_t idx) |
| template<> | |
| __vpred | getPMask< float > (uint32_t idx) |
| template<> | |
| __vpred | getPMask< double > (uint32_t idx) |
| template<typename V , typename dataType > | |
| V | getIdxVec () |
| template<> | |
| c7x::float_vec | getIdxVec< c7x::float_vec, float > () |
| template<> | |
| c7x::double_vec | getIdxVec< c7x::double_vec, double > () |
| template<typename dataType , typename vec = typename c7x::make_full_vector<dataType>::type> | |
| static void | DSPLIB_lud_maxMinIndex_exec_ci (dataType *pCol, int32_t nRows, vec idx_0_to_eleCount, int32_t k, int32_t colStride, int32_t *max, int32_t *min, __SE_TEMPLATE_v1 se0Params) |
| template void | DSPLIB_lud_maxMinIndex_exec_ci< float > (float *pCol, int32_t nRows, typename c7x::make_full_vector< float >::type idx_0_to_eleCount, int32_t k, int32_t colStride, int32_t *max, int32_t *min, __SE_TEMPLATE_v1 se0Params) |
| template void | DSPLIB_lud_maxMinIndex_exec_ci< double > (double *pCol, int32_t nRows, typename c7x::make_full_vector< double >::type idx_0_to_eleCount, int32_t k, int32_t colStride, int32_t *max, int32_t *min, __SE_TEMPLATE_v1 se0Params) |
| template<typename dataType > | |
| static void | DSPLIB_lud_array_swap_exec_ci (dataType *pArray1, dataType *pArray2, int32_t nCols, __SA_TEMPLATE_v1 sa1Params, __SE_TEMPLATE_v1 se1Params) |
| template void | DSPLIB_lud_array_swap_exec_ci< float > (float *pArray1, float *pArray2, int32_t nCols, __SA_TEMPLATE_v1 sa1Params, __SE_TEMPLATE_v1 se1Params) |
| template void | DSPLIB_lud_array_swap_exec_ci< double > (double *pArray1, double *pArray2, int32_t nCols, __SA_TEMPLATE_v1 sa1Params, __SE_TEMPLATE_v1 se1Params) |
| template void | DSPLIB_lud_array_swap_exec_ci< unsigned short > (unsigned short *pArray1, unsigned short *pArray2, int32_t nCols, __SA_TEMPLATE_v1 sa1Params, __SE_TEMPLATE_v1 se1Params) |
| template<typename dataType > | |
| static void | DSPLIB_lud_U_colDiv_exec_ci (dataType *pCol, int32_t nRows, int32_t colStride, __SA_TEMPLATE_v1 saColParams, __SE_TEMPLATE_v1 se0ColParams, __SE_TEMPLATE_v1 se1ColParams) |
| template void | DSPLIB_lud_U_colDiv_exec_ci< float > (float *pCol, int32_t nRows, int32_t colStride, __SA_TEMPLATE_v1 saColParams, __SE_TEMPLATE_v1 se0ColParams, __SE_TEMPLATE_v1 se1ColParams) |
| template void | DSPLIB_lud_U_colDiv_exec_ci< double > (double *pCol, int32_t nRows, int32_t colStride, __SA_TEMPLATE_v1 saColParams, __SE_TEMPLATE_v1 se0ColParams, __SE_TEMPLATE_v1 se1ColParams) |
| template<typename dataType > | |
| static void | DSPLIB_lud_U_generate_exec_ci (dataType *pLocalU, int32_t order, int32_t colStrideU, uint8_t *pBlock) |
| template void | DSPLIB_lud_U_generate_exec_ci< float > (float *pLocalU, int32_t order, int32_t colStrideU, uint8_t *pBlock) |
| template void | DSPLIB_lud_U_generate_exec_ci< double > (double *pLocalU, int32_t order, int32_t colStrideU, uint8_t *pBlock) |
| template<typename dataType > | |
| void | DSPLIB_lud_extract_exec_ci (dataType *pU, dataType *pL, int32_t order, int32_t colStride, uint8_t *pBlock) |
| template void | DSPLIB_lud_extract_exec_ci< float > (float *pU, float *pL, int32_t order, int32_t colStride, uint8_t *pBlock) |
| template void | DSPLIB_lud_extract_exec_ci< double > (double *pU, double *pL, int32_t order, int32_t colStride, uint8_t *pBlock) |
| template<typename dataType > | |
| DSPLIB_STATUS | DSPLIB_lud_exec_ci (DSPLIB_kernelHandle handle, void *restrict pA, void *restrict pL, void *restrict pU, void *restrict pP) |
| This function is the main execution function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_lud_exec. More... | |
| template DSPLIB_STATUS | DSPLIB_lud_exec_ci< float > (DSPLIB_kernelHandle handle, void *restrict pA, void *restrict pL, void *restrict pU, void *restrict pP) |
| template DSPLIB_STATUS | DSPLIB_lud_exec_ci< double > (DSPLIB_kernelHandle handle, void *restrict pA, void *restrict pL, void *restrict pU, void *restrict pP) |
Variables | |
| float16 | idx_float = float16(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) |
| double8 | idx_double = double8(0, 1, 2, 3, 4, 5, 6, 7) |
| #define LUD_HIGH_PRECISION |
Definition at line 51 of file DSPLIB_lud_ci.cpp.
| DSPLIB_STATUS DSPLIB_lud_init_ci | ( | DSPLIB_kernelHandle | handle, |
| const DSPLIB_bufParams2D_t * | bufParamsA, | ||
| const DSPLIB_bufParams2D_t * | bufParamsL, | ||
| const DSPLIB_bufParams2D_t * | bufParamsU, | ||
| const DSPLIB_bufParams2D_t * | bufParamsP, | ||
| const DSPLIB_ludInitArgs * | pKerInitArgs | ||
| ) |
This function is the initialization function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_lud_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_exec_ci would be called later independently by the application. When DSPLIB_lud_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_exec_ci does not lose cycles to determine the hardware configuration.
| [in] | handle | : Active handle to the kernel |
| [in] | bufParamsA | : Pointer to the structure containing dimensional information of input buffer A |
| [out] | bufParamsL | : Pointer to the structure containing dimensional information of output buffer L |
| [out] | bufParamsU | : Pointer to the structure containing dimensional information of output buffer U |
| [out] | bufParamsP | : Pointer to the structure containing dimensional information of output buffer P |
| [in] | pKerInitArgs | : Pointer to the structure holding init parameters |
Definition at line 59 of file DSPLIB_lud_ci.cpp.
| template DSPLIB_STATUS DSPLIB_lud_init_ci< float > | ( | DSPLIB_kernelHandle | handle, |
| const DSPLIB_bufParams2D_t * | bufParamsA, | ||
| const DSPLIB_bufParams2D_t * | bufParamsL, | ||
| const DSPLIB_bufParams2D_t * | bufParamsU, | ||
| const DSPLIB_bufParams2D_t * | bufParamsP, | ||
| const DSPLIB_ludInitArgs * | pKerInitArgs | ||
| ) |
| template DSPLIB_STATUS DSPLIB_lud_init_ci< double > | ( | DSPLIB_kernelHandle | handle, |
| const DSPLIB_bufParams2D_t * | bufParamsA, | ||
| const DSPLIB_bufParams2D_t * | bufParamsL, | ||
| const DSPLIB_bufParams2D_t * | bufParamsU, | ||
| const DSPLIB_bufParams2D_t * | bufParamsP, | ||
| const DSPLIB_ludInitArgs * | pKerInitArgs | ||
| ) |
|
inline |
|
inline |
Definition at line 324 of file DSPLIB_lud_ci.cpp.
|
inline |
Definition at line 326 of file DSPLIB_lud_ci.cpp.
|
inline |
|
inline |
Definition at line 333 of file DSPLIB_lud_ci.cpp.
|
inline |
Definition at line 335 of file DSPLIB_lud_ci.cpp.
|
inlinestatic |
Definition at line 338 of file DSPLIB_lud_ci.cpp.
| template void DSPLIB_lud_maxMinIndex_exec_ci< float > | ( | float * | pCol, |
| int32_t | nRows, | ||
| typename c7x::make_full_vector< float >::type | idx_0_to_eleCount, | ||
| int32_t | k, | ||
| int32_t | colStride, | ||
| int32_t * | max, | ||
| int32_t * | min, | ||
| __SE_TEMPLATE_v1 | se0Params | ||
| ) |
| template void DSPLIB_lud_maxMinIndex_exec_ci< double > | ( | double * | pCol, |
| int32_t | nRows, | ||
| typename c7x::make_full_vector< double >::type | idx_0_to_eleCount, | ||
| int32_t | k, | ||
| int32_t | colStride, | ||
| int32_t * | max, | ||
| int32_t * | min, | ||
| __SE_TEMPLATE_v1 | se0Params | ||
| ) |
|
inlinestatic |
Definition at line 436 of file DSPLIB_lud_ci.cpp.
| template void DSPLIB_lud_array_swap_exec_ci< float > | ( | float * | pArray1, |
| float * | pArray2, | ||
| int32_t | nCols, | ||
| __SA_TEMPLATE_v1 | sa1Params, | ||
| __SE_TEMPLATE_v1 | se1Params | ||
| ) |
| template void DSPLIB_lud_array_swap_exec_ci< double > | ( | double * | pArray1, |
| double * | pArray2, | ||
| int32_t | nCols, | ||
| __SA_TEMPLATE_v1 | sa1Params, | ||
| __SE_TEMPLATE_v1 | se1Params | ||
| ) |
| template void DSPLIB_lud_array_swap_exec_ci< unsigned short > | ( | unsigned short * | pArray1, |
| unsigned short * | pArray2, | ||
| int32_t | nCols, | ||
| __SA_TEMPLATE_v1 | sa1Params, | ||
| __SE_TEMPLATE_v1 | se1Params | ||
| ) |
|
inlinestatic |
Definition at line 489 of file DSPLIB_lud_ci.cpp.
| template void DSPLIB_lud_U_colDiv_exec_ci< float > | ( | float * | pCol, |
| int32_t | nRows, | ||
| int32_t | colStride, | ||
| __SA_TEMPLATE_v1 | saColParams, | ||
| __SE_TEMPLATE_v1 | se0ColParams, | ||
| __SE_TEMPLATE_v1 | se1ColParams | ||
| ) |
| template void DSPLIB_lud_U_colDiv_exec_ci< double > | ( | double * | pCol, |
| int32_t | nRows, | ||
| int32_t | colStride, | ||
| __SA_TEMPLATE_v1 | saColParams, | ||
| __SE_TEMPLATE_v1 | se0ColParams, | ||
| __SE_TEMPLATE_v1 | se1ColParams | ||
| ) |
|
inlinestatic |
Definition at line 573 of file DSPLIB_lud_ci.cpp.
| template void DSPLIB_lud_U_generate_exec_ci< float > | ( | float * | pLocalU, |
| int32_t | order, | ||
| int32_t | colStrideU, | ||
| uint8_t * | pBlock | ||
| ) |
| template void DSPLIB_lud_U_generate_exec_ci< double > | ( | double * | pLocalU, |
| int32_t | order, | ||
| int32_t | colStrideU, | ||
| uint8_t * | pBlock | ||
| ) |
| void DSPLIB_lud_extract_exec_ci | ( | dataType * | pU, |
| dataType * | pL, | ||
| int32_t | order, | ||
| int32_t | colStride, | ||
| uint8_t * | pBlock | ||
| ) |
Definition at line 892 of file DSPLIB_lud_ci.cpp.
| template void DSPLIB_lud_extract_exec_ci< float > | ( | float * | pU, |
| float * | pL, | ||
| int32_t | order, | ||
| int32_t | colStride, | ||
| uint8_t * | pBlock | ||
| ) |
| template void DSPLIB_lud_extract_exec_ci< double > | ( | double * | pU, |
| double * | pL, | ||
| int32_t | order, | ||
| int32_t | colStride, | ||
| uint8_t * | pBlock | ||
| ) |
| DSPLIB_STATUS DSPLIB_lud_exec_ci | ( | DSPLIB_kernelHandle | handle, |
| void *restrict | pA, | ||
| void *restrict | pL, | ||
| void *restrict | pU, | ||
| void *restrict | pP | ||
| ) |
This function is the main execution function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_lud_exec.
The function uses streaming engine to load data. The result is then stored at separate location using a streaming address generator.
| [in] | handle | : Active handle to the kernel |
| [in] | pA | : Pointer to matrix A |
| [out] | pL | : Pointer to lower triangular matrix L |
| [out] | pU | : Pointer to upper triangular matrix U |
| [out] | pP | : Pointer to permutation matrix P |
Definition at line 976 of file DSPLIB_lud_ci.cpp.
| template DSPLIB_STATUS DSPLIB_lud_exec_ci< float > | ( | DSPLIB_kernelHandle | handle, |
| void *restrict | pA, | ||
| void *restrict | pL, | ||
| void *restrict | pU, | ||
| void *restrict | pP | ||
| ) |
| template DSPLIB_STATUS DSPLIB_lud_exec_ci< double > | ( | DSPLIB_kernelHandle | handle, |
| void *restrict | pA, | ||
| void *restrict | pL, | ||
| void *restrict | pU, | ||
| void *restrict | pP | ||
| ) |
| float16 idx_float = float16(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) |
Definition at line 328 of file DSPLIB_lud_ci.cpp.
| double8 idx_double = double8(0, 1, 2, 3, 4, 5, 6, 7) |
Definition at line 329 of file DSPLIB_lud_ci.cpp.