- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
PC Used to Test:
Xeon ProcessorW3520
6GB RAM
NVIDIA Quadro FX1800
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%
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Peter
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.

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