Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

IPP 5.1.1 FFT Performance Core Duo / Core2Duo

perez
Beginner
375 Views
Hi,

I have made some benchmark on the Core2Duo and I use for that the IPP 5.1.1 which is optimized for Core2Duo. I use the FFT complex-to-complex simple-precision in-place (ippsFFTFwd_CToC_32fc_I).
And I observe strange results :
For size (power of 2) 64 to 1024, the performance are really incredible (8-9 GFlops on a Core2Duo 2GHz), twice the performance of the same benchmark on Core Duo (2GHz) which prooves the improvement made in the SSE by Intel.
But starting at size 2048, the performances are degraded ... two times lower than the Core2Duo, it falls at 2GFlops on the same Core2Duo 2GHz ... While the same benchmark is linear on the CoreDuo, it seems to have a problem on the Core2Duo optimized FFT algorithm.

(The only one differences between the two benchmarks is one is made on Linux (CoreDuo) and the other on MacOSX (Core2Duo) but it the same version of Library and the same frequency used ...)

Can anyone confirm and explain that ?

Other constat, it seems that the use of the buffer in the FFT causes a "segmentation error" since the last IPP Library 5.1.1. Before that version, no problem with the use of the buffer ...

Thanks,

JP.
0 Kudos
2 Replies
Vladimir_Dudnik
Employee
375 Views

Hello,

our expert comment is:

we do not see performance degradation on length 2048 in our internal performance testing.

If you apply NULL for the buffer pointer, IPP function will allocate and free internal buffers and time spent for these operations is OS dependent, so it might a reason.

Expert also asked how do you process "segmentation error", how you calculate needed buffer size and how do you allocate that memory (alignment can speed things up)

Regards,
Vladimir

0 Kudos
perez
Beginner
375 Views
Hello,

It is really OS dependant without buffer use.

I have also no performance degradation with use of the buffer.

My "segmentation fault" problem with the buffer came from a wrong declaration and use of pSize parameter from I.

Thanks,

JP.
0 Kudos
Reply