Kernel for convolving input data with an input filter (filter size > MMA_SIZE/2) For input filter size <= MMA_SIZE/2 refer to MMALIB_DSP_firSmall_ixX_ixX_oxX.
- The kernel support computation of convolutions of a batch of several inputs in one kernel call.
- In a batch of several inputs, each input is referred to as a channel. The data size for all channels in a batch is assumed to be same.
- The kernel convolves only full length of filters. Convolution near the head of the input data or the tail of input data with partial filter lengths are not done. As such, the size of output data would be (dataSize - filterSize+1)*batchSize.
- The filter buffer is expected to have 2*MMA_SIZE number of zeros before actual filter data, and MMA_SIZE number of zeros after the filter data. As such the size of filter buffer as returned in bufParamsFilter by MMALIB_DSP_fir_ixX_ixX_oxX_getSizes will be filterSize + 3*MMA_SIZE.
- The buffer used for providing input data may be required to be bigger than data size itself. The actual size required to be allocated for the input buffer is returned by MMALIB_DSP_fir_ixX_ixX_oxX_getSizes
|
int32_t | MMALIB_DSP_fir_ixX_ixX_oxX_getHandleSize (MMALIB_DSP_fir_ixX_ixX_oxX_InitArgs *pKerInitArgs) |
| This is a query function to calculate the size of internal handle. More...
|
|
MMALIB_STATUS | MMALIB_DSP_fir_ixX_ixX_oxX_getSizes (const MMALIB_DSP_fir_ixX_ixX_oxX_InitArgs *pKerInitArgs, MMALIB_bufParams1D_t *bufParamsIn, MMALIB_bufParams1D_t *bufParamsFilter, MMALIB_bufParams1D_t *bufParamsOut) |
| This is a query function to calculate the sizes of input, filter and the output buffers. More...
|
|
MMALIB_STATUS | MMALIB_DSP_fir_ixX_ixX_oxX_init (MMALIB_kernelHandle handle, MMALIB_bufParams1D_t *bufParamsIn, MMALIB_bufParams1D_t *bufParamsFilter, MMALIB_bufParams1D_t *bufParamsOut, MMALIB_DSP_fir_ixX_ixX_oxX_InitArgs *pKerInitArgs) |
| This function should be called before the MMALIB_DSP_fir_ixX_ixX_oxX_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...
|
|
MMALIB_STATUS | MMALIB_DSP_fir_ixX_ixX_oxX_init_checkParams (MMALIB_kernelHandle handle, const MMALIB_bufParams1D_t *bufParamsIn, const MMALIB_bufParams1D_t *bufParamsFilter, const MMALIB_bufParams1D_t *bufParamsOut, const MMALIB_DSP_fir_ixX_ixX_oxX_InitArgs *pKerInitArgs) |
| This function checks the validity of the parameters passed to MMALIB_DSP_fir_ixX_ixX_oxX_init function. This function is called with the same parameters as the MMALIB_DSP_fir_ixX_ixX_oxX_init, and this function must be called before the MMALIB_DSP_fir_ixX_ixX_oxX_init is called. More...
|
|
MMALIB_STATUS | MMALIB_DSP_fir_ixX_ixX_oxX_exec (MMALIB_kernelHandle handle, void *restrict pIn, void *restrict pFilter, void *restrict pOut) |
| This function is the main kernel compute function. More...
|
|
MMALIB_STATUS | MMALIB_DSP_fir_ixX_ixX_oxX_exec_checkParams (MMALIB_kernelHandle handle, const void *restrict pIn, const void *restrict pFilter, const void *restrict pOut) |
| This function checks the validity of the parameters passed to MMALIB_DSP_fir_ixX_ixX_oxX_exec function. This function is called with the same parameters as the MMALIB_DSP_fir_ixX_ixX_oxX_exec, and this function must be called before the MMALIB_DSP_fir_ixX_ixX_oxX_exec is called. More...
|
|
void | MMALIB_DSP_fir_ixX_ixX_oxX_perfEst (MMALIB_kernelHandle handle, const MMALIB_bufParams1D_t *bufParamsIn, const MMALIB_bufParams1D_t *bufParamsFilter, const MMALIB_bufParams1D_t *bufParamsOut, uint64_t *archCycles, uint64_t *estCycles) |
| This is a utility function that gives an estimate of the cycles consumed for the kernel execution. More...
|
|
◆ MMALIB_DSP_fir_ixX_ixX_oxX_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
◆ MMALIB_DSP_fir_ixX_ixX_oxX_getSizes()
This is a query function to calculate the sizes of input, filter and the output buffers.
- Parameters
-
[in] | pKerInitArgs | : Pointer to the structure holding init parameters |
[in] | bufParamsIn | : Pointer to the structure containing dimensional information of input buffer |
[in] | bufParamsFilter | : Pointer to the structure containing dimensional information of filter buffer |
[in] | bufParamsOut | : Pointer to the structure containing dimensional information of ouput buffer |
- Returns
- Status value indicating success or failure. Refer to MMALIB_STATUS.
◆ MMALIB_DSP_fir_ixX_ixX_oxX_init()
This function should be called before the MMALIB_DSP_fir_ixX_ixX_oxX_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 |
[in] | bufParamsFilter | : Pointer to the structure containing dimensional information of filter 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 MMALIB_STATUS.
◆ MMALIB_DSP_fir_ixX_ixX_oxX_init_checkParams()
This function checks the validity of the parameters passed to MMALIB_DSP_fir_ixX_ixX_oxX_init function. This function is called with the same parameters as the MMALIB_DSP_fir_ixX_ixX_oxX_init, and this function must be called before the MMALIB_DSP_fir_ixX_ixX_oxX_init is called.
- Parameters
-
[in] | handle | : Active handle to the kernel |
[in] | bufParamsIn | : Pointer to the structure containing dimensional information of input buffer |
[in] | bufParamsFilter | : Pointer to the structure containing dimensional information of filter buffer |
[out] | bufParamsOut | : Pointer to the structure containing dimensional information of output buffer |
[in] | pKerInitArgs | : Pointer to the structure holding init parameters |
- Returns
- Status value indicating success or failure. Refer to MMALIB_STATUS.
◆ MMALIB_DSP_fir_ixX_ixX_oxX_exec()
This function is the main kernel compute function.
Please refer to details under MMALIB_DSP_fir_ixX_ixX_oxX
- Parameters
-
[in] | handle | : Active handle to the kernel |
[in] | pIn | : Pointer to buffer holding the input data |
[in] | pFilter | : Pointer to buffer holding the filter data |
[out] | pOut | : Pointer to buffer holding the output data |
- Returns
- Status value indicating success or failure. Refer to MMALIB_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
◆ MMALIB_DSP_fir_ixX_ixX_oxX_exec_checkParams()
MMALIB_STATUS MMALIB_DSP_fir_ixX_ixX_oxX_exec_checkParams |
( |
MMALIB_kernelHandle |
handle, |
|
|
const void *restrict |
pIn, |
|
|
const void *restrict |
pFilter, |
|
|
const void *restrict |
pOut |
|
) |
| |
This function checks the validity of the parameters passed to MMALIB_DSP_fir_ixX_ixX_oxX_exec function. This function is called with the same parameters as the MMALIB_DSP_fir_ixX_ixX_oxX_exec, and this function must be called before the MMALIB_DSP_fir_ixX_ixX_oxX_exec is called.
- Parameters
-
[in] | handle | : Active handle to the kernel |
[in] | pIn | : Pointer to buffer holding the input data |
[in] | pFilter | : Pointer to buffer holding the input data |
[out] | pOut | : Pointer to buffer holding the output matrix |
- Returns
- Status value indicating success or failure. Refer to MMALIB_STATUS.
◆ MMALIB_DSP_fir_ixX_ixX_oxX_perfEst()
This is a utility function that gives an estimate of the cycles consumed for the kernel execution.
- Parameters
-
[in] | handle | : Active handle to the kernel |
[in] | bufParamsIn | : Pointer to the structure containing dimensional information of the input buffer |
[in] | bufParamsFilter | : Pointer to the structure containing dimensional information of the filter buffer |
[in] | bufParamsOut | : Pointer to the structure containing dimensional information of the output buffer |
[out] | archCycles | : Cycles estimated for the compute, startup and teardown |
[out] | estCycles | : Cycles estimated for the compute, startup, teardown and any associated overhead |