DSPLIB User Guide
DSPLIB_cascadeBiquad

Introduction

Kernel for multichannel multistage cascade on input data.

Data Structures

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

Functions

int32_t DSPLIB_cascadeBiquad_getHandleSize (DSPLIB_cascadeBiquad_InitArgs *pKerInitArgs)
 This is a query function to calculate the size of internal handle. More...
 
int32_t DSPLIB_cascadeBiquad_get_coefficientsBufferSize (uint32_t numStages)
 This is a query function to calculate the sizes of coefficient buffer needed based on the number of stages. More...
 
DSPLIB_STATUS DSPLIB_cascadeBiquad_init (DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsIn, DSPLIB_bufParams1D_t *bufParamsFilterCoeff, DSPLIB_bufParams2D_t *bufParamsFilterVar, DSPLIB_bufParams2D_t *bufParamsOut, DSPLIB_cascadeBiquad_InitArgs *pKerInitArgs)
 This function should be called before the DSPLIB_cascadeBiquad_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_cascadeBiquad_init_checkParams (DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsIn, const DSPLIB_bufParams1D_t *bufParamsFilterCoeff, const DSPLIB_bufParams2D_t *bufParamsFilterVar, const DSPLIB_bufParams2D_t *bufParamsOut, const DSPLIB_cascadeBiquad_InitArgs *pKerInitArgs)
 This function checks the validity of the parameters passed to DSPLIB_cascadeBiquad_init function. This function is called with the same parameters as the DSPLIB_cascadeBiquad_init, and this function must be called before the DSPLIB_cascadeBiquad_init is called. More...
 
DSPLIB_STATUS DSPLIB_cascadeBiquad_exec (DSPLIB_kernelHandle handle, void *restrict pIn, void *restrict pFilterCoeff, void *restrict pFilterVar, void *restrict pOut)
 This function is the main kernel compute function. More...
 
DSPLIB_STATUS DSPLIB_cascadeBiquad_exec_checkParams (DSPLIB_kernelHandle handle, const void *restrict pIn, const void *restrict pFilterCoeff, const void *restrict pFilterVar, const void *restrict pOut)
 This function checks the validity of the parameters passed to DSPLIB_cascadeBiquad_exec function. This function is called with the same parameters as the DSPLIB_cascadeBiquad_exec, and this function must be called before the DSPLIB_cascadeBiquad_exec is called. More...
 
void DSPLIB_cascadeBiquad_perfEst (DSPLIB_kernelHandle handle, const DSPLIB_bufParams2D_t *bufParamsIn, const DSPLIB_bufParams1D_t *bufParamsFilterCoeff, const DSPLIB_bufParams2D_t *bufParamsFilterVar, const DSPLIB_bufParams2D_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...
 

Function Documentation

◆ DSPLIB_cascadeBiquad_getHandleSize()

int32_t DSPLIB_cascadeBiquad_getHandleSize ( DSPLIB_cascadeBiquad_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_cascadeBiquad.cpp.

◆ DSPLIB_cascadeBiquad_get_coefficientsBufferSize()

int32_t DSPLIB_cascadeBiquad_get_coefficientsBufferSize ( uint32_t  numStages)

This is a query function to calculate the sizes of coefficient buffer needed based on the number of stages.

Parameters
[in]numStages: number of stages
Returns
size of the buffer
Remarks
Application is expected to allocate buffers of the requested size, fill in the input data and filter data before making the DSPLIB_cascadeBiquad_exec function call.

Definition at line 102 of file DSPLIB_cascadeBiquad.cpp.

◆ DSPLIB_cascadeBiquad_init()

DSPLIB_STATUS DSPLIB_cascadeBiquad_init ( DSPLIB_kernelHandle  handle,
DSPLIB_bufParams2D_t bufParamsIn,
DSPLIB_bufParams1D_t bufParamsFilterCoeff,
DSPLIB_bufParams2D_t bufParamsFilterVar,
DSPLIB_bufParams2D_t bufParamsOut,
DSPLIB_cascadeBiquad_InitArgs pKerInitArgs 
)

This function should be called before the DSPLIB_cascadeBiquad_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 DSPLIB_STATUS.
Remarks
Application is expected to provide a valid handle.

Definition at line 176 of file DSPLIB_cascadeBiquad.cpp.

◆ DSPLIB_cascadeBiquad_init_checkParams()

DSPLIB_STATUS DSPLIB_cascadeBiquad_init_checkParams ( DSPLIB_kernelHandle  handle,
const DSPLIB_bufParams2D_t bufParamsIn,
const DSPLIB_bufParams1D_t bufParamsFilterCoeff,
const DSPLIB_bufParams2D_t bufParamsFilterVar,
const DSPLIB_bufParams2D_t bufParamsOut,
const DSPLIB_cascadeBiquad_InitArgs pKerInitArgs 
)

This function checks the validity of the parameters passed to DSPLIB_cascadeBiquad_init function. This function is called with the same parameters as the DSPLIB_cascadeBiquad_init, and this function must be called before the DSPLIB_cascadeBiquad_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 DSPLIB_STATUS.
Remarks
None

Definition at line 31 of file DSPLIB_cascadeBiquad.cpp.

◆ DSPLIB_cascadeBiquad_exec()

DSPLIB_STATUS DSPLIB_cascadeBiquad_exec ( DSPLIB_kernelHandle  handle,
void *restrict  pIn,
void *restrict  pFilterCoeff,
void *restrict  pFilterVar,
void *restrict  pOut 
)

This function is the main kernel compute function.

Please refer to details under DSPLIB_cascadeBiquad

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 DSPLIB_STATUS.
Assumptions:
  • None
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
Remarks
Before calling this function, application is expected to call DSPLIB_cascadeBiquad_init and DSPLIB_cascadeBiquad_exec_checkParams functions. This ensures resource configuration and error checks are done only once for several invocations of this function.

Definition at line 243 of file DSPLIB_cascadeBiquad.cpp.

◆ DSPLIB_cascadeBiquad_exec_checkParams()

DSPLIB_STATUS DSPLIB_cascadeBiquad_exec_checkParams ( DSPLIB_kernelHandle  handle,
const void *restrict  pIn,
const void *restrict  pFilterCoeff,
const void *restrict  pFilterVar,
const void *restrict  pOut 
)

This function checks the validity of the parameters passed to DSPLIB_cascadeBiquad_exec function. This function is called with the same parameters as the DSPLIB_cascadeBiquad_exec, and this function must be called before the DSPLIB_cascadeBiquad_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 DSPLIB_STATUS.
Remarks
None

Definition at line 68 of file DSPLIB_cascadeBiquad.cpp.

◆ DSPLIB_cascadeBiquad_perfEst()

void DSPLIB_cascadeBiquad_perfEst ( DSPLIB_kernelHandle  handle,
const DSPLIB_bufParams2D_t bufParamsIn,
const DSPLIB_bufParams1D_t bufParamsFilterCoeff,
const DSPLIB_bufParams2D_t bufParamsFilterVar,
const DSPLIB_bufParams2D_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.

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
Remarks
None