[hpsdr] FFT benchmarking

Philip Covington p.covington at gmail.com
Fri Oct 13 10:43:17 PDT 2006


On 10/13/06, Eric Blossom <eb at comsec.com> wrote:
> On Fri, Oct 13, 2006 at 08:48:34AM -0400, Philip Covington wrote:
> >
> > That the benchmarks were performed by the FFTW team should tell what you
> > need to do.  A search on Google will give you other results performed by
> > truly objective parties that show the difference is much less.
> >
> > Also, I am talking about the Ooura code that is being optimized by the JIT
> > in .NET.  The comparisons that you linked to are statically compiled so I
> > would expect FFTW's hand tuned routines to come out a little better.  The
> > joy of the JIT is that it produces code that rivals hand tuned stuff like in
> > FFTW.
> >
> > Phil N8VB
>
> FYI, FFTW is _machine tuned_.  They have a ton of different "codelets"
> and they are benchmarked on your machine for a given FFT size, stride,
> memory pressure, and other resource constraints do determine what code
> to run.  These codelets include different FFT strategies, such as
> decimation in time, decimation in frequency, mixed radix, etc. that no
> JIT compiler will ever do.
>
> Great paper here: http://www.fftw.org/fftw-paper-ieee.pdf
>
> That said, I have no clue about how any of this stacks up on .NET ;)
>
> Eric K7GNU

I am speaking of how the FFT is used specifically in DttSP related to
PowerSDR.  There is only a small subset of FFT sizes and all are a
power of 2.  This makes it much easier to pick a FFT strategy from
Ooura's stuff.  When I am talking about optimization by the JIT I am
speaking of a specific algorithm picked to solve the same problem FFTW
does in DttSP.  In that case, FFTW and the FFT code based on Ooura's 1
dimension - power of 2 - decimation in frequency - 4,2 radix - in
place - table based - CDFT are a wash performance wise up to 2^16
points.  Since I have hand picked the algorithm, the only thing left
for the JIT to do is make it go fast.  What is impressive about this
to me is that Ooura's code is written in C# and does not use unsafe
code.  Since I get the same performance from the C# code as I do in
using the external FFTW library provided with PowerSDR, the choice is
easy IN THIS PARTICULAR APPLICATION.

Every time I mention this people seem to get all worked up like I am
proposing replacing DttSP or proposing using something else than FFTW.
 I am just reporting an interesting aspect of FFT performance in this
particular application.

Phil N8VB

 1160761397.0


More information about the Hpsdr mailing list