Pathological FFT sizes


#1

I discovered, rather by accident, that the FFTW planner seems to get its
knickers royally in a twist for certain FFT sizes. The code
d_plan = fftwf_plan_dft_1d (fft_size,
reinterpret_cast<fftwf_complex
*>(d_inbuf),
reinterpret_cast<fftwf_complex
*>(d_outbuf),
forward ? FFTW_FORWARD : FFTW_BACKWARD,
FFTW_MEASURE);

Goes away and computes forever for FFT sizes of 3200000 and 6400000. I
know that FFTW tries to compute
and “optimized” algorithm based on size, etc. I guess that there are
singularities in the optimizer??

I was trying to add various sizes other than {1,2,4,8}M bins, with 3.2M
and 6.4M being obvious intermediate
sizes, which seems to have provoked this problem. I’m running with
FFTW-3.2.


Marcus L.
Principal Investigator, Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org


#2

On Mon, Mar 09, 2009 at 08:53:26PM -0400, Marcus D. Leech wrote:

and “optimized” algorithm based on size, etc. I guess that there are
singularities in the optimizer??

I was trying to add various sizes other than {1,2,4,8}M bins, with 3.2M
and 6.4M being obvious intermediate
sizes, which seems to have provoked this problem. I’m running with
FFTW-3.2.

FFTW (when used with our wrapper) stores the best plans it finds in
the ~/.gr_fftw_wisdom file, and from then on just looks them up.
Since you’re trying new sizes it runs its dynamic-programming based
planner. The search space for giant FFTs is pretty big. It should
only do the big search once for each size. Be patient :slight_smile:

Eric