IP Library Patent Application 12257455
Patent Application
App. No. 12/257,455

COMPUTING DISCRETE FOURIER TRANSFORMS

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
12/257,455
Abstract

A system described herein includes a selector component that receives input data that is desirably transformed by way of a Discrete Fourier Transform, wherein the selector component selects one of a plurality of algorithms for computing the Discrete Fourier Transform from a library based at least in part upon a size of the input function. An evaluator component executes the selected one of the plurality of algorithms to compute the Discrete Fourier Transform, wherein the evaluator component causes leverages shared memory of a processor to compute the Discrete Fourier Transform.

Claims (29)

1 . A system comprising the following computer-executable components:

a selector component that receives input data that is desirably transformed by way of a Discrete Fourier Transform, wherein the selector component selects one of a plurality of algorithms for computing the Discrete Fourier Transform from a library based at least in part upon a size of the input data; and

an evaluator component that executes the selected one of the plurality of algorithms to compute the Discrete Fourier Transform, wherein the evaluator component leverages shared memory of a processor to compute the Discrete Fourier Transform.

2 . The system of claim 1 , wherein the selected one of the plurality of algorithms is global memory algorithm.

3 . The system of claim 2 , wherein the global memory algorithm causes data to be read in from global memory of the processor in contiguous segments and causes intermediate results for computing the Discrete Fourier Transform to be written to global memory in contiguous segments.

4 . The system of claim 1 , wherein the selected one of the plurality of algorithms is a shared memory algorithm.

5 . The system of claim 4 , wherein the shared memory algorithm causes the evaluator component to compute the Discrete Fourier Transform of the input data entirely in shared memory and registers of the processor.

6 . The system of claim 1 , wherein the selected one of the plurality of algorithms is a hierarchical algorithm, wherein the hierarchical algorithm combines at least one transpose operations with a Fast Fourier Transform computation on a Graphical Processing Unit.

7 . The system of claim 1 , wherein the processor is a graphics processing unit.

8 . The system of claim 1 , wherein the processor is a central processing unit.

9 . The system of claim 1 , wherein the processor comprises a multiprocessor, wherein the multiprocessor comprises the shared memory.

10 . The system of claim 1 , wherein the selector component selects the selected one of the plurality of algorithms based at least in part upon characteristics of the processor.

11 . The system of claim 1 , wherein the evaluator component is configured to execute a mixed-radix Discrete Fourier Transform algorithm.

12 . The system of claim 1 , wherein the input data is a non-power of two size and the evaluator component is configured to execute Bluestein's Fast Fourier Transform algorithm.

13 . The system of claim 12 , wherein the evaluator component is configured to employ modular arithmetic in Bluestein's Fast Fourier Transform algorithm to facilitate improving numerical accuracy of the computed Discrete Fourier Transform.

14 . The system of claim 1 , further comprising a conflict component that pads a number of empty values in the shared memory to facilitate reduction of bank conflicts in the shared memory.

15 . A method comprising the following computer-executable acts:

receiving input data that is desirably subject to a Discrete Fourier Transform; and

computing the Discrete Fourier Transform of the input data, wherein the Discrete Fourier Transform is computed through use of shared memory in a graphics processing unit.

16 . The method of claim 15 , further comprising:

using the shared memory to exchange data between threads executing on the graphics processor, wherein the threads are configured to compute at least a portion of the Discrete Fourier Transform on the input data; and

writing intermediate results of the Discrete Fourier Transform to global memory of the graphics processor.

17 . The method of claim 16 , further comprising reading the intermediate results from the global memory for further processing by the threads, wherein the intermediate results are read from contiguous portions of the global memory.

18 . The method of claim 15 , further comprising computing the Discrete Fourier Transform without writing intermediate results to global memory of the graphics processing unit.

19 . The method of claim 15 , further comprising computing the Discrete Fourier Transform by way of a Bluestein FFT algorithm, a multi-dimensional FFT algorithm, and/or a real FFT algorithm

20 . A computer-readable medium comprising instructions that, when executed by a graphics processing unit, perform the following acts:

receiving input data, wherein the input data is desirably subjected to a Discrete Fourier Transform;

selecting an algorithm from a library of Fast Fourier Transform algorithms based at least in part upon size of the input data, number of registers in the graphics processing unit, and size of shared memory in the graphics processing unit; and

using the selected algorithm to compute the Discrete Fourier Transform of the input data, wherein the selected algorithm causes shared memory of the graphics processing unit to be leveraged when computing the Discrete Fourier Transform.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034766/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2009
From: GOVINDARAJU, NAGA; LLOYD, DAVID B.; DOTSENKO, YURI; SMITH, BURTON J.; MANFERDELLI, JOHN L.
To: MICROSOFT CORPORATION
Reel/Frame 023064/0957 →