65 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			65 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
|   | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> | ||
|  | <html> | ||
|  | <head><title> | ||
|  | FFTW FAQ - Section 4 | ||
|  | </title> | ||
|  | <link rev="made" href="mailto:fftw@fftw.org"> | ||
|  | <link rel="Contents" href="index.html"> | ||
|  | <link rel="Start" href="index.html"> | ||
|  | <link rel="Next" href="section5.html"><link rel="Previous" href="section3.html"><link rel="Bookmark" title="FFTW FAQ" href="index.html"> | ||
|  | </head><body text="#000000" bgcolor="#FFFFFF"><h1> | ||
|  | FFTW FAQ - Section 4 <br> | ||
|  | Internals of FFTW | ||
|  | </h1> | ||
|  | 
 | ||
|  | <ul> | ||
|  | <li><a href="#howworks" rel=subdocument>Q4.1. How does FFTW work?</a> | ||
|  | <li><a href="#whyfast" rel=subdocument>Q4.2. Why is FFTW so fast?</a> | ||
|  | </ul><hr> | ||
|  | 
 | ||
|  | <h2><A name="howworks"> | ||
|  | Question 4.1.  How does FFTW work? | ||
|  | </A></h2> | ||
|  | 
 | ||
|  | The innovation (if it can be so called) in FFTW consists in having a | ||
|  | variety of composable <i>solvers</i>, representing different FFT algorithms and implementation strategies, whose combination into a | ||
|  | particular <i>plan</i> for a given size can be determined at runtime according to the characteristics of your machine/compiler.  | ||
|  | This peculiar software architecture allows FFTW to adapt itself to | ||
|  | almost any machine.   | ||
|  | <p> | ||
|  | For more details (albeit somewhat outdated), see the paper "FFTW: | ||
|  | An Adaptive Software Architecture for the FFT", by M. Frigo and | ||
|  | S. G. Johnson, <i>Proc. ICASSP</i> 3, 1381 (1998), also available at <A href="http://www.fftw.org">the FFTW web page</A>.   | ||
|  | <h2><A name="whyfast"> | ||
|  | Question 4.2.  Why is FFTW so fast? | ||
|  | </A></h2> | ||
|  | 
 | ||
|  | This is a complex question, and there is no simple answer.  In fact, | ||
|  | the authors do not fully know the answer, either.  In addition to many | ||
|  | small performance hacks throughout FFTW, there are three general | ||
|  | reasons for FFTW's speed.   | ||
|  | <ul> | ||
|  | <li>	FFTW uses a variety of FFT algorithms and implementation styles | ||
|  | that can be arbitrarily composed to adapt itself to | ||
|  | a machine.  See <A href="#howworks">Q4.1 `How does FFTW work?'</A>.   | ||
|  | <li>	FFTW uses a code generator to produce highly-optimized | ||
|  | routines for computing small transforms.  | ||
|  | 
 | ||
|  | <li>	FFTW uses explicit divide-and-conquer to take advantage | ||
|  | of the memory hierarchy.   | ||
|  | </ul> | ||
|  | For more details (albeit somewhat outdated), see the paper "FFTW: | ||
|  | An Adaptive Software Architecture for the FFT", by M. Frigo and | ||
|  | S. G. Johnson, <i>Proc. ICASSP</i> 3, 1381 (1998), available along with other references at | ||
|  | <A href="http://www.fftw.org">the FFTW web page</A>.  <hr> | ||
|  | Next: <a href="section5.html" rel=precedes>Known bugs</a>.<br> | ||
|  | Back: <a href="section3.html" rev=precedes>Using FFTW</a>.<br> | ||
|  | <a href="index.html" rev=subdocument>Return to contents</a>.<p> | ||
|  | <address> | ||
|  | <A href="http://www.fftw.org">Matteo Frigo and Steven G. Johnson</A> / <A href="mailto:fftw@fftw.org">fftw@fftw.org</A> | ||
|  | - 14 September 2021 | ||
|  | </address><br> | ||
|  | Extracted from FFTW Frequently Asked Questions with Answers, | ||
|  | Copyright © 2021 Matteo Frigo and Massachusetts Institute of Technology. | ||
|  | </body></html> |