Cooperative Thread Array FFT Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional FFT implementations on processors are computationally intensive and require significant processing power, often limiting their ability to perform large DFTs in real-time, leading to potential quality issues in signal processing due to limited memory bandwidth and throughput.
Innovation Solution
The use of arrays of concurrent threads that can share data to perform Fast Fourier Transform (FFT) computations, where each thread reads and processes input data points, performs butterfly calculations, and stores results in shared or global memory, allowing for reduced latency and increased efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional DFT is implemented on a processor, then the transform can be performed on discrete samples, but the computational complexity is O(N^2) which limits processing power and real-time performance
Solution Approach 1:
The patent divides the N-point DFT computation into multiple smaller sub-DFTs of size N/R, where R is the radix. Each sub-DFT is computed separately and then combined using butterfly operations. This segmentation reduces the overall computational complexity from O(N^2) to O((N/R)^2 * R) = O(N^2/R), providing significant speedup while maintaining accuracy.
2Productivity
If FFT is used to reduce computational operations to O(N log2 N), then processing speed improves, but memory bandwidth requirements and throughput limitations still constrain real-time large DFT performance
Solution Approach 1:
The patent introduces a new dimension of parallelism by implementing multiple independent FFT engines that can simultaneously process different blocks of input data. Each engine operates on its own subset of data, allowing the system to process large DFTs by dividing the input into multiple blocks that are transformed in parallel, thereby reducing the memory bandwidth burden on any single engine while maintaining high overall throughput.
3Productivity
If the processor is configured to perform large DFTs with sufficient processing power, then real-time transformation is achieved, but the ability to perform other operations is limited due to dedicated processing power
Solution Approach 1:
The patent designs the FFT processor with a modular architecture where the same computational resources (ALUs, memory interfaces) can be dynamically allocated to perform FFT operations when needed, and then made available for other signal processing tasks when not in use. The processor can switch between different operational modes (FFT, IFFT, other DSP operations) without requiring dedicated hardware for each function, thereby maintaining versatility while achieving real-time FFT performance when required.
Data Source
AI summary
A linear transform such as a Fast Fourier Transform (FFT) is performed on an input data set having a number of points using one or more arrays of concurrent threads that are capable of sharing data with each other. Each thread of one thread array reads two or more of the points, performs an appropriate “butterfly” calculation to generate two or more new points, then stores the new points in a memory location that is accessible to other threads of the array. Each thread determines which points it is to read based at least in part on a unique thread identifier assigned thereto. Multiple transform stages can be handled by a single thread array, or different levels can be handled by different thread arrays.


