computation time for 1024 pt complex FFT using MKL_FFT

computation time for 1024 pt complex FFT using MKL_FFT

HI,

i have been evaluating FFT of MKL.while computing , FFT takes approx. 1 milisecond which is too high.

i'm using following part of code to measure time of fft computation.

s_initial=dsecnd();

fft computation;

s_elapsed=dsecnd()-s_initial;

printf("time in milisec=%f",s_elapsed*1000);

can any one tell me how to reduce time compuation time gurther.

i'm using intel processor.

Thanks,

7 post / 0 nuovi
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione

This size FFT *computation* should take on the order of 10 microseconds.
If timing includes the planning/commit time, then it will take longer, of course.
Yet, 1 millisecond is very large.

Dima

Timing such short intervals is impractical in Fortran on Windows. It's possible but ugly to interface with QueryPerformanceCounter (less ugly, call a C function invoking __rdtsc()).
Under linux, I would suggest system_clock with integer(8) arguments.

actually dsecnd() is wrapper for __rdtsc, therefore customer can use this timing routine even for this short intervals too.

Thanks a lot .

Hi,
earlier i was calculating for only one iteration once i increased the no of iteration from one to 100 the calculation time reduced in the order of microsecond. now i get computation time around 0.02 ms(approx) for 1024 pt complex FFT.

Citazione:

rakesh ha scritto:

Hi,
earlier i was calculating for only one iteration once i increased the no of iteration from one to 100 the calculation time reduced in the order of microsecond. now i get computation time around 0.02 ms(approx) for 1024 pt complex FFT.

While measuring time needed to complete 4096 sine values FFT routine I got ~121245 nanoseconds i.e 121 microseconds.Compiler intrinsic __rdtsc() was used and averaged.I hope that time interval needed to complete the FFT calculation was not influenced by the rdtsc latency which is thousand times slower.

Accedere per lasciare un commento.