![]() |
FFTLIB User Guide
|
Kernel for computing DFT using brute-force matrix multiplication for number of points greater than what can be handled by FFTLIB_FFT_dftSmall_ixX_cxX_oxX. brute-force matrix multiplication.
Data Structures | |
| struct | FFTLIB_FFT_dftLarge_ixX_cxX_oxX_InitArgs |
| Structure containing the parameters for DFT computation. More... | |
Functions | |
| int32_t | FFTLIB_FFT_dftLarge_ixX_cxX_oxX_getHandleSize (FFTLIB_FFT_dftLarge_ixX_cxX_oxX_InitArgs *pKerInitArgs) |
| This is a query function to calculate the size of internal handle. More... | |
| FFTLIB_STATUS | FFTLIB_FFT_dftLarge_ixX_cxX_oxX_getSizes (const FFTLIB_FFT_dftLarge_ixX_cxX_oxX_InitArgs *pKerInitArgs, FFTLIB_bufParams1D_t *bufParamsX, FFTLIB_bufParams1D_t *bufParamsW, FFTLIB_bufParams1D_t *bufParamsY) |
| This is a query function to calculate the sizes of input, output and the DFT computational matrix buffers. More... | |
| FFTLIB_STATUS | FFTLIB_FFT_dftLarge_ixX_cxX_oxX_twGen (const FFTLIB_FFT_dftLarge_ixX_cxX_oxX_InitArgs *pKerInitArgs, void *pW, const FFTLIB_bufParams1D_t *bufParamsW) |
| This is a utility function that generates the DFT computational matrix into the provided buffer. More... | |
| FFTLIB_STATUS | FFTLIB_FFT_dftLarge_ixX_cxX_oxX_init (FFTLIB_kernelHandle handle, const FFTLIB_bufParams1D_t *bufParamsX, const FFTLIB_bufParams1D_t *bufParamsW, const FFTLIB_bufParams1D_t *bufParamsY, const FFTLIB_FFT_dftLarge_ixX_cxX_oxX_InitArgs *pKerInitArgs) |
| This function should be called before the FFTLIB_FFT_dftLarge_ixX_cxX_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... | |
| FFTLIB_STATUS | FFTLIB_FFT_dftLarge_ixX_cxX_oxX_init_checkParams (FFTLIB_kernelHandle handle, const FFTLIB_bufParams1D_t *bufParamsX, const FFTLIB_bufParams1D_t *bufParamsW, const FFTLIB_bufParams1D_t *bufParamsY, const FFTLIB_FFT_dftLarge_ixX_cxX_oxX_InitArgs *pKerInitArgs) |
| This function checks the validity of the parameters passed to FFTLIB_FFT_dftLarge_ixX_cxX_oxX_init function. This function is called with the same parameters as the FFTLIB_FFT_dftLarge_ixX_cxX_oxX_init, and this function must be called before the FFTLIB_FFT_dftLarge_ixX_cxX_oxX_init is called. More... | |
| FFTLIB_STATUS | FFTLIB_FFT_dftLarge_ixX_cxX_oxX_exec (FFTLIB_kernelHandle handle, const void *restrict pX, const void *restrict pW, void *restrict pY) |
| This function is the main kernel compute function. More... | |
| FFTLIB_STATUS | FFTLIB_FFT_dftLarge_ixX_cxX_oxX_exec_checkParams (FFTLIB_kernelHandle handle, const void *restrict pX, const void *restrict pW, const void *restrict pY) |
| This function checks the validity of the parameters passed to FFTLIB_FFT_dftLarge_ixX_cxX_oxX_exec function. This function is called with the same parameters as the FFTLIB_FFT_dftLarge_ixX_cxX_oxX_exec, and this function must be called before the FFTLIB_FFT_dftLarge_ixX_cxX_oxX_exec is called. More... | |
| void | FFTLIB_FFT_dftLarge_ixX_cxX_oxX_perfEst (FFTLIB_kernelHandle handle, const FFTLIB_bufParams1D_t *bufParamsX, const FFTLIB_bufParams1D_t *bufParamsY, const FFTLIB_bufParams1D_t *bufParamsW, uint32_t fftSize, uint32_t batchSize, uint64_t *archCycles, uint64_t *estCycles) |
| This is a utility function that gives an estimate of the cycles consumed for the kernel execution. More... | |
Macros | |
| #define | FFTLIB_FFT_DFTLARGE_IXX_CXX_OXX_NUMSHIFTS 1 |
| Macro to define the number of bit-shifts that are to be provided for use in the internal DFT computation. More... | |
| #define FFTLIB_FFT_DFTLARGE_IXX_CXX_OXX_NUMSHIFTS 1 |
Macro to define the number of bit-shifts that are to be provided for use in the internal DFT computation.
The number of bit-shifts depends on the number of stages of computation. This kernel has only one stage of computation.
Definition at line 113 of file FFTLIB_FFT_dftLarge_ixX_cxX_oxX.h.
| int32_t FFTLIB_FFT_dftLarge_ixX_cxX_oxX_getHandleSize | ( | FFTLIB_FFT_dftLarge_ixX_cxX_oxX_InitArgs * | pKerInitArgs | ) |
This is a query function to calculate the size of internal handle.
| [in] | pKerInitArgs | : Pointer to structure holding init parameters |
Definition at line 25 of file FFTLIB_FFT_dftLarge_ixX_cxX_oxX.cpp.
| FFTLIB_STATUS FFTLIB_FFT_dftLarge_ixX_cxX_oxX_getSizes | ( | const FFTLIB_FFT_dftLarge_ixX_cxX_oxX_InitArgs * | pKerInitArgs, |
| FFTLIB_bufParams1D_t * | bufParamsX, | ||
| FFTLIB_bufParams1D_t * | bufParamsW, | ||
| FFTLIB_bufParams1D_t * | bufParamsY | ||
| ) |
This is a query function to calculate the sizes of input, output and the DFT computational matrix buffers.
| [in] | pKerInitArgs | : Pointer to the structure holding init parameters |
| [in] | bufParamsX | : Pointer to the structure containing dimensional information of input buffer |
| [in] | bufParamsW | : Pointer to the structure containing dimensional information of DFT computational matrix buffer |
| [in] | bufParamsY | : Pointer to the structure containing dimensional information of ouput buffer |
Definition at line 97 of file FFTLIB_FFT_dftLarge_ixX_cxX_oxX_ci.cpp.
| FFTLIB_STATUS FFTLIB_FFT_dftLarge_ixX_cxX_oxX_twGen | ( | const FFTLIB_FFT_dftLarge_ixX_cxX_oxX_InitArgs * | pKerInitArgs, |
| void * | pW, | ||
| const FFTLIB_bufParams1D_t * | bufParamsW | ||
| ) |
This is a utility function that generates the DFT computational matrix into the provided buffer.
| [in] | pKerInitArgs | : Pointer to the structure holding init parameters |
| [in] | pW | : Pointer to the buffer where the DFT computational matrix is generated into. |
| [in] | bufParamsW | : Pointer to the structure containing dimensional information of DFT computational matrix buffer |
Definition at line 138 of file FFTLIB_FFT_dftLarge_ixX_cxX_oxX.cpp.
| FFTLIB_STATUS FFTLIB_FFT_dftLarge_ixX_cxX_oxX_init | ( | FFTLIB_kernelHandle | handle, |
| const FFTLIB_bufParams1D_t * | bufParamsX, | ||
| const FFTLIB_bufParams1D_t * | bufParamsW, | ||
| const FFTLIB_bufParams1D_t * | bufParamsY, | ||
| const FFTLIB_FFT_dftLarge_ixX_cxX_oxX_InitArgs * | pKerInitArgs | ||
| ) |
This function should be called before the FFTLIB_FFT_dftLarge_ixX_cxX_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.
| [in] | handle | : Active handle to the kernel |
| [in] | bufParamsX | : Pointer to the structure containing dimensional information of input buffer |
| [in] | bufParamsW | : Pointer to the structure containing dimensional information of DFT computational matrix buffer |
| [out] | bufParamsY | : Pointer to the structure containing dimensional information of ouput buffer |
| [in] | pKerInitArgs | : Pointer to the structure holding init parameters |
Definition at line 160 of file FFTLIB_FFT_dftLarge_ixX_cxX_oxX.cpp.
| FFTLIB_STATUS FFTLIB_FFT_dftLarge_ixX_cxX_oxX_init_checkParams | ( | FFTLIB_kernelHandle | handle, |
| const FFTLIB_bufParams1D_t * | bufParamsX, | ||
| const FFTLIB_bufParams1D_t * | bufParamsW, | ||
| const FFTLIB_bufParams1D_t * | bufParamsY, | ||
| const FFTLIB_FFT_dftLarge_ixX_cxX_oxX_InitArgs * | pKerInitArgs | ||
| ) |
This function checks the validity of the parameters passed to FFTLIB_FFT_dftLarge_ixX_cxX_oxX_init function. This function is called with the same parameters as the FFTLIB_FFT_dftLarge_ixX_cxX_oxX_init, and this function must be called before the FFTLIB_FFT_dftLarge_ixX_cxX_oxX_init is called.
| [in] | handle | : Active handle to the kernel |
| [in] | bufParamsX | : Pointer to the structure containing dimensional information of input buffer |
| [in] | bufParamsW | : Pointer to the structure containing dimensional information of DFT computational matrix |
| [out] | bufParamsY | : Pointer to the structure containing dimensional information of output buffer |
| [in] | pKerInitArgs | : Pointer to the structure holding init parameters |
Definition at line 32 of file FFTLIB_FFT_dftLarge_ixX_cxX_oxX.cpp.
| FFTLIB_STATUS FFTLIB_FFT_dftLarge_ixX_cxX_oxX_exec | ( | FFTLIB_kernelHandle | handle, |
| const void *restrict | pX, | ||
| const void *restrict | pW, | ||
| void *restrict | pY | ||
| ) |
This function is the main kernel compute function.
Please refer to details under FFTLIB_FFT_dftLarge_ixX_cxX_oxX
| [in] | handle | : Active handle to the kernel |
| [in] | pX | : Pointer to buffer holding the input data |
| [in] | pW | : Pointer to buffer holding the DFT computational matrix |
| [out] | pY | : Pointer to buffer holding the output data |
Definition at line 195 of file FFTLIB_FFT_dftLarge_ixX_cxX_oxX.cpp.
| FFTLIB_STATUS FFTLIB_FFT_dftLarge_ixX_cxX_oxX_exec_checkParams | ( | FFTLIB_kernelHandle | handle, |
| const void *restrict | pX, | ||
| const void *restrict | pW, | ||
| const void *restrict | pY | ||
| ) |
This function checks the validity of the parameters passed to FFTLIB_FFT_dftLarge_ixX_cxX_oxX_exec function. This function is called with the same parameters as the FFTLIB_FFT_dftLarge_ixX_cxX_oxX_exec, and this function must be called before the FFTLIB_FFT_dftLarge_ixX_cxX_oxX_exec is called.
| [in] | handle | : Active handle to the kernel |
| [in] | pX | : Pointer to buffer holding the input data |
| [in] | pW | : Pointer to buffer holding the DFT computational matrix |
| [out] | pY | : Pointer to buffer holding the output matrix |
Definition at line 96 of file FFTLIB_FFT_dftLarge_ixX_cxX_oxX.cpp.
| void FFTLIB_FFT_dftLarge_ixX_cxX_oxX_perfEst | ( | FFTLIB_kernelHandle | handle, |
| const FFTLIB_bufParams1D_t * | bufParamsX, | ||
| const FFTLIB_bufParams1D_t * | bufParamsY, | ||
| const FFTLIB_bufParams1D_t * | bufParamsW, | ||
| uint32_t | fftSize, | ||
| uint32_t | batchSize, | ||
| uint64_t * | archCycles, | ||
| uint64_t * | estCycles | ||
| ) |
This is a utility function that gives an estimate of the cycles consumed for the kernel execution.
| [in] | handle | : Active handle to the kernel |
| [in] | bufParamsX | : Pointer to the structure containing dimensional information of pX |
| [in] | bufParamsY | : Pointer to the structure containing dimensional information of pY |
| [in] | bufParamsW | : Pointer to the structure containing dimensional information of pW |
| [in] | fftSize | : Size of each channel's data in terms of number of complex points |
| [in] | batchSize | : Size of the batch in terms of number of channels of DFT's |
| [out] | archCycles | : Cycles estimated for the compute, startup and teardown |
| [out] | estCycles | : Cycles estimated for the compute, startup, teardown and any associated overhead |
Definition at line 53 of file FFTLIB_FFT_dftLarge_ixX_cxX_oxX_ci.cpp.