Intel® Integrated Performance Primitives
Community support and discussions relating to developing high-performance vision, signal, security, and storage applications.
Announcements
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.

UIC Multithreading

Michal_D_
Beginner
101 Views

Hi All,

I've been looking into JPEG decoding performance via UIC.  I've tried:

1) ippSetNumThreads() called with 1, 4

2) SetThreadingMode() called with JT_OLD, JT_RSTI

3) SetNOfThreads() called with 1,4,16

4) 8-bit jpegs with and without restart intervals

None of the combinations of these settings produces a measureable difference in the exeuction time for decoding a single JPEG image.  The UIC we are using has been built with MS Visual Studio.  We are running IPP version 7.0.6.278.

Any guidance on how to achieve the speedups as described in http://software.intel.com/en-us/articles/jpeg-new-threading-model-in-ipp would be much appreciated.

Thanks,

Michal

 

0 Kudos
3 Replies
Roman_T_
New Contributor I
101 Views

UIC package allows you to build source for Visual Studio for single threaded model and multithreaded model. Everything looks like you built UIC for single threaded model.

Best regards,

Roman

Sergey_K_Intel
Employee
101 Views

Hi Michal,

In order to benefit from UIC decoder multi-threading, you need to build UIC with OpenMP and static single-thread IPP libraries. In this case the parallelization starts on JPEG decoder level and the decoder will use single-threaded IPP functions to not suffer from oversubscription (when number of active threads is larger than number of CPU cores).

As far as I see from samples' makefiles, UIC is built exactly this way: "/openmp /D "_IPP_SEQUENTIAL_STATIC"" options are set for compiler.

Please, check.

Regards,
Sergey 

Thomas_Jensen1
Beginner
101 Views

What I usually do when I need to know if threading is working well, is to let the decoder decode a huge jpeg file, and just peek at the process monitor (Task Manager), to see that the cpu goes up on all cores.

 

Reply