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

UIC Multithreading

Michal_D_
Beginner
241 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
241 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

0 Kudos
Sergey_K_Intel
Employee
241 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 

0 Kudos
Thomas_Jensen1
Beginner
241 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.

 

0 Kudos
Reply