There are many ways to learn more about using Intel IPP and the functionality that it offers:
You will need to add the path to the shared library to the LD_LIBRARY_PATH variable (see below). You will also need to specify the location for the Intel® IPP include and lib files. Each package offers a shell script in the tools/env directory sets your lib, include, and path environment variables for Intel IPP
Refer to the
manuals for descriptions of Intel
IPP functions.
On a IA-32 based system:
export LD_LIBRARY_PATH=/opt/intel/ipp/6.1.x.xxx/ia32/sharedlib:$LD_LIBRARY_PATHThe shared libraries libipp*.so are "dispatcher" dynamic libraries. At run time they will detect the processor and load the correct processor-specific shared libraries. This allows your code to call Intel® IPP functions without worrying about which processor the code will execute on - the appropriate version is automatically loaded and used. These processor-specific libraries are named *px.so, *t7.so, *w7.so, *v8.so , *p8.so and *s8.so. All of these libraries are in the sharedlib directory.
PLEASE NOTE: It is required that the appropriate libguide.so is also included in your PATH environment variable. Include the directory sharedlib when running on a IA-32 system. There are known incompatibilities with other versions of libguide.so. If you run in to problems, make sure that there are no other versions of libguide.so on your PATH.
Processor Codes
px - C-optimized for all IA-32 processors
w7 - Optimized for Pentium 4 processors with Streaming SIMD Extensions 2 (SSE2)
t7 - Optimized for Pentium 4 processors with Streaming SIMD Extensions 3 (SSE3)
v8 - New Optimizations for 32-bit applications on Intel® Core™ 2 and Intel® Xeon® 5100 Processors
p8 - New Optimizations for 32-bit applications on 45nm Intel® Core™2 Duo (Penryn) family processors
s8 - New Optimizations for 32-bit applications on Intel® Atom™ family processors
On an Intel Itanium Architecture based system:
export LD_LIBRARY_PATH=/opt/intel/ipp/6.1.x.xxx/itanium/sharedlib:$LD_LIBRARY_PATH
The shared libraries libipp*64.so are "dispatcher" dynamic libraries. At run time they will detect the processor and load the correct processor-specific shared libraries. This allows your code to call Intel® IPP functions without worrying about which processor the code will execute on - the appropriate version is automatically loaded and used. These processor-specific libraries are named *i7.so. All of these libraries are in the sharedlib directory.
PLEASE NOTE: It is required that the appropriate libguide.so is also included in your PATH environment variable. Include the directory sharedlib when running on a IA-32 system. There are known incompatibilities with other versions of libguide.so. If you run in to problems, make sure that there are no other versions of libguide.so on your PATH.
i7 - Optimized for Intel Itanium processor
family
On a IA-32 based system:
export LD_LIBRARY_PATH=/opt/intel/ipp/6.1.x.xxx/lp32/sharedlib:$LD_LIBRARY_PATH
The shared libraries libipp*.so are "dispatcher" dynamic libraries. At run time they will detect the processor and load the correct processor-specific shared libraries. This allows your code to call Intel® IPP functions without worrying about which processor the code will execute on - the appropriate version is automatically loaded and used. These processor-specific libraries are named *px.so, *t7.so, *w7.so, *v8.so and *p8.so. All of these libraries are in the sharedlib directory.
PLEASE NOTE: It is required that the appropriate libguide.so is also included in your PATH environment variable. Include the directory sharedlib when running on a IA-32 system. There are known incompatibilities with other versions of libguide.so. If you run in to problems, make sure that there are no other versions of libguide.so on your PATH.
px - C-optimized for all IA-32 processors
s8 - New Optimizations for 32-bit applications on Intel® Atom™ family
processors
In order to use these static libraries, link to the files libipp*merged.a in the lib directory. Then follow the directions in Intel IPP Linkage Samples and create the dispatching stubs for just the functions that you need.
If you desire to link to a single processor specific static library only,
please check the Intel IPP Linkage Samples to find details.
IPP Shared Object Finding Libraries
Another feature of the shared object finding libraries is that they allow automatic updating of a end-user application with new versions of Intel IPP functions. The dispatcher searches the PATH for the Intel IPP shared object dispatchers (ex. libipps.so). If the dispatcher finds a newer version of the code in the Intel IPP shared object(s), the code from the newer shared object(s) is used in place of the code built-in to the application. So, there is no development needed to take advantage of the latest Intel IPP optimizations or new Intel processors!
There are some disadvantages in using the shared object finding libraries as compared to the merged libraries. When using the shared object finding libraries, it is not possible to exclude any cpu-specific code; all processor versions (IA-32 only) of each function will be linked into your application. Also, you cannot use the shared object finding libraries in kernel mode.
Using the Intel IPP Performance Benchmark Tool
The Intel IPP Package provides a tool "perfsys" to test the performance of each Intel IPP function in the API. For more details on running the performance test tool, please check the readme.htm under directory .\tools\perfsys\.
Intel, the Intel logo, Intel SpeedStep, Intel NetBurst, Intel NetStructure, MMX, i386, i486, Intel386, Intel486, Intel740, IntelDX2, IntelDX4, IntelSX2,Celeron, Intel Centrino, Intel Xeon, Intel XScale, Itanium, Pentium, Pentium II Xeon, Pentium III Xeon, Pentium M, and VTune are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.
* Other names and brands may be claimed as the property of others.
Copyright © 2002-2009 Intel Corporation.