DSPLIB User Guide
DSPLIB_min_priv.h File Reference

Introduction

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

Definition in file DSPLIB_min_priv.h.

Go to the source code of this file.

Data Structures

struct  DSPLIB_min_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 DSPLIB_MIN_IXX_IXX_OXX_PBLOCK_SIZE   (2 * SE_PARAM_SIZE + 1 * DSPLIB_PARAM_SIZE + 2 * sizeof(int32_t))
 Macro to define the size of bufPblock array of DSPLIB_min_PrivArgs structure. More...
 

Typedefs

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

Functions

template<typename dataType >
DSPLIB_STATUS DSPLIB_min_init_ci (DSPLIB_kernelHandle handle, const DSPLIB_bufParams1D_t *bufParamsIn, const DSPLIB_bufParams1D_t *bufParamsOut, const DSPLIB_min_InitArgs *pKerInitArgs)
 This function is the initialization function for the C7x implementation of the kernel. The function declaration conforms to the declaration of DSPLIB_min_init. More...
 
template<typename dataType , int32_t dataIn>
DSPLIB_STATUS DSPLIB_min_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_min_exec. More...
 
template<typename dataType , int32_t dataIn>
DSPLIB_STATUS DSPLIB_min_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_min_exec. More...
 
template<typename T , typename vec >
vec DSPLIB_min_loopLogic (size_t length, size_t width, T *pSrc)
 This function is the kernel loop helper function for the optimized implementation of the kernel. The function is called within DSPLIB_min_exec_ci and this method performs the loops needed to calculate the vector containing all of the minimum values. More...
 

Macro Definition Documentation

◆ SE_PARAM_BASE

#define SE_PARAM_BASE   (0x0000)

Definition at line 37 of file DSPLIB_min_priv.h.

◆ SE_SE0_PARAM_OFFSET

#define SE_SE0_PARAM_OFFSET   (SE_PARAM_BASE)

Definition at line 38 of file DSPLIB_min_priv.h.

◆ SE_SE1_PARAM_OFFSET

#define SE_SE1_PARAM_OFFSET   (SE_SE0_PARAM_OFFSET + SE_PARAM_SIZE)

Definition at line 39 of file DSPLIB_min_priv.h.

◆ DSPLIB_MIN_IXX_IXX_OXX_PBLOCK_SIZE

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

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

Definition at line 46 of file DSPLIB_min_priv.h.

Typedef Documentation

◆ pFxnDSPLIB_min_exec

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

This is a function pointer type that conforms to the declaration of DSPLIB_min_exec_ci and DSPLIB_min_exec_cn.

Definition at line 53 of file DSPLIB_min_priv.h.

Function Documentation

◆ DSPLIB_min_init_ci()

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

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

This function determines the configuration for the streaming engine and MMA hardware resources based on the function call parameters, and the configuration is saved in bufPBlock array. In the kernel call sequence, DSPLIB_min_exec_ci would be called later independently by the application. When DSPLIB_min_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_min_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 55 of file DSPLIB_min_ci.cpp.

◆ DSPLIB_min_exec_ci()

template<typename dataType , int32_t dataIn>
DSPLIB_STATUS DSPLIB_min_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_min_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 minress 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 218 of file DSPLIB_min_ci.cpp.

◆ DSPLIB_min_exec_cn()

template<typename dataType , int32_t dataIn>
DSPLIB_STATUS DSPLIB_min_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_min_exec.

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.

Definition at line 32 of file DSPLIB_min_cn.cpp.

◆ DSPLIB_min_loopLogic()

template<typename T , typename vec >
vec DSPLIB_min_loopLogic ( size_t  length,
size_t  width,
T *  pSrc 
)

This function is the kernel loop helper function for the optimized implementation of the kernel. The function is called within DSPLIB_min_exec_ci and this method performs the loops needed to calculate the vector containing all of the minimum values.

Parameters
[in]length: length of the input buffer
[in]width: width of one SIMD buffer
[out]pSrc: Pointer to buffer holding the input buffer
Returns
Vector containing all minimum values.

Definition at line 552 of file DSPLIB_min_ci.cpp.