Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
8 Views

Use of Out-of-place FFT functions instead of In-place ones

Hello, we encountered some problems of memory corruption in a signal processing multithreaded application using IPP 5.1. At the output of the ippsFFTFwd_CToC_32fc->ippsFFTInv_CToC_32fc processing, data are randomly corrupted and don't corresponds to expected result.. This problem happens about once in about 3000 processings ! I've noticed that the ippsFFTInv_CToC_32fc is used as In-place operation with pDest = pSrc, instead of use of ippsFFTInv_CToC_32fc_I. Do you think that it could be the source of the problem ? I dont know if it is possible to use Out-of-place primitives for In-place operations... Could you help me please ?
Thanks per advance for your help ...
Regards
0 Kudos
3 Replies
Highlighted
Employee
8 Views


Hello,

It needs to use in-place function if source and destination have the same address. The out-of-place primitives could not guarantee the correct result if the input and output memory are overlapped.

Btw, 5.1 looks pretty old version. If possible, you can update to new version of IPP, to get additional performance on new processors.

Thanks,
Chao

0 Kudos
Highlighted
Beginner
8 Views

Hello, thanks a lot for your help !! I implemented the use of in-place functions but unfortunately the bug is still there ... After investigation, we noticed that the data are corrupted when the used input buffer is at an address of something like 0x7FFFyyyy. The processing is a 4096 (0x1000) FFT size, that means that the processed data are stored accross the 0x8000zzzz address, that can be considered as a signed integer ! We are going to test a work around using a temporary input buffer at an other address to confirm the origin of the problem.
We are waiting for the last revision of IPP to see if it can fix this ...
Thanks again for your help
0 Kudos
Highlighted
Employee
8 Views


Hi,

IPP 7.0 is released. You can checkhow it works for you. If you still see any problem, could you provide some test code that can show this problem? It will help resolve the problem quickly.

Thanks,
Chao

0 Kudos