About IppFFT and cilk_spawn

About IppFFT and cilk_spawn

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

AnexoTamanho
Download fftcilk-spawn-sample.zip9.23 KB
5 posts / novo 0
Último post
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.

>>...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.

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?

>>...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.

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)

Deixar um comentário

Faça login para adicionar um comentário. Não é membro? Inscreva-se hoje mesmo!