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

UIC jpeg codec performance not scaling to multi core

Simon_D_3
Beginner
1,319 Views

Hi

I have built the sample code for uic_transconder_con on a Q9650 (quad core)64 bit Ubuntu 10.04 system with the Intel IPP libraries V7.0.1 installed.

Using the sample image (uic_test_image.jpg) I do not see any any change to the time taken to process the image to jpeg with different numbers of threads. I am running from a ram disk.

Command issued for a single thread:
./uic_transcoder_con -otest.jpg -t1 -q95 -n1

Command issued for 4 threads:

./uic_transcoder_con -otest.jpg -t1 -q95 -n4

Restart intervals are turned on by the '-t1' option. Changing the jpeg quality does result in different encoding times. I have also tried adding '-s0' and '-jb', but as I think these are the defaults I has no effect.

0 Kudos
25 Replies
Ying_H_Intel
Employee
126 Views
Hi Jacob,

I'm using the latest IPP and IPP sample. It may be the cause. Would you like try

- install IPP 7.0.2

its 30-daysevaluation install package can be downloaded from IPP Downloads, Registration and Licensing

- install pre-build uic binary code: which can be download from Code Samples for Intel IPP Library 7.0* .

then see if there is any change?

Best Regards,
Ying

0 Kudos
Naveen_G_Intel
Employee
126 Views

Hi,

Just now i tested UIC sample on windows(I dont have Ubuntu machine).

I have Intel composer XE 2011 latest update version, i compiled UIC with Visual Studio compiler. After adding the -t 1 flag to it I see very good scaling when I play around with the number of threads.

I use following command. Please re compile and run uic_transcoder.

uic_transcoder_con.exe I cat.bmp o cat.jpg n 12 q 50 t 1

Thanks,

Naveen Gv

0 Kudos
Vladimir_Dudnik
Employee
126 Views

I think the root of this problem is using two different OpenMP run-time libraries in same application, one is linked to IPP Intel OpenMP run-time and second one is GNU Compiler OpenMP run-time when you build UIC codec with OpenMP option. To avoid that I would recommend you to link with IPP static libraries instead of DLL. Yes, Intel OpenMP is compatible with GNU Compiler OpenMP, so you actually should be able to link with IPP static threaded libraries, which were compiled for Intel OpenMP run-time but can also be linked with GNU Compiler OpenMP run-time.

Vladimir

0 Kudos
Ying_H_Intel
Employee
126 Views
Hello,

I'm gladnotifythat the one-thread issue in UIC jpeg codec is resolved in the new release:
Intel IPP 7.0 update 4 is shipping as of May 12, 2011.

You are welcomed to try it

Regards,
Ying H.
0 Kudos
fvipp
Beginner
126 Views
Do you have a document with official benchmarks for JPEG compression?
What maximum throughput could be achieved with IPP-7.0 JPEG compressor for standard images (8-bit and 24-bit)?
0 Kudos
Reply