DSPLIB User Guide
DSPLIB_qrd_ci.cpp File Reference

Go to the source code of this file.

Functions

template<typename dataType >
void DSPLIB_qrd_alpha_init_ci (DSPLIB_kernelHandle handle)
 
template void DSPLIB_qrd_alpha_init_ci< float > (DSPLIB_kernelHandle handle)
 
template void DSPLIB_qrd_alpha_init_ci< double > (DSPLIB_kernelHandle handle)
 
template<typename dataType >
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. The function declaration conforms to the declaration of DSPLIB_qrd_init. More...
 
template DSPLIB_STATUS DSPLIB_qrd_init_ci< float > (DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsA, DSPLIB_bufParams2D_t *bufParamsQ, DSPLIB_bufParams2D_t *bufParamsR, DSPLIB_bufParams1D_t *bufParamsU, const DSPLIB_qrdInitArgs *pKerInitArgs)
 
template DSPLIB_STATUS DSPLIB_qrd_init_ci< double > (DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsA, DSPLIB_bufParams2D_t *bufParamsQ, DSPLIB_bufParams2D_t *bufParamsR, DSPLIB_bufParams1D_t *bufParamsU, const DSPLIB_qrdInitArgs *pKerInitArgs)
 
template<typename vec >
static vec getSqrt (vec a)
 
template<typename dataType >
static dataType DSPLIB_qrd_alpha_exec_ci (dataType *pR, int32_t colStrideR, int32_t nRows, dataType *pU, __SE_TEMPLATE_v1 se0Params, __SA_TEMPLATE_v1 sa0Params)
 
template float DSPLIB_qrd_alpha_exec_ci< float > (float *pR, int32_t colStrideR, int32_t nRows, float *pU, __SE_TEMPLATE_v1 se0Params, __SA_TEMPLATE_v1 sa0Params)
 
template double DSPLIB_qrd_alpha_exec_ci< double > (double *pR, int32_t colStrideR, int32_t nRows, double *pU, __SE_TEMPLATE_v1 se0Params, __SA_TEMPLATE_v1 sa0Params)
 
template<typename dataType >
static void DSPLIB_qrd_R_column_exec_ci (dataType *pR, int32_t colStrideR, int32_t nRows, __SA_TEMPLATE_v1 sa0Params)
 
template void DSPLIB_qrd_R_column_exec_ci< float > (float *pR, int32_t colStrideR, int32_t nRows, __SA_TEMPLATE_v1 sa0Params)
 
template void DSPLIB_qrd_R_column_exec_ci< double > (double *pR, int32_t colStrideR, int32_t nRows, __SA_TEMPLATE_v1 sa0Params)
 
template<typename dataType >
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. The function declaration conforms to the declaration of DSPLIB_qrd_exec. More...
 
template DSPLIB_STATUS DSPLIB_qrd_exec_ci< float > (DSPLIB_kernelHandle handle, const void *restrict pA, const void *restrict pQ, const void *restrict pR, const void *restrict pU, const void *restrict pScratch)
 
template DSPLIB_STATUS DSPLIB_qrd_exec_ci< double > (DSPLIB_kernelHandle handle, const void *restrict pA, const void *restrict pQ, const void *restrict pR, const void *restrict pU, const void *restrict pScratch)
 

Function Documentation

◆ DSPLIB_qrd_alpha_init_ci()

template<typename dataType >
void DSPLIB_qrd_alpha_init_ci ( DSPLIB_kernelHandle  handle)

Definition at line 43 of file DSPLIB_qrd_ci.cpp.

◆ DSPLIB_qrd_alpha_init_ci< float >()

template void DSPLIB_qrd_alpha_init_ci< float > ( DSPLIB_kernelHandle  handle)

◆ DSPLIB_qrd_alpha_init_ci< double >()

template void DSPLIB_qrd_alpha_init_ci< double > ( DSPLIB_kernelHandle  handle)

◆ DSPLIB_qrd_init_ci()

template<typename dataType >
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. The function declaration conforms to the declaration of DSPLIB_qrd_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_qrd_exec_ci would be called later independently by the application. When DSPLIB_qrd_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_qrd_exec_ci does not lose cycles to determine the hardware configuration.

Parameters
[in]handle: Active handle to the kernel
[in]bufParamsA: Pointer to the structure containing dimensional information of input matrix
[out]bufParamsQ: Pointer to the structure containing dimensional information of Q matrix
[out]bufParamsR: Pointer to the structure containing dimensional information of R matrix
[in]bufParamsU: Pointer to the structure containing dimensional information of temporary vector U.
[in]pKerInitArgs: Pointer to the structure holding init parameters
Returns
Status value indicating success or failure. Refer to DSPLIB_STATUS.

Definition at line 86 of file DSPLIB_qrd_ci.cpp.

◆ DSPLIB_qrd_init_ci< float >()

template DSPLIB_STATUS DSPLIB_qrd_init_ci< float > ( DSPLIB_kernelHandle  handle,
DSPLIB_bufParams2D_t bufParamsA,
DSPLIB_bufParams2D_t bufParamsQ,
DSPLIB_bufParams2D_t bufParamsR,
DSPLIB_bufParams1D_t bufParamsU,
const DSPLIB_qrdInitArgs pKerInitArgs 
)

◆ DSPLIB_qrd_init_ci< double >()

template DSPLIB_STATUS DSPLIB_qrd_init_ci< double > ( DSPLIB_kernelHandle  handle,
DSPLIB_bufParams2D_t bufParamsA,
DSPLIB_bufParams2D_t bufParamsQ,
DSPLIB_bufParams2D_t bufParamsR,
DSPLIB_bufParams1D_t bufParamsU,
const DSPLIB_qrdInitArgs pKerInitArgs 
)

◆ getSqrt()

template<typename vec >
static vec getSqrt ( vec  a)
inlinestatic

Definition at line 127 of file DSPLIB_qrd_ci.cpp.

◆ DSPLIB_qrd_alpha_exec_ci()

template<typename dataType >
static dataType DSPLIB_qrd_alpha_exec_ci ( dataType *  pR,
int32_t  colStrideR,
int32_t  nRows,
dataType *  pU,
__SE_TEMPLATE_v1  se0Params,
__SA_TEMPLATE_v1  sa0Params 
)
inlinestatic

Definition at line 151 of file DSPLIB_qrd_ci.cpp.

◆ DSPLIB_qrd_alpha_exec_ci< float >()

template float DSPLIB_qrd_alpha_exec_ci< float > ( float *  pR,
int32_t  colStrideR,
int32_t  nRows,
float *  pU,
__SE_TEMPLATE_v1  se0Params,
__SA_TEMPLATE_v1  sa0Params 
)

◆ DSPLIB_qrd_alpha_exec_ci< double >()

template double DSPLIB_qrd_alpha_exec_ci< double > ( double *  pR,
int32_t  colStrideR,
int32_t  nRows,
double *  pU,
__SE_TEMPLATE_v1  se0Params,
__SA_TEMPLATE_v1  sa0Params 
)

◆ DSPLIB_qrd_R_column_exec_ci()

template<typename dataType >
static void DSPLIB_qrd_R_column_exec_ci ( dataType *  pR,
int32_t  colStrideR,
int32_t  nRows,
__SA_TEMPLATE_v1  sa0Params 
)
inlinestatic

Definition at line 335 of file DSPLIB_qrd_ci.cpp.

◆ DSPLIB_qrd_R_column_exec_ci< float >()

template void DSPLIB_qrd_R_column_exec_ci< float > ( float *  pR,
int32_t  colStrideR,
int32_t  nRows,
__SA_TEMPLATE_v1  sa0Params 
)

◆ DSPLIB_qrd_R_column_exec_ci< double >()

template void DSPLIB_qrd_R_column_exec_ci< double > ( double *  pR,
int32_t  colStrideR,
int32_t  nRows,
__SA_TEMPLATE_v1  sa0Params 
)

◆ DSPLIB_qrd_exec_ci()

template<typename dataType >
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. The function declaration conforms to the declaration of DSPLIB_qrd_exec.

The function permforms the optimized QR decomposition.

Parameters
[in]handle: Active handle to the kernel
[in]pA: Pointer to the input matrix
[out]pQ: Pointer to the output matrix Q
[out]pR: Pointer to the output matrix R
[in]pU: Pointer to the temporary vector
[in]pScratchPointer to the Scratch buffer
Returns
Status value indicating success or failure. Refer to DSPLIB_STATUS.
Performance Considerations:
For best performance,
  • the input and output data buffers are expected to be in L2 memory
  • the buffer pointers are assumed to be 64-byte aligned

Definition at line 370 of file DSPLIB_qrd_ci.cpp.

◆ DSPLIB_qrd_exec_ci< float >()

template DSPLIB_STATUS DSPLIB_qrd_exec_ci< float > ( DSPLIB_kernelHandle  handle,
const void *restrict  pA,
const void *restrict  pQ,
const void *restrict  pR,
const void *restrict  pU,
const void *restrict  pScratch 
)

◆ DSPLIB_qrd_exec_ci< double >()

template DSPLIB_STATUS DSPLIB_qrd_exec_ci< double > ( DSPLIB_kernelHandle  handle,
const void *restrict  pA,
const void *restrict  pQ,
const void *restrict  pR,
const void *restrict  pU,
const void *restrict  pScratch 
)