Intel® Integrated Performance Primitives
Creating Single-Processor Executables

Introduction

The Intel® Integrated Performance Primitives (Intel® IPP) Merged Static Libraries are provided for applications that require the small footprint advantages of static linking. The static libraries contain versions of each function for each optimization level.  In the unusual case when an application or driver needs to be tied to a particular processor, it is also possible to link to one implementation layer of Intel® IPP only to save space.

Static linking to Intel® IPP Functions for One Processor

  1. Add the libipp*.a files to your project and its source tree. Note: internal threading is deprecated in Intel IPP 8.0 and the mult-ithreaded static libraries are not installed by default.
  2. Include one of the following files located in the include directory: ipp_mx.h, ipp_m7.h, ipp_n8.h, ipp_y8.h, ipp_e9.h, or ipp_l9.h. See the table below to choose the appropriate header. Include one of the specified header files before other Intel IPP headers.
  3. Add the libippcore.a file to your project and its source tree.
  4. Include Intel IPP header file(s) as normal, after the above conversion header.
  5. Call Intel IPP functions normally from your application.

Now the processor-specific version of each function you specify will be called from the static libraries. It is important to ensure that both processor and operating system supports the full capabilities of the target processor.

Processor codes

Include one of the following files, according to the optimization level available on the target processor:
Header Optimization Level
ipp_mx.h Generic code optimized for processors with Intel® Streaming SIMD Extensions 2 (Intel® SSE2)
ipp_m7.h Optimized for processors with Intel SSE3
ipp_n8.h Optimized for Intel® Atom™ processor with SSSE3
ipp_y8.h Optimized for processors with Intel SSE4.2 and Intel® Advanced Encryption Standard New Instructions (Intel® AES-NI)
ipp_e9.h Optimized for processors with Intel® Advanced Vector Extensions (Intel® AVX) and Intel AES-NI
ipp_l9.h Optimized for processors with Intel® Advanced Vector Extensions 2 (Intel® AVX2) and Intel AES-NI
ipp_n0.h Optimized for Intel® Advanced Vector Extensions 512 (Intel(R) AVX-512) for Intel(R) Many Integrated Core Architecture (Intel(R) MIC Architecture) enabled processors
ipp_k0.h Optimized for Intel® Advanced Vector Extensions 512 (Intel(R) AVX-512) enabled processors

Directory Contents

File Description
readme.htm This file, Creating Single-Processor Executables 
ipp_*.h Files that redefine each Intel® IPP symbol to the processor-specific counterpart

Optimization Notice

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804

Legal Information

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.

A "Mission Critical Application" is any application in which failure of the Intel Product could result, directly or indirectly, in personal injury or death.  SHOULD YOU PURCHASE OR USE INTEL'S PRODUCTS FOR ANY SUCH MISSION CRITICAL APPLICATION, YOU SHALL INDEMNIFY AND HOLD INTEL AND ITS SUBSIDIARIES, SUBCONTRACTORS AND AFFILIATES, AND THE DIRECTORS, OFFICERS, AND EMPLOYEES OF EACH, HARMLESS AGAINST ALL CLAIMS COSTS, DAMAGES, AND EXPENSES AND REASONABLE ATTORNEYS' FEES ARISING OUT OF, DIRECTLY OR INDIRECTLY, ANY CLAIM OF PRODUCT LIABILITY, PERSONAL INJURY, OR DEATH ARISING IN ANY WAY OUT OF SUCH MISSION CRITICAL APPLICATION, WHETHER OR NOT INTEL OR ITS SUBCONTRACTOR WAS NEGLIGENT IN THE DESIGN, MANUFACTURE, OR WARNING OF THE INTEL PRODUCT OR ANY OF ITS PARTS.

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 by visiting Intel's Web Site.

Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each processor family, not across different processor families. See http://www.intel.com/products/processor_number for details.

BlueMoon, BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino Inside, Cilk, Core Inside, E-GOLD, Flexpipe, i960, Intel, the Intel logo, Intel AppUp, Intel Atom, Intel Atom Inside, Intel Core, Intel Inside, Intel Insider, the Intel Inside logo, Intel NetBurst, Intel NetMerge, Intel NetStructure, Intel SingleDriver, Intel SpeedStep, Intel Sponsors of Tomorrow., the Intel Sponsors of Tomorrow. logo, Intel StrataFlash, Intel vPro, Intel XScale, InTru, the InTru logo, the InTru Inside logo, InTru soundmark, Itanium, Itanium Inside, MCS, MMX, Moblin, Pentium, Pentium Inside, Puma, skoool, the skoool logo, SMARTi, Sound Mark, Stay With It, The Creators Project, The Journey Inside, Thunderbolt, Ultrabook, vPro Inside, VTune, Xeon, Xeon Inside, X-GOLD, XMM, X-PMU and XPOSYS are trademarks of Intel Corporation in the U.S. and/or other countries.

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

Microsoft, Windows, and the Windows logo are trademarks, or registered trademarks of Microsoft Corporation in the United States and/or other countries.

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