[Scipy-tickets] [SciPy] #189: Add support for p4fftwgel - extremly fast fft for Intel P4

SciPy scipy-tickets@scipy....
Tue Jul 31 23:22:04 CDT 2007


#189: Add support for p4fftwgel - extremly fast fft for Intel P4
---------------------------+------------------------------------------------
 Reporter:  pearu          |        Owner:  pearu
     Type:  enhancement    |       Status:  new  
 Priority:  normal         |    Milestone:       
Component:  scipy.fftpack  |      Version:       
 Severity:  normal         |   Resolution:       
 Keywords:                 |  
---------------------------+------------------------------------------------
Comment (by stevenj):

 Hi, I'm one of the FFTW authors.

 First, fftw2gel should have no performance advantage over FFTW3 that I
 know of.

 Second, the best thing to do is to modify NumPy to allocate 16-byte-
 aligned arrays.  Failing that, you could create two plans: one for aligned
 data, and one created with the FFTW_UNALIGNED flag which tells the plan
 not to depend on alignment (which will prevent it from using most SIMD
 optimizations).

 Third, you definitely shouldn't copy to a buffer before doing the FFT;
 this will kill the performance.  Instead, use fftw_execute_dft(plan, in,
 out) and similar functions described in the guru section of the FFTW
 manual to apply a given plan to a new array (except that you need to match
 the alignment mod 16 or use an FFTW_UNALIGNED plan!).  This has nothing to
 do with whether you use the guru planner interface.

 Fourth, if you want to use FFTW_MEASURE or FFTW_PATIENT and don't want to
 overwrite any user array, you should just create the plan using a buffer
 the first time.  Of course, you need to give the user the option to use
 FFTW_ESTIMATE (which should probably be the default) since if the user is
 computing only a few FFTs they won't want to pay the large start-up cost
 of creating an FFTW_MEASURE or FFTW_PATIENT plan.

-- 
Ticket URL: <http://projects.scipy.org/scipy/scipy/ticket/189#comment:4>
SciPy <http://www.scipy.org/>
SciPy is open-source software for mathematics, science, and engineering.


More information about the Scipy-tickets mailing list