Intel? Integrated Performance Primitives (Intel? IPP) is an extensive library of multicore-ready, highly optimized software functions for digital media and data-processing applications. Intel IPP offers thousands of optimized functions covering frequently-used fundamental algorithms. Intel IPP functions are designed to deliver performance beyond what optimized compilers alone can deliver.I managed to compile a gzip binary using IPP, I wanted to know if IPP's deflate was really fastThe Data Compression-based IPP_GZIP Sample (IPP_GZIP) illustrates the way of implementing effective lossless data compression solution by using Intel? Integrated Performance Primitives Data Compression domain API. Additionally, this sample shows the ways of parallelizing a user application using Intel? Virtual Machine to fully benefit from modern Intel? microprocessor architectures.
The sample uses dictionary based IPP functions implementing Lempel-Ziv (LZ77) algorithm and original GZIP data formats according to RFC 1950, 1951 and 1952 specifications.
The resulting compressed data formats are fully compatible with the original GZIP formats, so the utilities are interchangeable. You can compress data with IPP_GZIP and decompress it with GZIP, or, vice versa, compress with GZIP and decompress using GZIP. However, to benefit from using multiprocessor/multicore architectures, use IPP_GZIP.
Download
Intel SSE2 required
Compression of enwik8 -9:
1 core:
gzip 8.8
pigz 9.3 Homepage binary
ipp_gzip 7.9
2 cores:
pigz 4.8
ipp_gzip 4.1
Would be cool to have results from a i7 with 8 threads
ipp_gzip is the fastest. But since gzip and pigz are compiled with gcc (AFAIK) I'm not sure the speedup actually comes from IPP library itself or because of the compiler. I would have to compile gzip and pigz with the same compiler and settings than ipp_gzip for a fair comparison.
Anyway ipp_gzip does not show a spectacular speedup compared to gzip (beside multicore support)