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

Intel® IPP 9.0 Update 3 is available

Chao_Y_Intel
Moderator
2,529 Views

Intel® IPP 9.0 Update 3 is now available.  IPP 9.0.x release added the new Intel® AVX-512 optimization for the computer vision and image processing functions, extended optimization for Intel® Atom™ and Intel® Quark™ processors, and included the new APIs to support external threading.

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

  • Improved zlib decompression performance for small data for Intel® 64 architectures.

  • Fixed a number of internal and external defects, including the memory corruption problem on ippiSet_16u_C1R functions.

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

  • Image Processing:

    • Added the contiguous volume format (C1V) support to the following 3D data processing functions: ipprWarpAffine, ipprRemap, and ipprFilter.

    • Added the ippiFilterBorderSetMode function to support high accuracy rounding mode in ippiFilterBorder.

    • Added the ippiCopyMirrorBorder function for copying the image values by adding the mirror border pixels.

    • Added mirror border support to the following filtering functions: ippiFilterBilateral, ippiFilterBoxBorder, ippiFilterBorder, ippiFilterSobel, and ippiFilterScharr.

    • Kernel coefficients in the ippiFilterBorder image filtering functions are used in direct order, which is different from the ippiFilter functions in the previous releases.

  • Computer Vision:

    • Added 32-bit floating point input data support to the ippiSegmentWatershed function.

    • Added mirror border support to the following filtering functions: ippiFilterGaussianBorder, ippiFilterLaplacianBorder, ippiMinEigenVal, ippiHarrisCorner, ippiPyramidLayerDown, and ippiPyramidLayerUp.

  • Signal Processing:

    • Added the ippsThreshold_LTAbsVal function, which uses the vector absolute value.

    • Added the ippsIIRIIR64f functions to perform zero-phase digital IIR filtering.

  • The multi-threaded libraries only depend on the Intel® OpenMP* libraries; their dependencies on the other Intel® Compiler runtime libraries were removed.

  • Fixed a number of internal and external defects.

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

  • Enabled stack protection to enhance security of the Intel® IPP functions at Linux*. To link with Intel® IPP libraries, glibc version 2.4 or higher is now required.

  • Added several new functions in the Signal Processing, Color Conversion and Cryptography domains.

  • Optimized the following functions on Intel® Advanced Vector Extensions 2 (Intel® AVX2) both for Intel® 64 and IA-32 Architectures:

    • Signal Processing: ippsSumLn, ippsNormalize, ippsMinAbs, and ippsMaxAbs.

    • Image Processing: ippiConvert_32s16s, ippiHOG_16s32f_C1R, and ippiSwapChannels_32s_C3C4R.

    • Color Conversion: ippiColorToGray and YCbCr to RGB/BGR conversion functions.

  • Improved the LZO decompression function ippsDecodeLZO performance for Intel® Quark™ processors.

  • Fixed the position-independent code (PIC) problem in the Linux* dynamic libraries. The share libraries now provide the full PIC symbols


What's New in Intel® IPP 9.0:

  • Extended optimization for Intel® Advanced Vector Extensions 512 (Intel® AVX-512) instruction set in the Computer Vision and Image Processing functions.

  • Extended optimization for Intel® Atom™ processors in the Computer Vision and Image Processing functions.

  • Added optimization for Intel® Quark™ processors to the Cryptography and Data Compression functions.

  • Introduced the new Cryptography functions for SM2/SM3/SM4 algorithms.

  • Added a custom dynamic library building tool, which enables users to build the dynamic library containing the selected Intel® IPP functions.

  • Added the new APIs to support external threading.

  • Improved the CPU dispatcher by using target processor features instead of processor types. The static linkage does not require to explicitly call the processor initialization function now.

  • Provided the new native libraries for 64-bit Android* applications, and replaced the old ones from the Linux* binary.

  • Removed internal memory allocation in the single-threaded libraries.

  • The single-threaded libraries removed the dependency on the Intel® Compiler runtime libraries. The multi-threaded libraries only depends on the Intel® OpenMP* libraries.

  • Some specific Image Processing domain changes.

  • Some Intel IPP domains and functions are now legacy

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

Intel® IPP packages are as part of Intel® Parallel Studio XEIntel® System Studio. You can obtain as part of Intel fully supported suites, or you may qualify for free versions of such suites if you are an educator, open source developer or researcher, or you can obtain Intel IPP with a Community License at no charge.

  • 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
  • You may qualify for free versions of such suites if you are an student, educator, open source developer or academic researcher: learn about requirement to qualify at software.intel.com/qualify-for-free-software
  • 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
22 Replies
John_C_5
Beginner
2,261 Views

I noticed that  a few of the FIR filtering functions in IPP 9.0 are now deprecated. Can you point me to some examples of FIR filtering using vb.Net?

0 Kudos
Chao_Y_Intel
Moderator
2,261 Views

Hi, 

The FIR function interfaces has been improved with the API. Please check the example code here to find its usage:
https://software.intel.com/en-us/node/502233

Regrading calling IPP in VB, I am sent you legacy sample code which was with old IPP release. You can take it as example on its usage. 

Thanks,
Chao 

0 Kudos
Tushar_Kachhadiya
2,261 Views

Hi Chao,

Does It supports MinGW libraries for cross platform building?

Thanks

Tushar Kachhadiya

0 Kudos
John_C_5
Beginner
2,261 Views

In the code samples for FIR filtering supplied with Ipp9, what are the values for specSize and Bufsize given the initial definitions of Taps_Len=8 and Len = 1024. I want to make sure my VB code is coming back with the proper values.

 

0 Kudos
Andrey_B_Intel
Employee
2,261 Views

Hi.

To get values of specSize and bufSize it is necessary to call

status = ippsFIRSRGetSize (TAPS_LEN,  ipp32f ,  &specSize,  &bufSize );
 

0 Kudos
y_t_
Beginner
2,261 Views

Hi

Where can i find "UMC Speech RTP Codec Sample" in IPP 9.0?

0 Kudos
Chao_Y_Intel
Moderator
2,261 Views

UMC Speech RTP Codec Sample was  the old IPP sample code, they are deprecated, and not part of IPP 9.0 release. 

Thanks,
Chao

 

0 Kudos
Seyed_M_
Beginner
2,261 Views

is there any replacement for speech domain in ipp9??? If not, what gonna happen when it comes to compiling codecs?

0 Kudos
Sorin_Goldenberg
Beginner
2,261 Views

I cannot understand the changes in API. 

For example - instead of ippsFFTInitAlloc_C_32f    one needs to use ippsFFTGetSize+ippsMalloc+ippsFFTInit .

What is that good for ? Why can't the Init function take care of ALL allocations?

The Init function:

IppStatus ippsFFTInit_R_32f(IppsFFTSpec_R_32f** ppFFTSpec, int order, int flag, IppHintAlgorithm hint, Ipp8u* pSpec, Ipp8u* pSpecBuffer);

Why do you need both ppFFTSpec and pSpec? Can't one structure hold everything?

I can't see pSpec is used in any call to the FFT execution function:

ippsFFTFwd_RToPack_32f(const Ipp32f* pSrc, Ipp32f* pDst, const IppsFFTSpec_R_32f* pFFTSpec, Ipp8u* pBuffer);

Do I need to keep it? 

I look at the example you give (page 275). It is clearly an example of the previous version of the software. Couldn't you bother to give a valid example??? Same with the example page (270). 

status = ippsFFTInitAlloc_R_32f(&spec, 3, IPP_FFT_DIV_INV_BY_N, ippAlgHintNone );

Sorin

 

0 Kudos
Chao_Y_Intel
Moderator
2,261 Views

Sorin,

Thanks for reporting this, and we are reviewing the current documentation, and will fix such problems in the future release documentation.

It is right ippsFFTInitAlloc_C_32f   is replaced by the external memory allocation, so users can manage the memory by themselves with more flexibility.  The article may help to provide a few more background on this:   https://software.intel.com/en-us/articles/intel-integrated-performance-primitives-internal-memory-allocation-gone-memory-usage

For a better FFT example, could you have a check on this one?
https://software.intel.com/en-us/articles/how-to-use-intel-ipp-s-1d-fourier-transform-functions

It shows how to allocate/initialize different buffers.

Thanks,
Chao

0 Kudos
OCMP__HP
Beginner
2,261 Views

Hello Chao,

   Any issues on Rhel 7 we have seen with IPP 8.2 and icc (ICC) 15.0.1 20141023 performance issue. Do you have any benchmarks ? 

It will be of great help if you can share some benchmarks and comparision with Rhel 6 reports. 

Regards,

Soumit

0 Kudos
jinming_g_
Beginner
2,261 Views
Hi Chao: In IPP9, the ippsFIRSRInit has parameter IppAlgType -- so user can select ippAlgAuto, ippAlgDirect or ippAlgFFT; but the multirate counterpart: ippsFIRMRInit has no such parameter. May I ask what algorithm used for the FIRMR? default like ippAlgAuto -- based on problem size, or Direct? Thanks, Jinming
0 Kudos
Nilay_S_
Beginner
2,261 Views

While configuring OpenCV 3.1.0, is using IPP 9.0.1 in 3rdparty ipp_icv package equivalent to using IPP 9.0.1 available with Intel Parallel Studio 2016?

0 Kudos
Jonghak_K_Intel
Employee
2,261 Views

Hi Nilay,

 The IPP included in Intel Parallel Studio works 99% identically with IPP_ICV. The original IPP applies only a few more  functions to OpenCV than the IPP_ICV.

Thank you

0 Kudos
Nilay_S_
Beginner
2,261 Views

Thanks Jon!

0 Kudos
L_Y_
Beginner
2,261 Views

Hi Chao,

Regarding to your message #11 on this topic as response to Sorin, can you please provide some examples for fft in c# since all previous examples are using ippsFFTInitAlloc.

L.Y.

0 Kudos
Nishant_M_Intel
Employee
2,261 Views

I recently setup the Intel® IPP and Intel® Parallel Studio XE Composer Edition for C++ to enable automatic link of Intel IPP to Visual Studio 2015.  As per ippiGetLibVersion() function call I get "ippIP SSE4.2 (y8)" lib name and  "9.0.3 (r51269)" lib version.

I do not seem to find any of the the AES* functions including IppsAESSpec context.  I get undefined identifier even when I include "ipp.h" and "ippcore.h".  I also do not find "AES" string reference when i search the "C:\Program Files (x86)\IntelSWTools\" directory which is where Intel® IPP and Intel® Parallel Studio XE Composer Edition for C++ applications are installed.

 

0 Kudos
Nishant_M_Intel
Employee
2,261 Views

Below is the output when I ran the program found at https://software.intel.com/en-us/node/503902

Results:

ippIP SSE4.2 (y8) | 9.0.3 (r51269)
Features supported by CPU       by IPP
-----------------------------------------
  ippCPUID_MMX        = Y       Y       Intel(R) Architecture MMX technology supported
  ippCPUID_SSE        = Y       Y       Intel(R) Streaming SIMD Extensions
  ippCPUID_SSE2       = Y       Y       Intel(R) Streaming SIMD Extensions 2
  ippCPUID_SSE3       = Y       Y       Intel(R) Streaming SIMD Extensions 3
  ippCPUID_SSSE3      = Y       Y       Intel(R) Supplemental Streaming SIMD Extensions 3
  ippCPUID_MOVBE      = N       N       The processor supports MOVBE instruction

  ippCPUID_SSE41      = Y       Y       Intel(R) Streaming SIMD Extensions 4.1
  ippCPUID_SSE42      = Y       Y       Intel(R) Streaming SIMD Extensions 4.2
  ippCPUID_AVX        = N       N       Intel(R) Advanced Vector Extensions instruction set
  ippAVX_ENABLEDBYOS  = N       N       The operating system supports Intel(R) AVX
  ippCPUID_AES        = N       N       Intel(R) AES instruction
  ippCPUID_SHA        = N       N       Intel(R) SHA new instructions
  ippCPUID_CLMUL      = N       N       PCLMULQDQ instruction
  ippCPUID_RDRAND     = N       N       Read Random Number instructions
  ippCPUID_F16C       = N       N       Float16 instructions
  ippCPUID_AVX2       = N       N       Intel(R) Advanced Vector Extensions 2 instruction set
  ippCPUID_AVX512F    = N       N       Intel(R) Advanced Vector Extensions 3.1 instruction set
  ippCPUID_AVX512CD   = N       N       Intel(R) Advanced Vector Extensions CD (Conflict Detection) instruction set
  ippCPUID_AVX512ER   = N       N       Intel(R) Advanced Vector Extensions ER instruction set
  ippCPUID_ADCOX      = N       N       ADCX and ADOX instructions
  ippCPUID_RDSEED     = N       N       The RDSEED instruction
  ippCPUID_PREFETCHW  = N       N       The PREFETCHW instruction
  ippCPUID_KNC        = N       N       Intel(R) Xeon Phi(TM) Coprocessor instruction set

0 Kudos
Chao_Y_Intel
Moderator
2,261 Views

Nishant, 

IPP Crypto is another add-on package.  You need to install this package as well. Please check this article on how to get this package: 
https://software.intel.com/en-us/articles/download-ipp-cryptography-libraries

Thanks,
Chao

 

 

 

0 Kudos
Uri_M_
Beginner
2,093 Views

Hello!

I recently started to work with the Intel® KNL ("Adams Pass").
Installed the following SW tools:
- Microsoft Visual Studio 2012
-
Intel® Parallel Studio 2016 XE edition, with IPP library V9.0 including update 3

Issues with SW tools support for the KNL:

1. IPP recognizes AVX512 architecture. However, disassembly shows SSE instructions in Signal Processing functions instead.(performance is accordingly).
   Examples for 
Signal Processing functions apparently not supported: ippsAddProduct_32fippsMagnitude_32fcippsDotProduct_32fc.

2.Assembly code and registers content, which are specific to KNL, are not displayed by Microsoft Visual Studio 2012 (???????? instead).

Please advice.on how to proceed.

Regards,

Uri

 

0 Kudos
Reply