Intel® IPP 7.0 Release Notes

Intel® Integrated Performance Primitives Library 7.0 Release Notes

This document provides a general summary of new features and important notes about the Intel® IPP library software product.

Please see the following links for the latest information regarding the Intel® Integrated Performance Primitives (Intel® IPP):

Links to documentation, help, and code samples can be found on the main Intel IPP product page. For technical support visit the Intel IPP technical support forum and review the articles in the Intel IPP knowledgebase.

Please register your product using your preferred email address. This helps Intel recognize you as a valued customer in the support forum and insures that you will be notified of product updates. You can read Intel's Online Privacy Notice Summary if you have any questions regarding the use of your email address for software product registration.

How to Build an IPP Application provides an introduction to compiling, linking and deploying Intel IPP applications.

What's New in Intel® IPP 7.0

  • Additional optimizations for the 256-bit Intel AVX SIMD instruction set.
  • Further AES-NI optimizations for cryptography and data compression.
  • Microsoft* Visual Studio* 2010 support.
  • A JPEG-XR (HD Photo) codec is now included in the UIC framework.
  • A Windows Imaging Codec (WIC) has been added to the UIC sample.
  • The new interfaces directory contains high-level application code, in the form of source and pre-built binaries.
  • A New Directory Structure and Library Naming Scheme describes library layout and name changes important to developers.
  • This version of the Intel IPP library, when included with the Atom SDK (a separately distributed product), is now provided as the standard dispatched version of the static library (for Linux*), which contains all supported SIMD instruction sets for the IA-32 architecture. If you wish to build your Intel® Atom™ processor application with a non-dispatched version of the library please review the instructions in the $(IPPROOT)/tools/ia32/staticlib directory and compile/link with the s8 architecture. -->

A complete list of new functions added with the 7.0 release is located in the NewFunctionsList.txt file, which can be found in the ...\Documentation\en_US\ipp\ directory. You will also find the ThreadedFunctionsList.txt file in that same location, listing those functions that are available in an internally threaded format. Threading, within the multi-threaded variants of the Intel IPP library, is accomplished by use of the Intel® OpenMP* library.

For a more detailed list of what's new in Intel IPP 7.0 please read this article.

7.0 update 7 Release Notes

  • An OpenGL video renderer has been added to Microsoft* Windows* audio-video-codecs (UMC). To enable, uncomment "#define UMC_ENABLE_NEW_RENDERS" in core/umc/include/umc_defs.h. See simple_player readme for more details. Note: Building UMC in a new directory is recommended. If your build process copies over a previous version of UMC, please remove null_drv.c, null_drv.h, null_video_renderer.cpp, and null_video_renderer.h from io/video_renders.
  • Multiple bug fixes have been incorporated. See the KB article titled Intel® IPP 7.0 Library Bug Fixes for details.

7.0 update 6 Release Notes

  • The ippiDCTFwd_32f_C1R function was threaded for additional performance improvement.
  • Multiple bug fixes have been incorporated. See the KB article titled Intel® IPP 7.0 Library Bug Fixes for details.

7.0 update 5 Release Notes

For technical reasons related to installation packaging, two editions of the 7.0.5 release have been issued. The Intel IPP library product binaries contained within these two 7.0.5 installation packages are identical. If you install the cryptography package make sure the three digit product ID on the install file (e.g. w_ccompxe_crypto_ipp_7.0.5.258.zip) matches the three digit ID in the main install package filename (e.g. w_ipp_7.0.5.258_ia32.exe).

  • The ippiDCTFwd_32f_C1R function was optimized more than 2x speedup
  • Multiple bug fixes have been incorporated. See the KB article titled Intel® IPP 7.0 Library Bug Fixes for details.

7.0 update 4 Release Notes

For technical reasons related to installation packaging, two editions of the 7.0.4 release were issued. The Intel IPP library product binaries contained within these two 7.0.4 installation packages are identical. If you install the cryptography package make sure the three digit product ID on the install file (e.g. w_ccompxe_crypto_ipp_7.0.4.221.zip) matches the three digit ID in the main install package filename (e.g. w_ipp_7.0.4.221_ia32.exe).

  • The px_/mx_ prefixes have been restored to the static generic library so that you can now include the static generic library in the same application that includes the product library. The automatic dispatcher will not recognize the generic library and will not dispatch to the generic optimizations; instead, you must call the generic functions directly with the px_/mx_ prefix. For more information, please see the KB article titled Generic Static Library Dispatching with the Intel® IPP 7.0 Library.
  • Multiple bug fixes have been incorporated. See the KB article titled Intel® IPP 7.0 Library Bug Fixes for details.

7.0 update 3 Release Notes

7.0 update 2 Release Notes

  • Additional optimizations for the 256-bit Intel® AVX SIMD instruction set have been incorporated. Please review the KB article titled Intel® IPP Functions Optimized for Intel® AVX (Intel® Advanced Vector Extensions) for details regarding which functions include direct optimization for the Intel AVX instructions.
  • New optimizations for the Intel® Atom™ instruction set have been incorporated. Please review the KB article titled Intel® Atom™ Processor support in the Intel® Integrated Performance Primitives (Intel® IPP) Library for details regarding which functions now include direct optimization for the Intel Atom processor.
  • Data compression Huffman performance gains of about 2x achieved via a redesign of the "Inflate for Fixed Huffman" algorithm.
  • Cryptography improvements include 1.4x faster "sign verify" and a 2x faster ippsMontForm() function. In addition, improvements have been made to the ippsDLPSignDSA(), ippsDLPVerifyDSA(), ippsDLPGenKeyPair() and ippsDLPPublicKey() functions.
  • The ipp_zlib library has been updated so it is now based on the zlib 1.2.5 distribution.

7.0 update 1a Release Notes

For technical reasons related to installation packaging, two editions of the 7.0.1 release have been issued. The Intel IPP library product binaries contained within these two 7.0.1 installation packages are identical. The second edition adds legacy px/mx "generic" add-on libraries for use in those situations where the new minimum SSE base level (see "7.0 update 1 Release Notes" below) will not work for your target systems.

IMPORTANT: Most systems do not require these add-on generic libraries! It is not necessary to download and re-install this edition of the Intel IPP library on your development system if you have already successfully downloaded and installed the first edition of the 7.0.1 library, either as a standalone product or as part of one of the Intel® Parallel Studio XE or Intel® Composer XE products.

These generic add-on libraries contain 32-bit and 64-bit code in single-threaded static and multi-threaded dynamic format only. The generic dynamic library files will automatically integrate with the Intel IPP library dispatch mechanism; the generic static library files do not integrate with the Intel IPP dispatcher.

Since the generic add-on libraries are provided in standard archives, you install them manually (as you currently do with the Intel IPP samples). If you have already installed the first edition of 7.0.1 on your system you do not need to download and re-install the entire 7.0.1a package; instead, download only the generic add-on library archives and extract the library files from those archives into their respective locations in your existing Intel IPP installation directories.

  • 1st edition Windows 7.0.1 files are denoted with a 7.0.1.104 or 7.0.1.041 label.
  • 2nd edition Windows 7.0.1a files are denoted with a 7.0.1.127 or 7.0.1.046 label.
  • 1st edition Linux 7.0.1 files are denoted with a 7.0.1.084 or 7.0.1.029 label.
  • 2nd edition Linux 7.0.1a files are denoted with a 7.0.1.107 or 7.0.1.037 label.

7.0 update 1 Release Notes

  • Additional optimizations for the 256-bit Intel® AVX SIMD instruction set (available on Intel® processors conforming to the Sandy Bridge microarchitecture) have been incorporated. Please review the KB article titled Intel® IPP Functions Optimized for Intel® AVX (Intel® Advanced Vector Extensions for more information about which functions include optimizations for the Intel AVX instructions.
  • IMPORTANT! The Intel SSE3 optimization layer (t7) has been removed from the 32-bit edition (ia32) of the library and

the minimum SIMD instruction level supported by this version of the library has changed.

      Please review the article titled

Understanding SIMD Optimization Layers and Dispatching in the Intel IPP 7.0 Library

    for more information.

7.0 Release Notes

The initial release of the Intel IPP library was only distributed as part of the Intel® Parallel Composer 2011 product, which is distributed with the Intel® Parallel Studio 2011 product, and is only available for the Microsoft* Windows* platform. Update releases are available on all supported platforms and as standalone products.

Performance and Optimization Changes:

  • Additional optimizations for the 256-bit AVX SIMD instruction set (available on Intel® processors conforming to the Sandy Bridge microarchitecture) have been incorporated.
  • AVX optimization (g9/e9) is enabled by default; eliminating the requirement to use ippEnableCpu() on AVX capable processors.
  • Further AES-NI optimizations have been applied to the cryptography domain (separate download, see below) and data compression (CRC32 for ipp_bzip2), substantially improving performance on those processors that support the AES-NI instructions.
  • Intel® Itanium® architecture (IA-64) support is not included in this release of the library. Intel IPP 6.1 is the latest release for the IA-64 architecture.
  • The base 32-bit optimization layer of the library (px) has been compiled for higher performance and now requires a processor that conforms to the SSE2 processor architecture; this change is consistent with the requirements of the 64-bit base optimization layer (mx).
  • The standalone Intel Atom™ processor static libraries have been merged into the dispatched versions of the static library.
  • The SSE2 optimization layers (t7/m7) have been removed from this version of the IPP library; they will continue to be supported in the Intel IPP 6.1 product.
  • The 32-bit SSE3 optimization layer (w7) has been removed from this version of the IPP library; it continues to be supported in the Intel IPP 6.1 product.
  • New ippSetAffinity() function provides finer control of OpenMP threading within the library. For a complete list of threaded functions, please review the ThreadedFunctionsList.txt list located in the Intel IPP documentation directory.
  • ippInitCpu() now provides finer grained control over internal library dispatching for Intel processors conforming to the Penryn, Nehalem, and Westmere microarchitectures.
  • The OpenMP static library has been deprecated; all IPP samples now reference only the OpenMP dynamic/shared library.
  • The AES GCM API has been augmented to improve performance of AES encryption on pre-Westmere CPUs.

Microsoft* Visual Studio* Support:

  • Microsoft* Visual Studio 2010 is now supported by the Windows edition of the Intel IPP library; meaning, Intel IPP library help files and project files are now compatible with the Visual Studio 2010 IDE. The Visual Studio 2005 and 2008 IDEs continue to be supported. Visual Studio .NET (2003) help is not supported by this release of the library; however, Intel IPP 7.0 applications can still be compiled and linked using the VS.NET IDE.
  • The DMIP sample now includes a Microsoft* DSL (Domain Specific Language) add-on for use with Microsoft* Visual Studio 2008.

Domain-Specific Changes:

  • Many new functions have been added to the library API in this release of the product, including IPPI_ANTIALIASING mode support for ippiResizeSqrPixel, new color conversion functionality for JPEG image processing and additional context functionality for the cryptography domain. For a complete list of the new functions added to this release please see the NewFunctionsList.txt list located in the Intel IPP documentation directory.
  • Support for the JPEG-XR (HD Photo) forward and inverse transforms for 16s, 32s and 32f data types and variable length code (VLC) encode and decode functions for 32s data types has been added.
  • A JPEG-XR (HD Photo) codec is now included in the UIC sample framework for grayscale, RGB and RGBA images with 8, 16, and 32-bit integer and 16 and 32-bit floating point pixel depths.
  • A new Windows Imaging Codec (WIC) added to the UIC sample.
  • The matrix math domain adds 86 new 3D math functions designed for use with the Microsoft* DirectX API. A DirectX compatible sample using these functions is also provided, making it very easy to integrate these functions into existing DirectX applications.
  • The speech recognition functions (ippSR domain) are not part of this release; this domain will continue to be supported in the IPP 6.1 product.
  • The SPIRAL generated functions (ippGEN domain) are now distributed as a separate download. See instructions below for more information.
  • The UMC simple_player application now runs on the Windows* Vista* and Windows 7* Aero interface.

New High-Level APIs:

  • A new interfaces directory has been added that contains high-level application code, in the form of source and pre-built binaries. Several popular data compression libraries (e.g., bzip2, zlib and gzip) have been modified for use with the Intel IPP library and can be found in this new interfaces directory for immediate use in your applications.
  • There is a new ipp_lzopack (data compression) library, located in the interfaces directory mentioned above.
  • Multi-threading is now part of the ipp_zlib library (by use of the OpenMP multi-threading library), also located in the new interfaces directory.

Installation Changes:

  • Documentation is now delivered in searchable HTML format; Windows CHM and Adobe PDF formats have been removed.
  • A new directory hierarchy has been established to simplify integration of the Intel IPP library with Intel Compiler products. This change may require updates to existing build scripts, makefiles and/or Visual Studio project files.
  • Directories formerly designated as "em64t" are now designated with the "intel64" tag. This change may require changes to existing build scripts, makefiles and/or Visual Studio project files.
  • Library filenames have been normalized to be consistent between 32-bit and 64-bit architectures (i.e., the "em64t" tag has been removed from all 64-bit library file names). This change may require that you update your build scripts, makefiles and/or Visual Studio project files.
  • The domain-specific "emerged" and "merged" static library files have been combined (e.g., ippsemerged.lib + ippsmerged_t.lib ? ipps_t.lib) for simpler reference and the single-threaded static libraries are now designated by a "_l" suffix (multi-threaded static libraries continue to be designated by a "_t" suffix). This change may require updates to existing build scripts, makefiles and/or Visual Studio project files.
  • The OpenMP static libraries have been deprecated; these OpenMP library components will still be shipped as part of this version of the product, but will be removed in a future release. See the Intel Compiler documentation for more information regarding OpenMP.

Product Contents

The core Intel® Integrated Performance Primitives (Intel® IPP) v7.0 for Microsoft* Windows* consists of two installation packages:

  • Intel® IPP for Microsoft* Windows* on IA-32 Intel® Architecture
  • Intel® IPP for Microsoft* Windows* on Intel® 64 Architecture

and the following optional add-on packages:

The core Intel® Integrated Performance Primitives (Intel® IPP) v7.0 for Linux* consists of two installation packages:

  • Intel® IPP for Linux* on IA-32 Intel® Architecture
  • Intel® IPP for Linux* on Intel® 64 Architecture

and the following optional add-on packages:

There is no standalone installation of the Intel IPP v7.0 for Mac OS X*. The Intel IPP 7.0 for Mac OS X is distributed as part of the Intel® Composer XE and Intel® C++ Composer XE product suites.

Intel® IPP for Cryptography is a Separate Download

The Intel IPP for cryptography is a separate installation package that contains the binaries and header files needed to utilize the functions contained in the Intel IPP cryptography domain. It is an add-on to the Intel IPP library and, therefore, requires that the core Intel IPP already be installed on your system. You must first install the standalone Intel® IPP, Intel® Cluster Studio XE, Intel® C++ Studio XE, Intel® Composer XE, Intel® Parallel Composer, Intel® Parallel Studio, or the Intel® Parallel Studio XE product before installing the respective Intel IPP for cryptography package.

To obtain the Intel IPP for cryptography, which are distributed separately from the main Intel IPP, review this knowledge base article: Where do I download the Intel IPP for Cryptography?.

Intel® IPP SPIRAL Domain (ippGEN) is a Separate Download

In order to decrease the size of the Intel IPP installation package, the SPIRAL subset (ippGEN) of the signal processing domain is now distributed as a separate library add-on. Go to the Intel Registration Center to download the ippGEN component of the Intel® IPP.

SPIRAL for Intel® IPP is a separate installation package that contains the binaries and header files needed to utilize the functions contained in the ippGEN domain. It is an add-on to the Intel® IPP and, therefore, requires that the core Intel® IPP be already installed on your system. You must first install the standalone Intel® IPP, Intel® Cluster Studio XE, Intel® C++ Studio XE, Intel® Composer XE, Intel® Parallel Composer, Intel® Parallel Studio, or the Intel® Parallel Studio XE product before installing the respective SPIRAL add-on library.

The ippGEN package is an adjunct to the ippSP (Signal Processing) domain. It contains signal processing functions that have been optimized for non-ordinary size data sets, primarily in the class of FFT functions. If you have not used these "ippg" functions in the past it is likely that you do not need to download and install this add-on library. However, there is no harm to installing this add-on with the core Intel IPP.

Technical Support

If you did not register your Intel software product during installation, please do so now at the Intel® Software Development Products Registration Center. Registration entitles you to free technical support, product updates and upgrades for the duration of the support term.

For technical information about the Intel IPP, including FAQ's, tips and tricks, and other support information, please visit the Intel® IPP forum: /en-us/forums/intel-integrated-performance-primitives/ and browse the Intel® IPP knowledge base: /en-us/articles/intel-ipp-kb/all/.

For general information about Intel technical support, product updates, user forums, FAQs, tips and tricks and other support questions, please visit http://www.intel.com/software/products/support/.

Note: If your distributor provides technical support for this product, please contact them rather than Intel.

 

License Definitions

Any software source code included with this product is furnished under a software license and may only be used or copied in accordance with the terms of that license. Please see the Intel Software Products End User License Agreement for license definitions and restrictions on the library.

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.

UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR.

Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information.

The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.

Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.

Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or go to http://www.intel.com/design/literature.htm.

The Intel IPP library functions may contain code that can be used for implementations of algorithms that may require complying with patent conditions.

Please be aware that the RC5 algorithms are patented by Rivest, Ronald L.; RSA* Data Security, Inc. US patent 5,724,428.

Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. For a complete list of Intel trademarks please go here: http://www.intel.com/sites/sitewide/en_US/tradmarx.htm.

*Other names and brands may be claimed as the property of others.

Optimization Notice in English

 

Copyright © 2002-2012, Intel Corporation. All rights reserved.

如需更全面地了解编译器优化,请参阅优化注意事项