Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

IPP Performance Slow Down 10 Times

yangzhang000
Beginner
500 Views
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
500 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
0 Kudos
matthieu_darbois
New Contributor III
500 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
0 Kudos
pvonkaenel
New Contributor III
500 Views

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