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

IJL vs IPP: CPU Usage

stevena
Beginner
268 Views
PC Used to Test:
Xeon ProcessorW3520
6GB RAM
NVIDIA Quadro FX1800
WinXP
CPU measurement tool: windows task manager
We have a application that can use either IPP or IJL to decode Jpeg's. we take in 5 streams from IP cameras at 1280x720.
With IPP we put the cameras at 20FPS, we receive fine at 20 and display at 20 but the CPU is 100% usage. we put the cameras at 30FPS everything is fine and it displays at 30 but the CPU is 100%. If we put it at 10FPS it runs fine, displays good but CPU is still 100%.
With IJL we put the cameras to 20FPS, displays fine at 20FPS and the CPU is about 15%, we put the cameras to 30 fps 17%
0 Kudos
2 Replies
pvonkaenel
New Contributor III
268 Views
In terms of the IPP code, I have seen similar performance in the past and I think it may be due to the built-in OpenMP threading. The OpenMP threading built into IPP is trying to speed up certain operations by splitting the work up to multiple threads (1 per core). What may be happening is that when the OpenMP worker threads no longer have work to do, they busy wait until more work is available to avoid a context switch. So what may look like 100% utilization is really busy waiting for more work.

Peter
0 Kudos
PaulF_IntelCorp
Employee
268 Views
Yes, check the ThreadedFunctionsList.txt file to see if the IPP functions being used are multi-threaded. If so, it is very likely that the CPU usage meter is measuring OpenMP "busy work" and not necessarily IPP work.
0 Kudos
Reply