Community
cancel
Showing results for 
Search instead for 
Did you mean: 
yangzhang000
Beginner
65 Views

IPP Performance Slow Down 10 Times

I am using ippAffine to align images of 5M pixel 12bit mono image. The computer is Dell Precision T3400 which use E8400 CPU Core2 Duo. The normal speed is 10-20ms for one operation in testing code. However, its speed is 10 to 20 times slower(200-500ms) in our application software, in which two threads running two Affine on each of them simultaneously. Does anyone run into this kind of problem? Your insight is appreciated.
Yang
0 Kudos
3 Replies
Ying_S_Intel
Employee
65 Views

Quoting - yangzhang000
I am using ippAffine to align images of 5M pixel 12bit mono image. The computer is Dell Precision T3400 which use E8400 CPU Core2 Duo. The normal speed is 10-20ms for one operation in testing code. However, its speed is 10 to 20 times slower(200-500ms) in our application software, in which two threads running two Affine on each of them simultaneously. Does anyone run into this kind of problem? Your insight is appreciated.
Yang

I doubted if it islibrary dispatcher issue. Which Intel IPP version do you use? and how do you link with Intel IPP libraires, if you link with static library, do you link threaded vesion or non-threaded version?

Thanks,
Ying S
matthieu_darbois
New Contributor III
65 Views

Quoting - Ying S (Intel)

I doubted if it islibrary dispatcher issue. Which Intel IPP version do you use? and how do you link with Intel IPP libraires, if you link with static library, do you link threaded vesion or non-threaded version?

Thanks,
Ying S

Hi,
If you're using a threaded version of ipp (either DLL or static threaded), you might try ippSetNumThreads(1)
You're already doing the multithreading from the application so if ipp is trying to do it also, you get more threads than CPU cores leading to much-much overhead. I ran in this once, 100% CPU usage returned to 30% on a live stream processing...

Hope this helps.

Matthieu
pvonkaenel
New Contributor III
65 Views


If you're statically linking with IPP be sure to call ippStaticInit() otherwise the least optimized version of IPP routines will be used.
Reply