General Fourier Transform Library for Arbitrary GPU Data Sizes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing FFT libraries for GPUs are limited to specific hardware, restricted to processing sizes that are a power of two, and lack general functionality to handle one-dimensional and two-dimensional data of arbitrary size, particularly for real and complex data types.
Innovation Solution
A general Fourier transform library that performs fast Fourier transforms on programmable GPUs using standard graphics APIs like DirectX, capable of handling data of arbitrary size by packing real data into complex sequences and employing algorithms such as the radix-2 Stockham and Bluestein z-chirp algorithms for efficient computation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If FFT libraries are written in vendor-specific programming interfaces like CUDA, then performance and functionality are improved, but hardware compatibility deteriorates
Solution Approach 1:
The patent implements FFT functionality across multiple GPU vendors and programming interfaces (CUDA, OpenGL, DirectX) through a universal architecture. The system maintains vendor-specific optimized kernels while providing a unified high-level interface, allowing the same FFT library to achieve high performance on NVIDIA, ATI, and Intel GPUs without requiring separate implementations for each vendor.
2Adaptability or versatility
If FFT implementations use high-level shading languages for cross-platform support, then hardware compatibility is improved, but processing capability deteriorates due to power-of-two size restriction
Solution Approach 1:
The patent segments the FFT processing into two distinct parts: a vendor-specific optimized kernel layer that handles arbitrary-sized transforms, and a unified high-level interface layer that provides cross-platform compatibility. This segmentation allows each layer to specialize - the kernels achieve maximum performance for any input size while the interface maintains portability across CUDA, OpenGL, and DirectX platforms.
Solution Approach 2:
The patent introduces an intermediary layer that translates between the unified high-level API and vendor-specific optimized kernels. This mediator handles the complexity of vendor-specific optimizations while presenting a consistent interface to users, eliminating the power-of-two restriction by routing arbitrary-sized transforms through appropriate vendor-specific kernels that support general sizes.
3Adaptability or versatility
If real data is processed directly, then data type flexibility is improved, but computational efficiency deteriorates
Solution Approach 1:
The patent merges multiple real data sequences into a single complex data sequence for processing. By packing two real sequences (x and y) into one complex sequence (z = x + iy), the system can process them simultaneously using efficient complex FFT algorithms, then unpack the results to obtain the transforms of both original real sequences. This combining approach doubles the processing efficiency while maintaining full support for real data types.
Data Source
AI summary
Described is a technology for use with general discrete Fourier transforms (DFTs) performed on a graphics processing unit (GPU). The technology is implemented in a general library accessed through GPU-independent APIs. The library handles complex and real data of any size, including for non-power-of-two data sizes. In one implementation, the radix-2 Stockham formulation of the fast Fourier transform (FFT) is used to avoid computationally expensive bit reversals. For non-power of two data sizes, a Bluestein z-chirp algorithm may be used.


