DSPLIB User Guide
DSPLIB_sqrAdd_priv.h File Reference

Introduction

Header file for kernel's internal use. For the kernel's interface, please see DSPLIB_sqrAdd.

Definition in file DSPLIB_sqrAdd_priv.h.

Go to the source code of this file.

Data Structures

struct  DSPLIB_sqrAdd_PrivArgs
 Structure that is reserved for internal use by the kernel. More...
 

Macros

#define SE_PARAM_BASE   (0x0000)
 
#define SE_SE0_PARAM_OFFSET   (SE_PARAM_BASE)
 
#define SE_SE1_PARAM_OFFSET   (SE_SE0_PARAM_OFFSET + SE_PARAM_SIZE)
 
#define SE_SA0_PARAM_OFFSET   (SE_SE1_PARAM_OFFSET + SE_PARAM_SIZE)
 
#define DSPLIB_SQRADD_IXX_IXX_OXX_PBLOCK_SIZE   (3 * SE_PARAM_SIZE + 1 * DSPLIB_PARAM_SIZE + 2 * sizeof(int32_t))
 Macro to define the size of bufPblock array of DSPLIB_sqrAdd_PrivArgs structure. More...
 

Typedefs

typedef DSPLIB_STATUS(* pFxnDSPLIB_sqrAdd_exec) (DSPLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut)
 This is a function pointer type that conforms to the declaration of DSPLIB_sqrAdd_exec_ci and DSPLIB_sqrAdd_exec_cn. More...
 

Functions

template<typename dataType >
DSPLIB_STATUS DSPLIB_sqrAdd_init_ci (DSPLIB_kernelHandle handle, const DSPLIB_bufParams1D_t *bufParamsIn, const DSPLIB_bufParams1D_t *bufParamsOut, const DSPLIB_sqrAdd_InitArgs *pKerInitArgs)
 This function is the initialization function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_sqrAdd_init. More...
 
template<typename dataType >
DSPLIB_STATUS DSPLIB_sqrAdd_exec_ci (DSPLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut)
 This function is the main execution function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_sqrAdd_exec. More...
 
template<typename dataType >
DSPLIB_STATUS DSPLIB_sqrAddInt_exec_ci (DSPLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut)
 This function is the main execution function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_sqrAdd_exec. More...
 
template<typename dataType >
DSPLIB_STATUS DSPLIB_sqrAdd_exec_cn (DSPLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut)
 This function is the main execution function for the natural C implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_sqrAdd_exec. More...
 
DSPLIB_STATUS DSPLIB_sqrAdd_init_cn (DSPLIB_kernelHandle handle, DSPLIB_bufParams2D_t *bufParamsIn, DSPLIB_bufParams2D_t *bufParamsOut)
 This function is the initialization function for the natural C implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_sqrAdd_init. More...
 

Macro Definition Documentation

◆ SE_PARAM_BASE

#define SE_PARAM_BASE   (0x0000)

Definition at line 38 of file DSPLIB_sqrAdd_priv.h.

◆ SE_SE0_PARAM_OFFSET

#define SE_SE0_PARAM_OFFSET   (SE_PARAM_BASE)

Definition at line 39 of file DSPLIB_sqrAdd_priv.h.

◆ SE_SE1_PARAM_OFFSET

#define SE_SE1_PARAM_OFFSET   (SE_SE0_PARAM_OFFSET + SE_PARAM_SIZE)

Definition at line 40 of file DSPLIB_sqrAdd_priv.h.

◆ SE_SA0_PARAM_OFFSET

#define SE_SA0_PARAM_OFFSET   (SE_SE1_PARAM_OFFSET + SE_PARAM_SIZE)

Definition at line 41 of file DSPLIB_sqrAdd_priv.h.

◆ DSPLIB_SQRADD_IXX_IXX_OXX_PBLOCK_SIZE

#define DSPLIB_SQRADD_IXX_IXX_OXX_PBLOCK_SIZE   (3 * SE_PARAM_SIZE + 1 * DSPLIB_PARAM_SIZE + 2 * sizeof(int32_t))

Macro to define the size of bufPblock array of DSPLIB_sqrAdd_PrivArgs structure.

Definition at line 47 of file DSPLIB_sqrAdd_priv.h.

Typedef Documentation

◆ pFxnDSPLIB_sqrAdd_exec

typedef DSPLIB_STATUS(* pFxnDSPLIB_sqrAdd_exec) (DSPLIB_kernelHandle handle, void *restrict pIn, void *restrict pOut)

This is a function pointer type that conforms to the declaration of DSPLIB_sqrAdd_exec_ci and DSPLIB_sqrAdd_exec_cn.

Definition at line 53 of file DSPLIB_sqrAdd_priv.h.

Function Documentation

◆ DSPLIB_sqrAdd_init_ci()

template<typename dataType >
DSPLIB_STATUS DSPLIB_sqrAdd_init_ci ( DSPLIB_kernelHandle  handle,
const DSPLIB_bufParams1D_t bufParamsIn,
const DSPLIB_bufParams1D_t bufParamsOut,
const DSPLIB_sqrAdd_InitArgs pKerInitArgs 
)

This function is the initialization function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_sqrAdd_init.

This function determines the configuration for the streaming engine resources based on the function call parameters, and the configuration is saved in bufPBlock array. In the kernel call sequence, DSPLIB_sqrAdd_exec_ci would be called later independently by the application. When DSPLIB_sqrAdd_exec_ci runs, it merely retrieves the configuration from the bufPBlock and uses it to set up the hardware resources. This arrangement is so that DSPLIB_sqrAdd_exec_ci does not lose cycles to determine the hardware configuration.

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.

Definition at line 53 of file DSPLIB_sqrAdd_ci.cpp.

◆ DSPLIB_sqrAdd_exec_ci()

template<typename dataType >
DSPLIB_STATUS DSPLIB_sqrAdd_exec_ci ( DSPLIB_kernelHandle  handle,
void *restrict  pIn,
void *restrict  pOut 
)

This function is the main execution function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_sqrAdd_exec.

The function uses MMA hardware accelerator to perform the convolution computation. Filter data is loaded into B panel of the MMA from memory using one streaming engine, while the input data is loaded into A vectors of the MMA using the other streaming engine. Result of the compute from MMA C panel is stored into memory using a stream sqrAddress generator.

Parameters
[in]handle: Active handle to the kernel
[in]pIn: Pointer to buffer holding the input data
[out]pOut: Pointer to buffer holding the output data
Returns
Status value indicating success or failure. Refer to DSPLIB_STATUS.
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

Definition at line 264 of file DSPLIB_sqrAdd_ci.cpp.

◆ DSPLIB_sqrAddInt_exec_ci()

template<typename dataType >
DSPLIB_STATUS DSPLIB_sqrAddInt_exec_ci ( DSPLIB_kernelHandle  handle,
void *restrict  pIn,
void *restrict  pOut 
)

This function is the main execution function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_sqrAdd_exec.

The function uses MMA hardware accelerator to perform the convolution computation. Filter data is loaded into B panel of the MMA from memory using one streaming engine, while the input data is loaded into A vectors of the MMA using the other streaming engine. Result of the compute from MMA C panel is stored into memory using a stream sqrAddress generator.

Parameters
[in]pIn: Pointer to buffer holding the input data
[out]pOut: Pointer to buffer holding the output data
Returns
Status value indicating success or failure. Refer to DSPLIB_STATUS.
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

◆ DSPLIB_sqrAdd_exec_cn()

template<typename dataType >
DSPLIB_STATUS DSPLIB_sqrAdd_exec_cn ( DSPLIB_kernelHandle  handle,
void *restrict  pIn,
void *restrict  pOut 
)

This function is the main execution function for the natural C implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_sqrAdd_exec.

Parameters
[in]handle: Active handle to the kernel
[in]pIn: Pointer to buffer holding the input data
[in]pFilterCoeffPointer to buffer holding the filter coefficient data
[in]pFilterVar: Pointer to buffer holding the filter variable data
[out]pOut: Pointer to buffer holding the output data
Returns
Status value indicating success or failure. Refer to DSPLIB_STATUS.

Definition at line 38 of file DSPLIB_sqrAdd_cn.cpp.

◆ DSPLIB_sqrAdd_init_cn()

DSPLIB_STATUS DSPLIB_sqrAdd_init_cn ( DSPLIB_kernelHandle  handle,
DSPLIB_bufParams2D_t bufParamsIn,
DSPLIB_bufParams2D_t bufParamsOut 
)

This function is the initialization function for the natural C implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_sqrAdd_init.

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.