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

Intel IPP 2017 Update 3 is now available

Chao_Y_Intel
Moderator
3,461 Views

Intel® IPP 2017 Update 3 is now available. This release increased ZLIB compression performance,  added the new functions in ZLIB to support the user-defined Huffman tables:

What's New in Intel® IPP 2017 Update 3:

  • Fixed some known problems in Intel® IPP Cryptography functions.

  • Added support for Microsoft Visual Studio* 2017 on Windows*.

  • Added Support for Conda* repositories installation
     

What's New in Intel® IPP 2017 Update 2:

  • Added the new functions in ZLIB to support the user-defined Huffman tables, which allows to increase ZLIB compression ratio at the fastest compression level.
     
  • Increased LZO compression performance by 20% t0 50%. Added level 999 support in LZO decompression.
     
  • Introduced support for Intel® Xeon Phi™ processor x200 (formerly Knights Landing) leverage boot mode in the Intel IPP examples.
     
  • Added an example code on building custom dispatcher for the processor-specific optimization codes.
     
  • Fixed a number of internal and external defects. Visit the Intel® IPP 2017 bug fixes for more information
     
  • Known problems:
    Some issues were identified in Intel® IPP Cryptography XTS-AES, GFp, and HMAC functions. These issues will be fixed in the future versions of Intel® IPP. Visit the known problems in Intel® IPP Cryptography for more information.

What's New in Intel® IPP 2017 Update 1:

  • Added Support of Intel® Xeon Phi™ processor x200 (formerly Knights Landing) leverage boot mode on Windows

  • Added the following new functions in the cryptography domain:

    • Added functions for the finite field GF(p) arithmetic, and the elliptic curves over the finite field GF(p).
    • Added ippsECCPBindGxyTblStd functions that allow to control memory size for the elliptic curves over GF(p).
  • Fixed a number of internal and external defects. Visit the Intel® IPP 2017 bug fixes for more information.

What's New in Intel® IPP 2017:

  • Added Intel® IPP Platform-Aware APIs to support 64-bit parameters for image dimensions and vector length on 64-bit platforms and 64-bit operating systems:

    • This release provides 64-bit data length support in the memory allocation, data sorting, image resizing, and image arithmetic functions.
    • Intel® IPP Platform-Aware APIs support external tiling and threading by processing tiled images, which enables you to create effective parallel pipelines at the application level.
  • Introduced new Integration Wrappers APIs for some image processing and computer vision functions as a technical preview. The wrappers provide the easy-to-use C and C++ APIs for Intel® IPP functions, and they are available as a separate download in the form of source and pre-built binaries.

  • Performance and Optimization:

    • Extended optimization for Intel® Advanced Vector Extensions 512 (Intel® AVX-512) instruction set on Intel® Many Integrated Core Architectures (Intel® MIC Architectures). Please see the Intel® IPP Functions Optimized for Intel® AVX-512 article for more information.
    • Extended optimization for Intel® AVX-512 instruction set on Intel® Xeon® processors.
    • Extended optimization for Intel® Advanced Vector Extensions 2 (Intel® AVX2) instruction set on the 6th Generation Intel® Core™ processors. Please see the Intel® IPP Functions Optimized for Intel® AVX2 article for more information.
    • Extended optimization for Intel® Streaming SIMD Extensions 4.2 (Intel® SSE4.2) instruction set on Intel® Atom™ processors.
  • Data Compression:

    • Added the patch files for the zlib source to provide drop-in optimization with Intel® IPP functions. The patches now supports zlib version 1.2.5.3, 1.2.6.1, 1.2.7.3 and 1.2.8.
    • Significantly improved performance of zlib compression functions on the standard compression modes.
    • Introduced a new fastest zlib data compression mode, which can significantly improve compression performance with only a small sacrifice in compression ratio.
  • Signal Processing:

    • Added the ippsIIRIIR functions that perform zero-phase digital IIR filtering.
    • Added 64-bit data length support to the ippsSortRadixAscend and ippsSortRadixDescend functions.
    • Added unsigned integer data support to the ippsSortRadixAscend, ippsSortRadixDescend, ippsSortRadixIndexAscend and ippsSortRadixIndexDescend functions.
  • Image Processing:

    • Added the ippiScaleC functions to support image data scaling and shifting for different data types by using 64-bit floating multiplier and offset.
    • Added the ippiMulC64f functions to support image data multiplication by a 64-bit floating point value.


Check the Intel® IPP release notes to find more information.

Intel® IPP packages are as part of Intel® Parallel Studio XEIntel® System Studio, and a free community licenses version:

  • Intel fully supported suites: Intel IPP is part of a suite of Intel Software Development Products which are available worldwide for purchase.  These products are backed by Intel, include Intel® Premier Support (which includes private direct support from Intel and support for past versions). Learn more at Intel® Parallel Studio XE, or Intel® System Studio  
  • Community Licenses for Intel Performance Libraries: Community licensing for Intel performance libraries comes with no access to Intel Premier Support, but (like the regular products) has no royalties, and no restrictions based on company or project size. Learn how to register for Community Licenses at software.intel.com/nest
0 Kudos
35 Replies
Tomasz_P_
Beginner
2,550 Views

Hello, is the 32-bit Linux version abandoned totally?

0 Kudos
Pavel_V_Intel
Employee
2,550 Views

Tomasz P. wrote:

Hello, is the 32-bit Linux version abandoned totally?

There are binaries for ia32 in the Linux package.

0 Kudos
Tomasz_P_
Beginner
2,550 Views

After execution of "install.sh" in l_ipp_2017.0.098.tgz I get:

The IA-32 architecture host installation is no longer supported.
The product cannot be installed on this system.
Please refer to product documentation for more information.

Quitting!

0 Kudos
Pavel_V_Intel
Employee
2,550 Views

Sorry for the inconvenience. May be there is some limitation in installation script. But ia32 libraries are there in rpms and they should work fine as far as I know.
 

0 Kudos
Chao_Y_Intel
Moderator
2,550 Views

Hi Tomasz,

Thanks for checking.  As I understand, you are installing at 32 bit host Linux. right?
Now, installation on IA-32 hosts is no longer supported by the Parallel Studio XE and its any components product:
https://software.intel.com/sites/default/files/managed/82/18/PSXE2017_Release_Notes_en_US_Lin_Win.pdf

Intel IPP 32 bit libraries are continued to be provided. If you install the product at the 64 bit Linux host, it will include the both the 32 bit libraries, and 64 bit libraries.

Thanks,
Chao

0 Kudos
Tomasz_P_
Beginner
2,550 Views

Oh, I missed out the word "host"... Thanks!

0 Kudos
Royi
Novice
2,550 Views

Does this release keep the Multi Threaded Static and Dynamic packages?

Thank You.

0 Kudos
Chao_Y_Intel
Moderator
2,550 Views

Hi Royi,

The multi threaded libraries are available by the "custom" installation option:   When installing Intel IPP, choose the ‘custom’ installation option,  you will get the option to select threaded libraries for different architectures.

Thanks,
Chao

0 Kudos
ravi_kumar_n_
Beginner
2,550 Views

Hi Chao

   I have a question on IPP versions. New IPP 2017 how is it different from IPP 9.0 update 4? 

Thanks

Ravi Kumar

0 Kudos
Gary_S_3
Beginner
2,550 Views

Hi, I'm new to using IPP. I noticed that when using ippiDivC_32f_C1IR, I get a residual decimal when I thought I should be getting an integer.

For example:

Let a be a 1 x 4 matrix.

Then I compute a[0] = 7 * 65535

Then I use ippiDivC_32f_C1lR to divide matrix a by 7. The result I get is 65535.0039.

Any values less than 65535 seems to have a trailing 0.0039 with the result. Any values above 65535 will be an integer.

Why is this? Am I using the wrong function to do my matrix division?

0 Kudos
Chao_Y_Intel
Moderator
2,550 Views

Ravi,

The "What's New in Intel® IPP 2017" part in the post are the new features introduced in the 2017 release.  These are not available in the IPP 9.0, and its update releases.

Thanks,
Chao

0 Kudos
Chao_Y_Intel
Moderator
2,550 Views

Gary,

Can you post your test code that shows the problem?  Also, what is the process that you find the problem?  That will help us to further check the code.

Thanks,
Chao

0 Kudos
Gary_S_3
Beginner
2,550 Views

Chao,

The trailing decimal affects thresholding for image layers and filters.

Here is the c++ test code that I'm debugging through to see the problem:

#include <string>
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <ipp.h>
using namespace std;

int main()
{
    ippInit();
    int aa = ippStsNoErr;
    float a[4];
    float b[4];
    float c[4];

    IppiSize roi;
    roi.height = 2;
    roi.width = 2;
            
    int i;
    for (i = 0; i < 2 * 2; ++i) 
        a = 0;
        b = 0;
        c = 0;

    a[0] = 64535 * 7;
    b[0] = 65530 * 7;
    c[0] = 75536 * 7;
    ippiMulC_32f_C1IR(7, a[0], 2 * sizeof(float), roi);
 

    ippiDivC_32f_C1IR(7, a, 2 * sizeof(float), roi);
    ippiDivC_32f_C1IR(7, b, 2 * sizeof(float), roi);
    ippiDivC_32f_C1IR(7, c, 2 * sizeof(float), roi);
    //ippiDivC_32f_C1IR(7, a, 2 * sizeof(float), roi);

    return 0;
}

Thanks,
Gary

0 Kudos
Adriaan_van_Os
New Contributor I
2,550 Views

By the way, The ThreadedFunctionsList.txt file in the 2017.0.102 release is unchanged from the 9.0 release file. The top line in the file says

"Threaded Functions' list in IPP 9.0 Gold (in alphabetical order"

So, either this is the wrong file or the top line wasn't updated.

Regards,

Adriaan van Os

 

 

 

0 Kudos
Chao_Y_Intel
Moderator
2,550 Views

@Gary,

We had some further check on the code. This actually does not have problem.  Here the code is using the single precision float point, and that precession is using 23 bits for the fraction part:

https://en.wikipedia.org/wiki/Single-precision_floating-point_format

so, it is typically 1e-6 to 1e-7 on the relative accuracy precision.  This code is about 1e-7 precision, and that is some expected result. 

Thanks,
Chao

0 Kudos
Chao_Y_Intel
Moderator
2,550 Views

Adriaan,  thanks for the reporting.  This looks a documentation problem. We will update for the future release.

Thanks,
Chao

0 Kudos
Gary_S_3
Beginner
2,550 Views

Chao,

What functions would you recommend to use for better precision for image processing? I didn't see a 64f version such as ippiDivC_64f_C1IR.

Thanks for the reply,
Gary

0 Kudos
Chao_Y_Intel
Moderator
2,550 Views

Gary,
Can you use the ippsDivC_64f function?   It needs to loop on each image line. 

Regards,
Chao

0 Kudos
Royi
Novice
2,550 Views

Hi Chao,

Is there access to the old Multi Threaded version of IPP Functions in this release?

We need access to the fastest Multi Threaded Gaussian Blur and we don't update (From 2015) because of you stating you are deprecating the Multi Threaded functions.

I really think you should offer Multi Threaded version of your functions and not only an API for upper level Multi Threading.
Many of your clients need single function at a time to be as fast as possible.

We talked about it here;

https://software.intel.com/en-us/forums/intel-integrated-performance-primitives/topic/698502

Tiling approach doesn't work well in many cases (In case of Spatial Operations stacked one on top the other Tiling will create duplication of work to scales which makes it not reasonable solution).
Please give us both options and let us decide what to use.

Thank You.

0 Kudos
Adriaan_van_Os
New Contributor I
2,406 Views

I fully agree with Royi's comments above.

Regards,

Adriaan van Os

0 Kudos
Reply