IPP 6.1 vs IPP 7.1 zlib performance

IPP 6.1 vs IPP 7.1 zlib performance

Bild des Benutzers Srinivasan M.

Hello,

We are using zlib in our software and we are using IPP 6.1 to improve the zlib performance. It gives 35 - 45% improvement over the zlib without IPP. We installed IPP 7.1 and linked the following static library functions for data compression

/opt/intel/ipp/interfaces/data-compression/ipp_zlib/bin/intel64/ipp_z

/opt/intel/ipp/lib/intel64/ (ippdc_l, ipps_l, ippcore_l)

However after testing, we found there is around 20% performance degradation.

Wondering what could be wrong?

For your information,

I am testing IPP on a 8 core (Intel (R) Xeon (R) X5550 @ 2.67 GHz) phyical server.

I am testing on a three different data sets (random data that can't be compressed, mix of random and compressible data and mostly compressible data)

Please let me know if you need further information on the testing.

9 Beiträge / 0 neu
Letzter Beitrag
Nähere Informationen zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.
Bild des Benutzers Sergey Kostrov

>>Wondering what could be wrong?
>>
>>For your information,
>>
>>I am testing IPP on a 8 core (Intel (R) Xeon (R) X5550 @ 2.67 GHz) phyical server...

I suggest you to verify if a default Waterfall IPP module was used. If Yes, it could be the answer on your question.

Bild des Benutzers Srinivasan M.

Could you please let me know how to verify if a default waterfall IPP module is being used? 

For your information, I am testing on a SLES linux operating environment.

Bild des Benutzers Srinivasan M.

I am using the libipp_z.a from /opt/intel/ipp/interfaces/data-compression/ipp_zlib/bin/intel64

Do you refer this as waterfal ipp module?

Bild des Benutzers Sergey Kostrov

Here is a small example I recently did ( even if it is for a 64-bit Windows platform it gives you some idea ):

// Verification for DSP domain DLL ( AVX / e9 ) is needed
/*
List of IPP DLLs used:

24/09/2012 11:25 PM 144,864 ippcore-7.1.dll
24/09/2012 11:25 PM 240,608 ipps-7.1.dll
25/09/2012 01:21 AM 5,499,360 ippse9-7.1.dll
*/

#include "stdio.h"
#include "ipps.h"

int main( void )
{
Ipp32f fData[ 256 ];

printf( "Test Started\n" );

IppStatus st = ::ippsZero_32f( &fData[0], 256 );

printf( "Test Completed\n" );

return ( int )1;
}

/*
[ Output ]

Test Started
Test Completed
*/

Note: Let's call ippcore-7.1.dll and ipps-7.1.dll as regular DLLs and ippse9-7.1.dll is the Waterfall ( CPU dispatched ) DLL. Code e9 means that ippse9-7.1.dll DLL is optimized for CPUs with AVX instruction set.

Bild des Benutzers Srinivasan M.

I believe, I am not using any default waterfall ipp module in my testing.

Also, we are using crypto library from openssl. On reading this blog post <a>http://software.intel.com/en-us/articles/boosting-openssl-aes-encryption..., I find that I need to patch up openssl with intel ipp to get the performance boost on SHA, AES library functions. I am working with openssl 1.0.1c. Where can I get the patch file for 1.0.1c?

Also, the ipp version of crypto and ssl don't come by default without patching? 

Bild des Benutzers Gennady Fedorov (Intel)

what is the compression level did you use? Can you test 6.1 and 7.1 implementations with the some of files from Calgary Corpus?

Bild des Benutzers Srinivasan M.

I am using the compression level 1. I tested with the Calgary Corpus files and the results are same. IPP 6.1 performs better than 7.1

Could someone confirm on whether I am linking the right libraries? Following are the libraries that I link with,

/opt/intel/ipp/interfaces/data-compression/ipp_zlib/bin/intel64/ipp_z

/opt/intel/ipp/lib/intel64/ (ippdc_l, ipps_l, ippcore_l)

Bild des Benutzers Sergey Khlystov (Intel)

Hi Srinivasan,

IPP zlib 6.1 and 7.1 have the different levels of compression, so different perfomance. Look at the table I got for Calgary on 6.1/7.1. The times in msec. Ratio in compr.size/original size (the lower the better).

zlib Level       ratio(6.1)    ratio(7.1)    comp.time(6.1)  comp.time(7.1)   decomp.time(6.1)   decomp.time(7.1)
1                  39.7%        37.3%        33.8                  43.2                   16.4                      15.3
2                  39.7%        36.5%        33.7                  45.2                   17.8                      15.1
3                  39.7%        35.7%        33.2                  47.7                   16.0                      15.0
4                  34.4%        34.2%        68.3                  67.2                   14.9                      14.7
5                  34.4%        33.2%        64.8                 109.0                   14.7                     14.7
6                  34.4%        32.8%        64.0                 163.9                   15.3                     14.8
7                  34.4%        32.7%        66.4                 165.7                   14.4                     14.8
8                  32.6%        32.6%      215.3                 185.9                   14.5                     14.5
9                  32.6%         32.6%     215.2                 217.3                   14.1                     14.5

So, you can see, that 7.1's level 0 corresponds to 6.1's level ~3.5. The more or less comparable levels (in terms of compression ratio) are 4 and 8. In 7.1 there is no 6.1/level 1 analog.

The measurements are done very rough, so there could be some fluctuations in the results. I just wanted to show the tendency.

6.1 ipp_zlib is based on zlib 1.2.3. 7.1 is based on zlib 1.2.5.

Regards,
Sergey 

Regards, Sergey

Melden Sie sich an, um einen Kommentar zu hinterlassen.