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
1,697 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
Royi
Novice
352 Views

Chao,

Still didn't get an answer.
The Multi Threaded libraries, From which version are they (Since no development is done at the moment)?

Who should be approached to make the need from customers for fast Built In Multi Threaded implementation of the algorithm?

It will be great if the Single Threaded algorithms will retain the new API for Application Level Multi Threading and yet you supply low level Multi Threaded implementation of the functions as well.

0 Kudos
Seth_G_Intel
Employee
352 Views

The current version of zlib is 1.2.11. Any chance of getting an update for a more current patch set?

Thanks,

-SG

0 Kudos
Chao_Y_Intel
Moderator
352 Views

@Royi, Thanks for your feedback on this.
The legacy threaded code is still included in installation package:  These binary is not installed by default, they can be manually installed like these steps:
https://software.intel.com/en-us/articles/performance-tools-for-software-developers-using-intel-ipp-threaded-static-libraries

I checked the ThreadedFunctionsList.txt file, and see the Gaussian filter was not threaded before.  So Particularly for Gausian filter, which function are you using now? We can work with our engineer expert to provide some threading suggestion or example on the function.

Thanks,
Chao

0 Kudos
Chao_Y_Intel
Moderator
352 Views

Hi SG,
I will check with you if we can have a patch for the 1.2.11. Thanks for the interest for this.

Regards,
Chao

 

 

0 Kudos
Royi
Novice
352 Views

@Chao,

I really don't understand the model you chose.
We really need Intel IPP to have both (Actively developed):

  • Single Threaded functions with Application Level Multi Threading in mind (Namely easy to be used in Tiled Processing).
  • Multi Threaded functions which are as fast as one can get to do certain image processing operation with no Application Level Multi Threading.

I would like to know to get the fastest available Gaussian Blur on a given image.  
I don't use Application Level threading.

Are you sure the list is updated? We were under the impression the Gaussian Blur is Multi Threaded.
We use IPP from the Composer 2015 package (I think it was 8.x) and we stayed there just because of the change you made.

If you can assist us to get better performance of Gaussian Blur with Multi Threading on the new 2017 edition we'll be happy to hear and see.

Thank You.

0 Kudos
Chao_Y_Intel
Moderator
352 Views

Royi,   What is the exact IPP function name you are using now for  Gaussian Blur?  We can check some example for the 2017 release.
Also, which threading are you interested in,  TBB, or OpenMP?  The threading in old version of IPP is threaded with OpenMP.

Regards,
Chao

0 Kudos
BMart1
New Contributor II
352 Views

FWIW, I prefer the Threading layer (_LT suffix) solution to the alternate .lib, so I can mix multitherading and single threading functions in the same app.

0 Kudos
Royi
Novice
352 Views

Hi Chao,

I prefer OpenMP based solution for portability.
We use ippiFilterGaussianBorder_32f_C1R for Gaussian Blur.

Again, I think most customers would appreciate to have both, one version for application level MT and one which is MT for teh best performance given that tasks.

I must say it is a pleasure to have you on the forum, listening to customers.
This is a great service.

Thank You.

0 Kudos
Jayati_D_
Beginner
352 Views

Hii

I am using IPP version 8.2, Update 2 in my application which is of X86 architecture. I need Video Coding and Image Compression features. I am not able to get these features in this version /update. Can you please help me what version n Update I should use so that These functions can work?

Thanks

0 Kudos
Chao_Y_Intel
Moderator
352 Views

@Royi, I post one example code for ippiFilterGaussianBorder_32f_C1R threading here:
https://software.intel.com/en-us/forums/intel-integrated-performance-primitives/topic/722587

Hope this can provide some help. If you have further question, we can discuss at that post, other than  make this to be very long post.

Regards,
Chao

0 Kudos
Chao_Y_Intel
Moderator
352 Views

Hi Jayati, 

Can you check these two article regarding on how using IPP legacy library, and the sample code?
https://software.intel.com/en-us/articles/intel-ipp-legacy-libraries
https://software.intel.com/en-us/articles/how-to-build-former-intel-ipp-samples-with-ipp-90-legacy-libraries

Since these are the legacy libraries, and is not support in the future. In the long term, I would suggest to move the code the Intel Media SDK, which also support the hardware acceleration: https://software.intel.com/en-us/forums/intel-media-sdk

Thanks,
Chao

 

 

0 Kudos
Royi
Novice
352 Views

@Chao,

Thank you for your contribution.

Let me understand, assuming Intel Compiler 2015 (I think it is IPP 8.3) when I link against the multi threaded library, do I get Multi Threaded Gaussian Blur?

I'm asking since ippiFilterGauss_32f_C1R does appear on ThreadedFunctionsList.txt.
Is it multi threaded or not?

Thank You.

0 Kudos
Chao_Y_Intel
Moderator
352 Views

Thanks all for the checking the legacy Intel IPP threaded libraries.   Here is some recommendation for using Intel IPP threaded libraries:

To support the internal threading in the Intel® IPP functions, Intel® IPP provides the Threading Layer APIs in the platform-aware functions.  These APIs can support both 64-bit object sizes (for large size images and signal data) and internal threading in Intel® IPP functions.  Check threading layer header files(ipp*_tl.h) to learn these APIs in current release.

The legacy Intel IPP threaded libraries are available by the custom installation, and the code written with these libraries will still work as before. However, the legacy threaded library will not expand its internal threading, and the new threading will be developed only in the new Intel® IPP threading layer APIs.  User’s application is recommended to use the new Intel® IPP threading layer APIs or implement the external threading.

Thanks,
Chao

0 Kudos
manoj_r_
Beginner
352 Views

Hello,

I have a naive question not sure if it is right to ask in this forum.

In general term, do all IPP libraries linked to an OS or a processor. As far as i know these libaries are tuned for a processor not for an OS. Why even intel claims that these libaries are supported on so and so OS. 

 

Thanks,

Manoj

0 Kudos
Chao_Y_Intel
Moderator
352 Views

Manoj, 
Generally IPP is optimized for the processors, and provides the same APIs for different OS. But for the different OS, it needs to provide the different binaries,  and some code also depends on OS runtime libraries (like glibc). The system requirement list  the OS that support by IPP: 

https://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-2018-system-requirements

regards,
Chao

 

 

0 Kudos
Reply