DSPRelated.com
Forums

FFTW velocity

Started by m.baldasseroni November 23, 2006
Hi, I'm using FFTW.
First of all I inform you that I have overcome my "Altivec assist"
problem through a modification of simd-altivec.h.
In particular I have defined

#define VLITF(x0, x1, x2, x3) (vector float)(x0, x1, x2, x3)
#define VLITUI(x0, x1, x2, x3) (vector unsigned int)(x0, x1, x2, x3)

and I have used VLITF or VLITUI on the two cases of "float" and
"unsigned int" data.
Now I'm using FFTW on PowerPC processor.
I have compare values returned by "FFTW" and "FFTComplex" and
there is coherence.
I have measure the velocity of FFTW but it is very slow. In particular
for a fft of length 1024 the time results are:

FFTW : 38.6 ns
FFTComplex: 18.6 ns

I have tried all methods of fftw (Measure, Estimate, Patient and
Exaustive) but the velocity is the same.
I have tried "fftwf_set_timelimit" with different values of
"seconds" but the result is the same.

I'm disappointed about the obtained results.
Have you got any suggests to improve the FFTW's velocity?

Thanks
Massimo

m.baldasseroni wrote:
> I have measure the velocity of FFTW but it is very slow. In particular > for a fft of length 1024 the time results are: > > FFTW : 38.6 ns > FFTComplex: 18.6 ns
I assume you mean microseconds, not nanoseconds. You don't really provide enough information to help you, but I would suggest checking www.fftw.org/speed to see whether your results are in line with our own benchmarks on PowerPC (andl also questions 3.3 and 3.4 in the FFTW FAQ). For complex data, FFTW is comparable to Apple's vDSP library, so I'd be surprised if there were another Altivec FFT that were better by a factor of two. You might also try create plans with and without FFTW_NO_SIMD to disable the SIMD; if this doesn't make a big difference in the speed, then you didn't enable Altivec correctly. Good luck, Steven G. Johnson PS. You mean "speed", not "velocity". These are not synonyms in this context.
stevenj@alum.mit.edu schrieb:

...

> PS. You mean "speed", not "velocity". These are not synonyms in this > context.
I think one can measure the velocity of FFTW once Massimo has finally lost his patience and throws his computer out of the window :-).