| March 8, 2010 8:00 PM PST | |
Please see the following links for the latest information regarding the Intel IPP library:
- Intel IPP Main Product Page
- Intel IPP 6.1 Library Release Notes
- Intel IPP 6.1 Library Installation Guide
- Intel IPP 6.1 Library System Requirements
- Intel IPP 6.1 Library Getting Started
- Intel IPP 6.1 Library Bug Fixes
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.
Environment Variables
Each platform includes a script (batch file on Windows, shell script on other platforms) in the <install-dir>\tools\env directory that sets the IPPROOT, LIB, INCLUDE and some system-specific environment variables to point to the appropriate IPP install directories. Use of this script is a convenient, but optional, means by which to configure your development system for compiling and linking with the IPP library.
Before running the build scripts provided with any sample IPP applications you must first set the IPPROOT environment variable to point to the IPP installation directory on your system. IPPROOT needs to be configured to point to that directory which contains the bin, lib, include and tools directories. The build scripts will reference the IPPROOT environment variable in order to locate the IPP library and additional scripts.
Once defined, you can reference the IPPROOT variable within your makefiles and/or project files to locate the header and library files necessary to compile and link applications using the Intel IPP library.
On a Windows system the following batch files are available to configure the environment for building IPP applications:
- IA-32 Intel® Architecture: $(IPPROOT)\tools\env\ippenv.bat
- Intel® 64 (Intel® EM64T) Architecture: $(IPPROOT)\tools\env\ippenvem64t.bat
- Intel® Itanium® Architecture: $(IPPROOT)\tools\env\ippenv64.bat
On a Linux system the following shell scripts are available to configure the environment for building IPP applications:
- IA-32 Intel® Architecture: ${IPPROOT}/tools/env/ippvars32.sh
- Intel® 64 (Intel® EM64T) Architecture: ${IPPROOT}/tools/env/ippvarsem64t.sh
- Intel® Itanium® Architecture: ${IPPROOT}/tools/env/ippvars64.sh
- Intel® Atom™ Processor: ${IPPROOT}/tools/env/ippvars32.sh
Include Files
The Intel IPP functions and structures are defined within several header files in the $(IPPROOT)\include directory. The "ipp.h" header file includes all of these. For forward compatibility it is best to include only the ipp.h header file.
Calling Intel IPP Functions
The dynamic library dispatcher and merged static library mechanisms (described below) are designed to make the process of calling an Intel IPP functions as simple as calling any C function. Multiple SIMD-optimized versions of each function are concealed behind a single entry point.
Refer to the documentation for complete descriptions of the Intel IPP functions.
See the following KB articles for more information on linking with the Intel IPP library:
Intel® IPP Linkage Models - Quick Reference Guide
Simplified Link Instructions for the IPP Library
And read these articles for information regarding the IPP dispatching mechanism:
Understanding CPU Dispatching in the Intel® IPP Library
IPP Dispatcher Control Functions - ipp*Init*() Functions
Using the Intel IPP Dynamic (Shared) Libraries
The Intel IPP library includes "stub" static library files that link to the correct entry points and automatically load the appropriate Intel IPP dynamic (shared) libraries at run time. To use the IPP dynamic libraries you must link with the library files located in the $(IPPROOT)\stublib directory.
At run time the dynamic libraries will automatically detect the CPU type and load the correct processor-specific library files. The processor-specific dynamic libraries include suffixes like px, t7, w7, etc. in their names. The only requirements necessary to use the dynamic libraries, once you have linked against the "stub" static libraries, is to insure that they are located in the appropriate system path(s).
Note: the environment scripts described above, in the Environment Variables section, will correctly located your dynamic library files in the appropriate system path(s).
On a Linux system be sure the Intel IPP shared libraries are included in the system variable LD_LIBRARY_PATH. For example, if the libraries are located in the /opt/intel/ipp/6.1.x.xxx/ia32/sharedlib folder, then the following command line should be entered:
export LD_LIBRARY_PATH=/opt/intel/ipp/6.1.x.xxx/ia32/sharedlib:$LD_LIBRARY_PATH
Intel IPP 6.0 and later uses OpenMP to implement it's internal threading. You can use OpenMP environment variables and APIs to control the OpenMP threading behavior. For more information regarding OpenMP and the Intel IPP library, please refer to the following KB articles:
Intel® IPP - Threading / OpenMP* FAQ
OpenMP and the Intel® IPP Library
Note: You must include the appropriate libguide.so (Linux) or libiomp5.dll (Windows) file in your PATH. There are known incompatibilities with other versions of these dynamic libraries. If you encounter problems, make sure that there is only one version located in your PATH.
Please read the following KB articles for information regarding the IPP library processor codes:
Understanding CPU Dispatching in the Intel® IPP Library
IPP Dispatcher Control Functions - ipp*Init*() Functions
Building a Custom Dynamic (Shared) Library
Please see the following KB article and the IPP documentation for information on building a custom dynamic library:
Intel® IPP Linkage Models - Quick Reference Guide
Using the Intel IPP Performance Benchmark Tool
The Intel IPP library includes a tool named "perfsys" to evaluate the performance of each Intel IPP function.
For more details on running perfsys please review the readme.htm file located in the $(IPPROOT)\tools\perfsys directory.
This article applies to: Intel® Integrated Performance Primitives Knowledge Base
For more complete information about compiler optimizations, see our Optimization Notice.


