DSPLIB User Guide
DSPLIB_cholesky

Introduction

Kernel for performing Cholesky Decomposition of a matrix.

Data Structures

struct  DSPLIB_cholesky_InitArgs
 Structure containing the parameters to initialize the kernel. More...
 

Functions

int32_t DSPLIB_cholesky_getHandleSize (DSPLIB_cholesky_InitArgs *pKerInitArgs)
 This is a query function to calculate the size of internal handle. More...
 
DSPLIB_STATUS DSPLIB_cholesky_init (DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsIn, DSPLIB_bufParams2D_t *bufParamsOut, const DSPLIB_cholesky_InitArgs *pKerInitArgs)
 This function should be called before the DSPLIB_cholesky_exec function is called. This function takes care of any one-time operations such as setting up the configuration of required hardware resources such as the MMA accelerator and the streaming engine. The results of these operations are stored in the handle. More...
 
DSPLIB_STATUS DSPLIB_cholesky_init_checkParams (DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsIn, const DSPLIB_bufParams2D_t *bufParamsOut, const DSPLIB_cholesky_InitArgs *pKerInitArgs)
 This function checks the validity of the parameters passed to DSPLIB_cholesky_init function. This function is called with the same parameters as the DSPLIB_cholesky_init, and this function must be called before the DSPLIB_cholesky_init is called. More...
 
DSPLIB_STATUS DSPLIB_cholesky_exec_checkParams (DSPLIB_kernelHandle handle, const void *restrict pInA, const void *restrict pOutU, const void *restrict pMul)
 This function checks the validity of the parameters passed to DSPLIB_cholesky_exec function. This function is called with the same parameters as the DSPLIB_cholesky_init, and this function must be called before the DSPLIB_cholesky_init is called. More...
 
DSPLIB_STATUS DSPLIB_cholesky_exec (DSPLIB_kernelHandle handle, void *restrict pInA, void *restrict pOutU, void *restrict pMul)
 This function is the main kernel compute function. More...
 

Function Documentation

◆ DSPLIB_cholesky_getHandleSize()

int32_t DSPLIB_cholesky_getHandleSize ( DSPLIB_cholesky_InitArgs pKerInitArgs)

This is a query function to calculate the size of internal handle.

Parameters
[in]pKerInitArgs: Pointer to structure holding init parameters
Returns
Size of the buffer in bytes
Remarks
Application is expected to allocate buffer of the requested size and provide it as input to other functions requiring it.

Definition at line 25 of file DSPLIB_cholesky.cpp.

◆ DSPLIB_cholesky_init()

DSPLIB_STATUS DSPLIB_cholesky_init ( DSPLIB_kernelHandle  handle,
DSPLIB_bufParams2D_t bufParamsIn,
DSPLIB_bufParams2D_t bufParamsOut,
const DSPLIB_cholesky_InitArgs pKerInitArgs 
)

This function should be called before the DSPLIB_cholesky_exec function is called. This function takes care of any one-time operations such as setting up the configuration of required hardware resources such as the MMA accelerator and the streaming engine. The results of these operations are stored in the handle.

Parameters
[in]handle: Active handle to the kernel
[in]bufParamsIn: Pointer to the structure containing dimensional information of input buffer
[out]bufParamsOut: Pointer to the structure containing dimensional information of ouput buffer
[in]pKerInitArgs: Pointer to the structure holding init parameters
Returns
Status value indicating success or failure. Refer to DSPLIB_STATUS.
Remarks
Application is expected to provide a valid handle.

Definition at line 61 of file DSPLIB_cholesky.cpp.

◆ DSPLIB_cholesky_init_checkParams()

DSPLIB_STATUS DSPLIB_cholesky_init_checkParams ( DSPLIB_kernelHandle  handle,
const DSPLIB_bufParams2D_t bufParamsIn,
const DSPLIB_bufParams2D_t bufParamsOut,
const DSPLIB_cholesky_InitArgs pKerInitArgs 
)

This function checks the validity of the parameters passed to DSPLIB_cholesky_init function. This function is called with the same parameters as the DSPLIB_cholesky_init, and this function must be called before the DSPLIB_cholesky_init is called.

Parameters
[in]handle: Active handle to the kernel
[in]bufParamsIn: Pointer to the structure containing dimensional information of input buffer
[out]bufParamsOut: Pointer to the structure containing dimensional information of ouput buffer
[in]pKerInitArgs: Pointer to the structure holding init parameters
Returns
Status value indicating success or failure. Refer to DSPLIB_STATUS.
Remarks
None

Definition at line 31 of file DSPLIB_cholesky.cpp.

◆ DSPLIB_cholesky_exec_checkParams()

DSPLIB_STATUS DSPLIB_cholesky_exec_checkParams ( DSPLIB_kernelHandle  handle,
const void *restrict  pInA,
const void *restrict  pOutU,
const void *restrict  pMul 
)

This function checks the validity of the parameters passed to DSPLIB_cholesky_exec function. This function is called with the same parameters as the DSPLIB_cholesky_init, and this function must be called before the DSPLIB_cholesky_init is called.

Parameters
[in]handle: Active handle to the kernel
[in]pInA: Pointer to buffer holding the input data A
[out]pOutU: Pointer to buffer holding the output data U
[in]pMul: Pointer to buffer holding intermediate data
Returns
Status value indicating success or failure. Refer to DSPLIB_STATUS.
Remarks
None

Definition at line 114 of file DSPLIB_cholesky.cpp.

◆ DSPLIB_cholesky_exec()

DSPLIB_STATUS DSPLIB_cholesky_exec ( DSPLIB_kernelHandle  handle,
void *restrict  pInA,
void *restrict  pOutU,
void *restrict  pMul 
)

This function is the main kernel compute function.

Parameters
[in]handle: Active handle to the kernel
[in]pInA: Pointer to buffer holding the input data A
[out]pOutU: Pointer to buffer holding the output data U
[in]pMul: Pointer to buffer holding intermediate data
Memory Requirements
Buffer dimY dimX Comments
pInA M M Input Square Matrix
pOutU M M Output Upper Triangular Matrix
pMul 1 M Scratch Buffer to store multipliers
Returns
Status value indicating success or failure. Refer to DSPLIB_STATUS.
Assumptions:
  • The arrays A and U are stored in distinct arrays. In-place processing is not allowed.
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
  • Ensure that the starting point of adjacent rows in a 2-D matrix are allocated from different banks in L2 memory with the help of memory padding.
Remarks
Before calling this function, application is expected to call DSPLIB_cholesky_init and DSPLIB_cholesky_exec_checkParams functions. This ensures resource configuration and error checks are done only once for several invocations of this function.

Definition at line 134 of file DSPLIB_cholesky.cpp.