Use Intel Performance Libraries on 64-Bit Architecture


Challenge

Implement code form Intel® Performance Libraries to optimize code associated with hotspots for the 64-bit Intel® architecture. Intel has developed highly optimized standardized routines for both the Pentium® processor family and the Intel® Itanium® processor family. To the extent that an application can use these routines, performance optimization will be greater, whether running on 32-bit or 64-bit processors.


Solution

Examine Intel Integrated Performance Primitives (Intel IPP), Intel Math Kernel Library (Intel MKL), and other Intel Performance Libraries for functions that are suitable for your application. The table below summarizes the various performance libraries developed by Intel, along with their intended usage.

Library

Functions

Intel Integrated Performance Primitives (Intel IPP)1

Comprised of more than 2500 highly optimized Signal Processing, Image Processing, and Computer Vision functions that can be used in every application on Intel processors running Windows* and Linux* operating systems. These include optimized digital signal processing, imaging, audio, video, speech recognition, and computer vision functions.

Intel Math Kernel Library (Intel MKL)1

Consists of BLAS (level 1, 2, and 3), extended BLAS, CBLAS interface, FFTs, LAPACK, and vectorized transcendental functions (VML). Provides high performance on critical kernel operations.

Intel Recognition Primitives Library4

Includes a set of highly optimized processor specific DLLs and static libraries for speech and character recognition.

Intel Signal Processing Library3

Consists of a rich set of generic functions (both integer and floating-point) in standard DLLs and static libraries form.

Intel Image Processing Library3

Provides a set of low-level image manipulation functions in the form of standard DLLs and static libraries.

Intel JPEG Library2

Provides high performance and easy encoding and decoding of JPEG images.

 

1-Optimized for the Pentium processor family and Itanium processor family. 2-Optimized for the Pentium processor family through the Pentium 4 processor. 3-Optimized for the Pentium processor family through the Pentium III processor. 4-Optimized for the Pentium processor family through the Pentium II processor.

Of particular interest among these performance libraries are LIBM and Intel MKL. LIBM is a set of basic mathematical routines has been developed for use with Itanium processors, which can be used instead of the standard versions often found in LIBC. The source code for these routines has been placed in open source, and anyone is allowed to download and use the routines. They are also part of the standard Intel Fortran 90 and C++ product offerings.

The source code for these routines can be found at the Intel Software Development Products web site under Open Source Software. A program compiled with the Intel compilers gets the optimized versions by default. Intel MKL is optimized using any method appropriate for the particular function. A version of Intel MKL exists for each Intel architecture, and linking in the appropriate library for the architecture of interest allows for optimal performance.

The level 3 BLAS and FFTs are threaded to support multiprocessor platforms, and they will automatically use as many processors as they find available to them. Information regarding Intel MKL can be found at: /en-us/intel-mkl/


Source

An Introduction to the Optimization of Applications for Itanium® Processors

 


For more complete information about compiler optimizations, see our Optimization Notice.