[SciPy-dev] fft benchmarks, chunked and buffered

Charles R Harris charris208 at attbi.com
Sun May 18 19:53:11 EDT 2003


Hi Pearu,

I went back to the basic rearanged radix 2 fft
and started fooling around with data chunking and
buffering. As a side benifit, the basic routines are now strided, so
multidimensional transforms should be easy.

The cache worked a bit differently than I thought,
and I still don't understand it. However, here are
some results that show improvements are certainly
possible:


      Fast Fourier Transform
================================
           |    complex input  |
--------------------------------
 size      |  scipy  | testing |
--------------------------------
       256 |    2.32 |    2.04  (10000 calls)
       512 |    1.57 |    1.50  (5000 calls)
      1024 |    1.20 |    1.27  (2000 calls)
      2048 |    1.28 |    1.15  (1000 calls)
      4096 |    1.58 |    1.29  (500 calls)
      8192 |    3.39 |    2.24  (200 calls)
     16384 |    5.03 |    3.14  (100 calls)
     32768 |    4.64 |    3.58  (50 calls)
     65536 |    4.75 |    3.71  (20 calls)
    131072 |    5.24 |    3.43  (10 calls)
    262144 |    5.20 |    5.44  (5 calls)
    524288 |    5.43 |    5.21  (2 calls)
   1048576 |    6.12 |    5.37  (1 calls)
.
----------------------------------------------------------------------
Ran 1 tests in 43.943s

Still haven't tried it agaist FFTW, not ready to risk
getting blown away just yet ;)

The code is getting messy, although it produces correct
results. I think I'll put it aside for a bit and do some 
thinking.

Chuck





More information about the SciPy-Dev mailing list