Kernel for computing Cholesky Solver.
|
| int32_t | DSPLIB_cholesky_solver_getHandleSize (DSPLIB_cholesky_solver_InitArgs *pKerInitArgs) |
| | This is a query function to calculate the size of internal handle. More...
|
| |
| DSPLIB_STATUS | DSPLIB_cholesky_solver_init (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 should be called before the DSPLIB_cholesky_solver_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_solver_init_checkParams (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 checks the validity of the parameters passed to DSPLIB_cholesky_solver_init function. This function is called with the same parameters as the DSPLIB_cholesky_solver_init, and this function must be called before the DSPLIB_cholesky_solver_init is called. More...
|
| |
| DSPLIB_STATUS | DSPLIB_cholesky_solver_exec_checkParams (DSPLIB_kernelHandle handle, const void *restrict pU, const void *restrict pScratch, const void *restrict pY, const void *restrict pB, const void *restrict pX, const void *restrict pDiv) |
| | This function checks the validity of the parameters passed to DSPLIB_cholesky_solver_exec function. This function is called with the same parameters as the DSPLIB_cholesky_solver_init, and this function must be called before the DSPLIB_cholesky_solver_init is called. More...
|
| |
| DSPLIB_STATUS | DSPLIB_cholesky_solver_exec (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 kernel compute function. More...
|
| |
◆ DSPLIB_cholesky_solver_getHandleSize()
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
Definition at line 25 of file DSPLIB_cholesky_solver.cpp.
◆ DSPLIB_cholesky_solver_init()
This function should be called before the DSPLIB_cholesky_solver_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] | 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 66 of file DSPLIB_cholesky_solver.cpp.
◆ DSPLIB_cholesky_solver_init_checkParams()
This function checks the validity of the parameters passed to DSPLIB_cholesky_solver_init function. This function is called with the same parameters as the DSPLIB_cholesky_solver_init, and this function must be called before the DSPLIB_cholesky_solver_init is called.
- 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 31 of file DSPLIB_cholesky_solver.cpp.
◆ DSPLIB_cholesky_solver_exec_checkParams()
| DSPLIB_STATUS DSPLIB_cholesky_solver_exec_checkParams |
( |
DSPLIB_kernelHandle |
handle, |
|
|
const void *restrict |
pU, |
|
|
const void *restrict |
pScratch, |
|
|
const void *restrict |
pY, |
|
|
const void *restrict |
pB, |
|
|
const void *restrict |
pX, |
|
|
const void *restrict |
pDiv |
|
) |
| |
This function checks the validity of the parameters passed to DSPLIB_cholesky_solver_exec function. This function is called with the same parameters as the DSPLIB_cholesky_solver_init, and this function must be called before the DSPLIB_cholesky_solver_init is called.
- Parameters
-
| [in] | handle | : Active handle to the kernel |
| [in] | pU | : Pointer to buffer holding the input data U |
| [in] | pScratch | : Pointer to scratch buffer |
| [in] | pY | : Pointer to buffer holding the intermediate vector Y |
| [in] | pB | : Pointer to buffer holding the input vector B |
| [out] | pX | : Pointer to buffer holding the output data X |
| [in] | pDiv | : Pointer to buffer holding the intermediate data pDiv |
- Returns
- Status value indicating success or failure. Refer to DSPLIB_STATUS.
Definition at line 122 of file DSPLIB_cholesky_solver.cpp.
◆ DSPLIB_cholesky_solver_exec()
| DSPLIB_STATUS DSPLIB_cholesky_solver_exec |
( |
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 kernel compute function.
- 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] |
- Memory Requirements
| Buffer | dimY | dimX | Comments |
| pU | M | M | Input Upper Triangular Matrix |
| pScratch | M | M | Scratch Buffer to store transpose of U |
| pY | 1 | M | Intermediate solution vector |
| pB | 1 | M | Input Vector |
| pX | 1 | M | Output Vector |
| pDiv | 1 | M | Scratch buffer to store reciprocals of diagonal elements |
- Returns
- Status value indicating success or failure. Refer to DSPLIB_STATUS.
- Assumptions:
-
- 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.
Definition at line 146 of file DSPLIB_cholesky_solver.cpp.