Application level threading of 2D DFT

Application level threading of 2D DFT

I am using IPP 7.0 to write some code that will perform a series of 2D image filtering operations on images of various sizes (mostly 128 by 128). I have two versions of the code: one that leaves the threading up to IPP (internal to the DFT call, for example), and another in which I handle the threading myself at the application level.I have found that the IPP threading does notprovide any significant speedupfor the small sizedDFT operations (like 128 by 128) and so I really want to use application level threading. When Ido this, however,the final images are not correct. If I run the two threads serially, things work fine, but when I run them in parallel the result is wrong. I suspect that I need to provide more information than what I have provided, but I'm not sure what ype of information would be most useful. The IPP functions I am using are as follows:

ippiDFTFwd_RToPack_32f_C1IR
ippsRealToCplx_32f
ippiCplxExtendToPack_32fc32f_C1R
ippiMulPack_32f_C1IR
ippiDFTInv_PackToR_32f_C1IR

I tried simplifying the code somewhat by just doing the DFT, then zeroing out the DC component and then doing the InvDFT. I still got the same result (twothreads running in parallel give the wrong answer, while two threads running serially give the correct answer). In this simple case, the only IPP functions I use are as follows:

ippiDFTFwd_RToPack_32f_C1IR
ippiDFTInv_PackToR_32f_C1IR

Please let me know what other information I can provide that might help in diagnosing this.

Thanks for your help!

5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Nevermind... it was my error. I think I have it working correctly now.

Hi,
How to create native thread in application using IPP.could you please share example which you have done for 2D DFT

Regards,
rama

Quoting Rama Krishna
Hi,
How to create native thread in application using IPP.could you please share example which you have done for 2D DFT

Regards,
rama

I don't think your question is clear. If it is about IPP, there is a forum specifically for that. If it is about Windows or linux threading, the forum for the compiler you intend to use might be appropriate.

Please try to link IPP with the non-threaded version and check how it will work.--Gennady

Leave a Comment

Please sign in to add a comment. Not a member? Join today