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
链接已复制
4 回复数
>>...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.
>>...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.
