DSPLIB User Guide
DSPLIB_cholesky_solver_ci.cpp File Reference

Go to the source code of this file.

Functions

template<typename dataType >
void DSPLIB_cholesky_solver_backSubstitution_init_ci (DSPLIB_kernelHandle handle)
 
template void DSPLIB_cholesky_solver_backSubstitution_init_ci< float > (DSPLIB_kernelHandle handle)
 
template void DSPLIB_cholesky_solver_backSubstitution_init_ci< double > (DSPLIB_kernelHandle handle)
 
template<typename dataType >
DSPLIB_STATUS DSPLIB_cholesky_solver_init_ci (DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsU, DSPLIB_bufParams2D_t *bufParamsScratch, DSPLIB_bufParams1D_t *bufParamsY, DSPLIB_bufParams1D_t *bufParamsB, DSPLIB_bufParams1D_t *bufParamsX, DSPLIB_bufParams1D_t *bufParamsDiv, const DSPLIB_cholesky_solver_InitArgs *pKerInitArgs)
 This function is the initialization function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_cholesky_solver_init. More...
 
template DSPLIB_STATUS DSPLIB_cholesky_solver_init_ci< float > (DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsU, DSPLIB_bufParams2D_t *bufParamsScratch, DSPLIB_bufParams1D_t *bufParamsY, DSPLIB_bufParams1D_t *bufParamsB, DSPLIB_bufParams1D_t *bufParamsX, DSPLIB_bufParams1D_t *bufParamsDiv, const DSPLIB_cholesky_solver_InitArgs *pKerInitArgs)
 
template DSPLIB_STATUS DSPLIB_cholesky_solver_init_ci< double > (DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsU, DSPLIB_bufParams2D_t *bufParamsScratch, DSPLIB_bufParams1D_t *bufParamsY, DSPLIB_bufParams1D_t *bufParamsB, DSPLIB_bufParams1D_t *bufParamsX, DSPLIB_bufParams1D_t *bufParamsDiv, const DSPLIB_cholesky_solver_InitArgs *pKerInitArgs)
 
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_cholesky_solver_forwardSubstitution_ci (dataType *pL, dataType *pY, dataType *pB, dataType *pDiv, int32_t order, int32_t colLstride, uint8_t *pBlock)
 
template void DSPLIB_cholesky_solver_forwardSubstitution_ci< float > (float *pL, float *pX, float *pY, float *pDiv, int32_t order, int32_t colLstride, uint8_t *pBlock)
 
template void DSPLIB_cholesky_solver_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_cholesky_solver_backSubstitution_ci (dataType *pL, dataType *pX, dataType *pY, dataType *pDiv, int32_t order, int32_t colLstride, uint8_t *pBlock)
 
template void DSPLIB_cholesky_solver_backSubstitution_ci< float > (float *pL, float *pX, float *pY, float *pDiv, int32_t order, int32_t colLstride, uint8_t *pBlock)
 
template void DSPLIB_cholesky_solver_backSubstitution_ci< double > (double *pL, double *pX, double *pY, double *pDiv, int32_t order, int32_t colLstride, uint8_t *pBlock)
 
template<typename dataType >
DSPLIB_STATUS DSPLIB_cholesky_solver_exec_ci (DSPLIB_kernelHandle handle, void *restrict pU, void *restrict pScratch, void *restrict pY, void *restrict pB, void *restrict pX, void *restrict pDiv)
 This function is the main execution function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_cholesky_solver_exec. More...
 
template DSPLIB_STATUS DSPLIB_cholesky_solver_exec_ci< float > (DSPLIB_kernelHandle handle, void *restrict pU, void *restrict pScratch, void *restrict pY, void *restrict pB, void *restrict pX, void *restrict pDiv)
 
template DSPLIB_STATUS DSPLIB_cholesky_solver_exec_ci< double > (DSPLIB_kernelHandle handle, void *restrict pU, void *restrict pScratch, void *restrict pY, void *restrict pB, void *restrict pX, void *restrict pDiv)
 

Function Documentation

◆ DSPLIB_cholesky_solver_backSubstitution_init_ci()

template<typename dataType >
void DSPLIB_cholesky_solver_backSubstitution_init_ci ( DSPLIB_kernelHandle  handle)

Definition at line 56 of file DSPLIB_cholesky_solver_ci.cpp.

◆ DSPLIB_cholesky_solver_backSubstitution_init_ci< float >()

◆ DSPLIB_cholesky_solver_backSubstitution_init_ci< double >()

◆ DSPLIB_cholesky_solver_init_ci()

template<typename dataType >
DSPLIB_STATUS DSPLIB_cholesky_solver_init_ci ( DSPLIB_kernelHandle  handle,
DSPLIB_bufParams2D_t bufParamsU,
DSPLIB_bufParams2D_t bufParamsScratch,
DSPLIB_bufParams1D_t bufParamsY,
DSPLIB_bufParams1D_t bufParamsB,
DSPLIB_bufParams1D_t bufParamsX,
DSPLIB_bufParams1D_t bufParamsDiv,
const DSPLIB_cholesky_solver_InitArgs pKerInitArgs 
)

This function is the initialization function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_cholesky_solver_init.

This function determines the configuration for the streaming engine and MMA hardware resources based on the function call parameters, and the configuration is saved in bufPBlock array. In the kernel call sequence, DSPLIB_cholesky_solver_exec_ci would be called later independently by the application. When DSPLIB_cholesky_solver_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_cholesky_solver_exec_ci does not lose cycles to determine the hardware configuration.

Parameters
[in]handle: Active handle to the kernel
[in]bufParamsU: Pointer to the structure containing dimensional information of input U matrix
[in]bufParamsScratch: Pointer to the structure containing dimensional information of scratch buffer
[in]bufParamsY: Pointer to the structure containing dimensional information of Y vector
[in]bufParamsB: Pointer to the structure containing dimensional information of B vector
[out]bufParamsX: Pointer to the structure containing dimensional information of output X vector
[in]bufParamsDiv: Pointer to the structure containing dimensional information of Div vector
[in]pKerInitArgs: Pointer to the structure holding init parameters
Returns
Status value indicating success or failure. Refer to DSPLIB_STATUS.

Definition at line 133 of file DSPLIB_cholesky_solver_ci.cpp.

◆ DSPLIB_cholesky_solver_init_ci< float >()

template DSPLIB_STATUS DSPLIB_cholesky_solver_init_ci< float > ( DSPLIB_kernelHandle  handle,
DSPLIB_bufParams2D_t bufParamsU,
DSPLIB_bufParams2D_t bufParamsScratch,
DSPLIB_bufParams1D_t bufParamsY,
DSPLIB_bufParams1D_t bufParamsB,
DSPLIB_bufParams1D_t bufParamsX,
DSPLIB_bufParams1D_t bufParamsDiv,
const DSPLIB_cholesky_solver_InitArgs pKerInitArgs 
)

◆ DSPLIB_cholesky_solver_init_ci< double >()

template DSPLIB_STATUS DSPLIB_cholesky_solver_init_ci< double > ( DSPLIB_kernelHandle  handle,
DSPLIB_bufParams2D_t bufParamsU,
DSPLIB_bufParams2D_t bufParamsScratch,
DSPLIB_bufParams1D_t bufParamsY,
DSPLIB_bufParams1D_t bufParamsB,
DSPLIB_bufParams1D_t bufParamsX,
DSPLIB_bufParams1D_t bufParamsDiv,
const DSPLIB_cholesky_solver_InitArgs pKerInitArgs 
)

◆ getElement() [1/3]

template<typename dataType , typename V = typename c7x::make_full_vector<dataType>::type>
void getElement ( inVec,
uint32_t  index,
dataType *  element 
)
inline

◆ getElement() [2/3]

template<typename V >
void getElement ( inVec,
uint32_t  index,
float *  element 
)
inline

Definition at line 193 of file DSPLIB_cholesky_solver_ci.cpp.

◆ getElement() [3/3]

template<typename V >
void getElement ( inVec,
uint32_t  index,
double *  element 
)
inline

Definition at line 198 of file DSPLIB_cholesky_solver_ci.cpp.

◆ DSPLIB_cholesky_solver_forwardSubstitution_ci()

template<typename dataType >
static void DSPLIB_cholesky_solver_forwardSubstitution_ci ( dataType *  pL,
dataType *  pY,
dataType *  pB,
dataType *  pDiv,
int32_t  order,
int32_t  colLstride,
uint8_t *  pBlock 
)
inlinestatic

Definition at line 204 of file DSPLIB_cholesky_solver_ci.cpp.

◆ DSPLIB_cholesky_solver_forwardSubstitution_ci< float >()

template void DSPLIB_cholesky_solver_forwardSubstitution_ci< float > ( float *  pL,
float *  pX,
float *  pY,
float *  pDiv,
int32_t  order,
int32_t  colLstride,
uint8_t *  pBlock 
)

◆ DSPLIB_cholesky_solver_forwardSubstitution_ci< double >()

template void DSPLIB_cholesky_solver_forwardSubstitution_ci< double > ( double *  pL,
double *  pX,
double *  pY,
double *  pDiv,
int32_t  order,
int32_t  colLstride,
uint8_t *  pBlock 
)

◆ DSPLIB_cholesky_solver_backSubstitution_ci()

template<typename dataType >
static void DSPLIB_cholesky_solver_backSubstitution_ci ( dataType *  pL,
dataType *  pX,
dataType *  pY,
dataType *  pDiv,
int32_t  order,
int32_t  colLstride,
uint8_t *  pBlock 
)
inlinestatic

Definition at line 420 of file DSPLIB_cholesky_solver_ci.cpp.

◆ DSPLIB_cholesky_solver_backSubstitution_ci< float >()

template void DSPLIB_cholesky_solver_backSubstitution_ci< float > ( float *  pL,
float *  pX,
float *  pY,
float *  pDiv,
int32_t  order,
int32_t  colLstride,
uint8_t *  pBlock 
)

◆ DSPLIB_cholesky_solver_backSubstitution_ci< double >()

template void DSPLIB_cholesky_solver_backSubstitution_ci< double > ( double *  pL,
double *  pX,
double *  pY,
double *  pDiv,
int32_t  order,
int32_t  colLstride,
uint8_t *  pBlock 
)

◆ DSPLIB_cholesky_solver_exec_ci()

template<typename dataType >
DSPLIB_STATUS DSPLIB_cholesky_solver_exec_ci ( DSPLIB_kernelHandle  handle,
void *restrict  pU,
void *restrict  pScratch,
void *restrict  pY,
void *restrict  pB,
void *restrict  pX,
void *restrict  pDiv 
)

This function is the main execution function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_cholesky_solver_exec.

The function uses the Streaming Engine and Streaming Address generators to solve A*x = b for x.

Parameters
[in]handle: Active handle to the kernel
[in]pU: Pointer to buffer holding the input data U[order][order]
[in]pScratch: Pointer to scratch buffer
[in]pY: Pointer to buffer holding the intermediate vector Y[order]
[in]pB: Pointer to buffer holding the input vector B[order]
[in]pX: Pointer to buffer holding the output data X[order]
[in]pDiv: Pointer to buffer holding the intermediate data pDiv[order]
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 630 of file DSPLIB_cholesky_solver_ci.cpp.

◆ DSPLIB_cholesky_solver_exec_ci< float >()

template DSPLIB_STATUS DSPLIB_cholesky_solver_exec_ci< float > ( DSPLIB_kernelHandle  handle,
void *restrict  pU,
void *restrict  pScratch,
void *restrict  pY,
void *restrict  pB,
void *restrict  pX,
void *restrict  pDiv 
)

◆ DSPLIB_cholesky_solver_exec_ci< double >()

template DSPLIB_STATUS DSPLIB_cholesky_solver_exec_ci< double > ( DSPLIB_kernelHandle  handle,
void *restrict  pU,
void *restrict  pScratch,
void *restrict  pY,
void *restrict  pB,
void *restrict  pX,
void *restrict  pDiv 
)