Kernel for sub matrix copy.
- This kernel copies a sub-matrix from one matrix to another.
- This kernel provides functionaly to set direction of copy. See DSPLIB_mat_submat_copyInitArgs::dir
- If DSPLIB_mat_submat_copyInitArgs::dir = 0, copy 'nRows' number of rows and 'nCols' number of columns starting from 'stRow' th row and 'stCols' th column from the matrix \(X\) to the 0th index of a matrix \(Y\).
- If DSPLIB_mat_submat_copyInitArgs::dir = 1, copy 'nRows' number of rows and 'nCols' number of columns starting from 0th index of a matrix \(Y\) into 'stRow' th row and 'stCols' th column of matrix \(X\).
- Matrix \(X\) is of the shape (M, N).
- Matrix \(Y\) is of the shape (nRows, nCols).
- Following datatypes are supported : DSPLIB_INT8, DSPLIB_INT16, DSPLIB_INT32,DSPLIB_INT64, DSPLIB_UINT8, DSPLIB_UINT16, DSPLIB_UINT32, DSPLIB_UINT64, DSPLIB_FLOAT32, DSPLIB_FLOAT64
|
| int32_t | DSPLIB_mat_submat_copy_getHandleSize (DSPLIB_mat_submat_copyInitArgs *pKerInitArgs) |
| | This is a query function to calculate the size of internal handle. More...
|
| |
| DSPLIB_STATUS | DSPLIB_mat_submat_copy_init (DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsX, DSPLIB_bufParams2D_t *bufParamsY, const DSPLIB_mat_submat_copyInitArgs *pKerInitArgs) |
| | This function should be called before the DSPLIB_mat_submat_copy_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 streaming engine and streaming address generator. The results of these operations are stored in the handle. More...
|
| |
| DSPLIB_STATUS | DSPLIB_mat_submat_copy_init_checkParams (DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsX, const DSPLIB_bufParams2D_t *bufParamsY, const DSPLIB_mat_submat_copyInitArgs *pKerInitArgs) |
| | This function checks the validity of the parameters passed to DSPLIB_mat_submat_copy_init function. This function is called with the same parameters as the DSPLIB_mat_submat_copy_init, and this function must be called before the DSPLIB_mat_submat_copy_init is called. More...
|
| |
| DSPLIB_STATUS | DSPLIB_mat_submat_copy_exec_checkParams (DSPLIB_kernelHandle handle, const void *restrict pX, const void *restrict pY) |
| | This function checks the validity of the parameters passed to DSPLIB_mat_submat_copy_exec function. This function is called with the same parameters as the DSPLIB_mat_submat_copy_exec, and this function must be called before the DSPLIB_mat_submat_copy_exec is called. More...
|
| |
| DSPLIB_STATUS | DSPLIB_mat_submat_copy_exec (DSPLIB_kernelHandle handle, void *restrict pX, void *restrict pY) |
| | This function is the main kernel compute function. More...
|
| |
◆ DSPLIB_mat_submat_copy_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_mat_submat_copy.cpp.
◆ DSPLIB_mat_submat_copy_init()
This function should be called before the DSPLIB_mat_submat_copy_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 streaming engine and streaming address generator. The results of these operations are stored in the handle.
- Parameters
-
| [in] | handle | : Active handle to the kernel |
| [in] | bufParamsX | : Pointer to the structure containing dimensional information of X matrix |
| [out] | bufParamsY | : Pointer to the structure containing dimensional information of Y matrix |
| [in] | pKerInitArgs | : Pointer to the structure holding init parameters |
- Returns
- Status value indicating success or failure. Refer to DSPLIB_STATUS.
Definition at line 88 of file DSPLIB_mat_submat_copy.cpp.
◆ DSPLIB_mat_submat_copy_init_checkParams()
This function checks the validity of the parameters passed to DSPLIB_mat_submat_copy_init function. This function is called with the same parameters as the DSPLIB_mat_submat_copy_init, and this function must be called before the DSPLIB_mat_submat_copy_init is called.
- Parameters
-
| [in] | handle | : Active handle to the kernel |
| [in] | bufParamsX | : Pointer to the structure containing dimensional information of X matrix |
| [out] | bufParamsY | : Pointer to the structure containing dimensional information of Y matrix |
| [in] | pKerInitArgs | : Pointer to the structure holding init parameters |
- Returns
- Status value indicating success or failure. Refer to DSPLIB_STATUS.
Definition at line 34 of file DSPLIB_mat_submat_copy.cpp.
◆ DSPLIB_mat_submat_copy_exec_checkParams()
◆ DSPLIB_mat_submat_copy_exec()
This function is the main kernel compute function.
Please refer to details under DSPLIB_mat_submat_copy_exec
- Parameters
-
| [in] | handle | : Active handle to the kernel |
| [in] | pX | : Pointer to buffer holding the X matrix |
| [out] | pY | : Pointer to buffer holding the Y matrix |
- Memory Requirements
| Buffer | dimY | dimX | Comments |
| pX | M | N | X Matrix |
| pY | nRows | nCols | Y Matrix |
- 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 211 of file DSPLIB_mat_submat_copy.cpp.