- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
>>...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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
>>...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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page