[Numpy-discussion] numpy FFT memory accumulation

Ray Schumacher subscriber100@rjs....
Fri Nov 2 09:43:46 CDT 2007

At 10:57 PM 11/1/2007, Charles R Harris wrote:
> > An additional complication is that I pass the numpy (or Numeric)
> > array address to the ctypes library call so that the data is placed
> > directly into the array from the call. I use the if/else end wrap
> > logic to determine whether I need to do a split and copy if the new
> > data wraps.
>OK. Hmm, I wonder if you would lose much by taking a straight forward
>radix-2 fft and teaching it to use modular indices? Probably not worth the
>trouble, but an fft tailored to a  ring buffer might be useful for other

The problem is, I once compiled my own FFT dll to call from Python 
and it was 2x slower than FFTPACK - I'm not math-smart enough to make 
all of the caching and numerical shortcuts.  That, and Intel's 
optimized FFT is 3x faster than FFTPACK...
I may still try to do a "zoom/range FFT" which does not compute all 
bins, and maybe only with a sine transform, which (I think) should be 
sufficient to determine peak real frequency and maybe use fewer cycles.

>Probably the easiest thing is to just copy the ring buffer out into
>a linear array.

I do that for the buffer-wrap condition, while simply assigning a 
slice (no copy) to the temp array otherwise.

> > I used Numeric functions for the ~40% speed increase, but I don't
>I know that numarray was slow in creating small arrays, but is Numpy 
>really that bad compared to Numeric?

I just saw the # of FFTs/sec go from 390 to 550 just by switching 
numpy to Numeric (Intel Core Duo). Add a timer to my previous code 
posts and see how your results look. For the mega-arrays a lot of the 
numpy developers work with it is much faster, and I now find Numeric 
is lacking many other niceties, like frombuffer().


No virus found in this outgoing message.
Checked by AVG Free Edition. 
Version: 7.5.503 / Virus Database: 269.15.18/1104 - Release Date: 11/1/2007 6:47 PM

More information about the Numpy-discussion mailing list