General Fourier Transform Library for Arbitrary GPU Data Sizes

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImproveFFT computation performanceVSAvoidGPU hardware compatibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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

Engineering Contradiction:
ImproveGPU vendor compatibilityVSAvoidFFT processing capability
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If real data is processed directly, then data type flexibility is improved, but computational efficiency deteriorates

Engineering Contradiction:
Improvedata type supportVSAvoidcomputation speed
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9342486B2Fast computation of general fourier transforms on graphics processing units
Publication Date: 2016.05.17 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9342486B2 patent drawing
  • US9342486B2 patent drawing
  • US9342486B2 patent drawing

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.