Intel® Integrated Performance Primitives
Community support and discussions relating to developing high-performance vision, signal, security, and storage applications.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

About IppFFT and cilk_spawn

Ha_Duy_Tuan
Beginner
102 Views

Hi all,

I have the method using ippiFFT to perform forward and inverse FFT of an Image. This method calls ippiFFT 3 times.

I try apply cilk_spawn with purpose improve performance of FFT processing, but processing time of method with cilk_pawn is slower than method without cilk_spawn.

I don't known what the problem is. Does anyone have experience about it?

I also attach example code.

Best regards,

Ha Duy Tuan

0 Kudos
4 Replies
SergeyKostrov
Valued Contributor II
102 Views
>>...I try apply cilk_spawn with purpose improve performance of FFT processing, but processing time of method >>with cilk_pawn is slower than method without cilk_spawn. >> >>I don't known what the problem is. Does anyone have experience about it? I did a quick review of your source codes and all FFT functions from IPP library you use are internally threaded. So, you're dealing with some kind of double-threading and use Windows Task Manager for a verification of how many threads are actually created. Take a look at ThreadedFunctionsList.txt in a documentation folder of Intel Parallel Studio XE.
Ha_Duy_Tuan
Beginner
102 Views

Hi Sergey

Thanks for your answer.

It mean that if a method is internally threaded method, we cannot apply more parallel such as cilk_pawn?

SergeyKostrov
Valued Contributor II
102 Views
>>...It mean that if a method is internally threaded method, we cannot apply more parallel such as cilk_pawn? I think you can when ippSetNumThreads( 1 ) is called but you need to verify if there Is a performance improvement when it is used with Cilk. If there is No then just use a threaded IPP function with ippSetNumThreads( SomeNumberOfThreads ) without Cilk. Also, please take into account that internal threading has to be removed in some next ( future ) release of IPP. So, in that case all your efforts with Cilk will be paid off.
Gennady_F_Intel
Moderator
102 Views

yes, ippiFFTInv_CToC_32fc_C1IR is internally threaded and therefore you need to set ippSetNumThreads(1) like Sergey recomended, or link your application with serial version on IPP ( ipp*_l.libs)

Reply