[PD-dev] fftw in vanilla pd (was Re: PD-cvs Digest, Vol 16, Issue 4)

Frank Barknecht fbar at footils.org
Mon Jun 19 22:43:56 CEST 2006


Hallo,
Mathieu Bouchard hat gesagt: // Mathieu Bouchard wrote:

> On Fri, 16 Jun 2006, geiger wrote:
> >On Fri, 16 Jun 2006, Miller Puckette wrote:
> >>No... my fftw stub doesn't work!  I designed the fft-plugin setup for 
> >>FFTW2
> >>only to discover that they changed the API entirely since then, and now am
> >>wondering if they're stable enough to try to support.
> >Might be nice to have the stub anyhow, when looking for an FFT that
> >supports fixed-point, I stumbled over this:
> >http://kissfft.sourceforge.net/
> >(also supports floating point)
> 
> For the rest of us, how does kissfft in _floating_-point mode compare with 
> FFTW3 ?

Quoting the kiss_fft readme: 

BACKGROUND:
    
    I started coding this because I couldn't find a fixed point FFT that didn't
use assembly code.  I started with floating point numbers so I could get the
theory straight before working on fixed point issues.  In the end, I had a
little bit of code that could be recompiled easily to do ffts with short, float
or double (other types should be easy too).

    Once I got my FFT working, I was curious about the speed compared to
a well respected and highly optimized fft library.  I don't want to criticize
this great library, so let's call it FFT_BRANDX.
During this process, I learned:

    1. FFT_BRANDX has more than 100K lines of code. The core of kiss_fft is about 500 lines (cpx 1-d
).  
    2. It took me an embarrassingly long time to get FFT_BRANDX working.
    3. A simple program using FFT_BRANDX is 522KB. A similar program using kiss_fft is 18KB.
    4. FFT_BRANDX is roughly twice as fast as KISS FFT in default mode.

    It is wonderful that free, highly optimized libraries like FFT_BRANDX exist.
But such libraries carry a huge burden of complexity necessary to extract every
last bit of performance.

    Sometimes simpler is better, even if it's not better.

Ciao
-- 
 Frank Barknecht                 _ ______footils.org_ __goto10.org__




More information about the Pd-dev mailing list