Intel® Math Kernel Library 6.0
for Linux*
Release Notes
Contents
Overview
New in Intel® MKL 6.0
System Requirements
Installation
Directory Structure
Known Limitations
Technical Support and Feedback
Related Products and Services
Copyright and Legal Information
The Intel® Math Kernel Library (Intel® MKL) is comprised of a number of sub-libraries:
- Basic linear algebra subprograms (BLAS)
- Linear algebra package (LAPACK)
- Vectorized transcendental functions known as the Vector Math Library (VML)
- Vectorized random number generators known as the Vector Statistical Library (VSL)
- Discrete Fourier transforms (DFT)
The library also has a set of
C interface files to the BLAS known as the cblas interface.
There is a new set
of DFT functions included in Intel MKL 6.0.
Among the features of this new set of functions is the ability to do multiple
dimension transforms, mixed radix transforms, specify in-place versus not
in-place transforms, and to perform multiple 1D transforms in a single call.
There are Fortran and C interfaces (but only Fortran
storage) and the ability for the user to set scaling.
Also new in Intel MKL 6.0 is VSL which provides a large set of vectorized random number generators for commonly used probability distributions as well as five basic (uniform) generators. There are both discrete and continuous functions. There also exist service routines to manage random streams and register user-provided basic random number generators (bRNG) which can be used in place of VSL’s bRNGs with the other distributions.
VML is a set of vectorized transcendental
functions which offer both high performance and excellent accuracy compared to
scalar functions for most of the processors. For the Intel®
Itanium® 2 processor these vectorized functions are
considerably faster than using scalar library on vectors longer than a few
elements, while maintaining accuracy approaching that of libm.
This version of Intel MKL has optimized libraries that support the Intel® Pentium III processor, the Intel® Pentium 4 processor, the Intel® Pentium® M based on Intel® Centrino mobile technology, and the Intel® Itanium® 2 processor. The library selects the correct processor-optimized code at run time for best performance on Intel processors.
The original versions of the BLAS from which that part of Intel MKL was
derived can be obtained from
http://www.netlib.org/blas/index.html. The original versions of
LAPACK from which that part of Intel MKL was derived can be obtained from
http://www.netlib.org/lapack/index.html. The authors of LAPACK
are E. Anderson, Z. Bai, C. Bischof, S. Blackford, J. Demmel,
J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and
D. Sorensen.
Additional information on this software is available at http://developer.intel.com/software/products/perflib/.
- Functionality
- New DFTs introduced: These allow multidimensional mixed radix transforms, with the ability to make multiple 1D transformations per call.
- CLARNV and ZLARNV functions were added to LAPACK library.
- Vector Statistical Library (VSL) introduced vectorized random number generators for seventeen distributions as well as five basic random number generators. VSL is highly optimized for the Intel® Pentium® 4 and Itanium® 2 processors. For details see the VSL Notes document (vslnotes.pdf).
- Three new functions have been added to VML: error function (v[s,d]Erf), complementary error function (v[s,d]Erfc) and "fixed-degree" power function (v[s,d]PowX) (y[i] = x[i]^constant).
- Performance improvements since Intel® MKL 5.2 SP1
- Improvements for the Intel® Itanium® 2 processor
- DGEMM: improved by about 3%. For large matrices the efficiency reaches 95%. The sensitivity of performance to leading dimension and address alignment has been reduced.
- DGER: improved by 15%-40%
- DGEMV: average performance gain of 30%
- ZGEMV: improved by 15%-70%
- CGEMV: improved by 10%-20%
- DSCAL: improved by more than 2 times.
- DAXPY: reduced sensitivity to vector alignment for more uniform performance.
- All High Accuracy (HA) VML functions have been optimized for the Itanium® 2 processor. For details see vmlnotes.htm document.
- Improvements for the Intel® Pentium® 4 processor
- DTRSM: left cases improve with small cases up to 3 times faster, and larger sizes (200-300) 30%-50% faster.
- xTBMV functions were improved by 30-50% for small sizes and by 15-30% for large sizes.
- xTBSV: small sizes improve by 10%-30% and by 20%-50% for large sizes.
- High Accuracy (HA) and Low Accuracy (LA) versions of error (v[s,d]Erf) and complementary error functions (v[s,d]Erfc) have been optimized for Pentium® 4 processor, performance of several other functions was slightly improved. For details see the vmlnotes.htm document.
- Other Improvements
- Alternative threading control has been provided: MKL_SERIAL environment variable is supported to force single-threaded mode (please see details in mkluse.htm file). Also, when the environment variable OMP_NUM_THREADS is not set the default behavior is now to operate in single threaded mode.
- All statically linkable processor specific
versions of the Intel MKL are now collected into two libraries with runtime CPU detection – one library for IA-32 and one for the Itanium® processor family. These libraries replace previous processor specific sub-libraries.
- The cblas indexed Level 1 functions (cblas_i?amax, cblas_i?amin, cblas_?axpyi, cblas_?roti,cblas_?doti, cblas_?dotci, cblas_?dotui, cblas_?gthr, cblas_?gthrz, cblas_?sctr) and banded Level 2 functions (cblas_?gbmv, cblas_?hbmv, cblas_?tbmv, cblas_?tbsv) were corrected to make them consistent with C
language indexing.
- The ILAENV function
now operates correctly when linked dynamically.
- Various sections of
the reference manual have been updated (especially those concerning VSL
and the DFTs). Descriptions of all auxiliary LAPACK routines added to the
manual.
- Quick Reference Guide fully updated to include all new functionality.
- New Memory Manager: Improves the performance of BLAS Level3, LAPACK, and FFT functions when
these functions are called more than once. This particularly affects
performance for small problem sizes (see mkluse.htm in the doc
directory).
- Accuracy has improved for the high accuracy (HA) version of the Power function (vdPow).
- Low Accuracy (LA) implementations of v[s,d]Erf, v[s,d]Erfc and v[s,d]Tanh functions have been added to VML for Pentium® 4 processor.
- There is a new tool called the Intel® Performance Library ID (IPLID) Tool that should be used in the event that you need to submit an issue to Intel® Premier Support. The information that this tool provides will help customer support personnel know what version of the library you are using. This utility can be found in the tools/support sub-directory and can be invoked by typing './iplid' in the shell.
- There are two new files, mklvars32.sh and mklvars64.sh, that are placed in the tools/environment directory. These files can be used to set the environment variables in the user shell.
System Requirements
Recommended hardware: A PC, workstation or server with Intel® Xeon processor, Pentium 4 processor, of Itanium® 2 processor.
Software requirements for IA-32: Linux* distributions with 2.4.x kernels. Intel® MKL has been validated with Red Hat* Linux* version 7.2. Depending on usage, an appropriate Fortran compiler and/or ANSI C compiler (see Compiler Support).
Software requirements for the Intel Itanium® processor family: Linux* distributions with Kernel 2.4.9-18smp or later. Intel® MKL has been validated with Red Hat* Linux* version 7.2. Intel® Fortran compiler and/or Intel® C++ compiler to build programs to link with Intel MKL (see Compiler Support).
Compiler Support
Intel MKL has parts which have Fortran interfaces, and are Fortran in their data structures, and parts which have C interfaces and have C data structures. The following list represents those C and Fortran compilers which Intel supports for use with Intel MKL:
- Intel® FORTRAN Compiler v6.0 or later
- Intel® C++ Compiler v6.0 or later
- GNU compiler collection
The user notes file (mkluse.htm in the doc directory) contains advice on how to link to Intel MKL with different compilers.
Installation
To install the Intel MKL package on Linux* use the following
instructions. The installation software installs the full Intel MKL
file set for all supported processors.
-
Use the tar command to extract the Intel MKL package in a directory to which
you have write access.
- Become the root user and execute the install script in the directory where the tar file was extracted by typing "./install.sh".
- The use of rpm necessitates root access to your system. If you do not have root access, contact customer support for direct access to the RPM package, and work around information.
- The Intel® Performance Libraries products already installed will be listed, followed by a menu of products to install which includes:
- Intel® Math Kernel Library Version 6.0
- Select a package to install. All packages needed to use the product will also be installed. The default RPM options [-ivh --replacefiles] are recommended to force the update of existing files. The recommended (default) installation directory is /opt/intel.
- The Intel MKL installation program uses RPM as the installation vehicle. Some versions of RPM do not allow redirection of installation. If the install program detects that you have a version of RPM that does not allow redirection, you will be required to install to the default directory.
- After installation, the packages installed will be redisplayed, followed by a redisplay of the install menu. Enter 'x' to exit the install script.
Two files, mklvars32.sh and mklvars64.sh, will be placed in the tools/environment directory. These files can be used to set the INCLUDE and LD_LIBRARY_PATH environment variables in the current user shell.
See
the Intel MKL website for updates, when available.
Intel MKL uses GlobeTrotter's* FLEXlm* electronic licensing
technology. License management should be transparent, but if you have
any problems during installation, please make sure a current license
file (*.lic) is located in the same directory as the install
file. If you still have problems, please submit an issue to Intel®
Premier Support. See the "Technical Support and Feedback"
section of this document for details.
The information below indicates the high level structure for Intel MKL.
mkl60 |
Main directory |
|
mklnotes.htm |
Release notes (this file) |
|
mkllic.htm |
Intel MKL license |
mkl60/doc |
Directory for documents |
|
index.htm |
Index to the Intel MKL documentation |
|
mklman60.pdf |
Intel MKL manual, in pdf format |
|
mkluse.htm |
User notes for Intel MKL |
|
vmlnotes.htm |
General discussion of VML |
|
vslnotes.pdf |
General discussion of VSL |
mkl60/examples |
Source and data for examples |
mkl60/include |
Contains include files for both library routines and test and example programs |
mkl60/tests |
Source and data for tests |
mkl60/lib/32 |
Contains static libraries and shared objects for IA-32 applications |
mkl60/lib/64 |
Contains static libraries and shared objects for the Itanium® 2 processor |
mkl60/tools/environment |
Contains batch files to set environment variables in the user shell |
mkl60/tools/support |
Contains a utility for reporting package ID and license key information to Intel® Premier Support |
Known Limitations
There are a number of limitations in the current implementation of the set
of DFT functions:
- The function DftiCopyDescriptor is not implemented.
- The function DftiGetValue is implemented with the following restriction: The DFTI_FORWARD_ORDERING and DFTI_BACKWARD_ORDERING parameters are not supported yet.
- Complex data is stored using the Fortran data type; real and imaginary parts are side by side.
- Modes DFTI_INITIALIZATION_EFFORT, DFTI_WORKSPACE, DFTI_TRANSPOSE are implemented only for the default case. DFTI_FORWARD_SIGN can have the default value only and is not changeable by the DftiSetValue function.
- DFTI_PRECISION, DFTI_DIMENSION, DFTI_LENGTHS are settable only through the DftiCreateDescriptor function and are not changeable by the DftiSetValue function.
- Mode DFTI_FORWARD_DOMAIN can not have the value DFTI_CONJUGATE_EVEN.
- Real DFT is implemented as single-threaded and one-dimensional only.
- Modes DFTI_PACKED_FORMAT, DFTI_REAL_STORAGE, DFTI_CONJUGATE_EVEN_STORAGE can have the default value only and is not changeable by the DftiSetValue function (i.e., DFTI_PACKED_FORMAT = DFTI_CCS_FORMAT, DFTI_REAL_STORAGE = DFTI_REAL_REAL, DFTI_CONJUGATE_EVEN_STORAGE = DFTI_COMLEX_REAL.
Intel MKL is threaded to effectively use multiple processors. Therefore, in MP systems, best performance will be obtained with hyperthreading turned off. This insures that the operating system assigns threads to physical processors only.
When using the DFTs in Intel MKL it may be necessary to explicitly link 'libm'. Please include '-lm' on your link line after any reference to MKL libraries.
Some VML and VSL examples can not be compiled with GNU compilers.
Self Help and User Forums
A rich repository of self-help product information such as tutorials, getting started tips, known product issues, product errata, compatibility information and answers to frequently asked questions can be found at the Intel® Software Development Products Technical Support. It's a great place to find answers quickly or to gain insight in using our products effectively.
Submitting Issues
Your feedback is very important to us. To receive technical support and product updates for the tools provided in this product you need to register at the Intel®
Registration Center and click on “Create New Account”.
For information about the Intel® MKL including FAQ’s, tips and tricks, and other support information, please visit: http://support.intel.com/support/performancetools/libraries/mkl
Note: If you are having trouble registering or unable to access your Premier Support account, contact developer.support@intel.com. Please do not email your technical issue to developer.support@intel.com as it
is not a secure medium.
To submit an issue via the Intel® Premier Support website, please perform the following steps:
- Ensure that Java* and JavaScript* are enabled in your browser.
- Go to https://premier.intel.com/.
- Type in your Login and Password. Both are case-sensitive.
- Click the "Submit" button.
- Read the Confidentiality Statement and click the "I Accept" button.
- Click on the "Go" button next to the "Product" drop-down list.
- Click on the "Submit Issue" link in the left navigation bar.
- Choose "Development Environment (tools,SDV,EAP)" from the "Product Type" drop-down list.
- If this is a software or license-related issue choose "Intel® MKL for Linux*" from the "Product Name" drop-down list. For non-commercial license holders or expired support service account holders choose "Intel® MKL for Linux* – LtdSup" from the "Product Name" drop-down list.
- Enter your question and complete the fields in the windows that follow to successfully submit the issue.
Please follow these guidelines when forming your problem report or product suggestion:
- Describe your difficulty or suggestion.
For problem reports please be as specific as possible (e.g., including compiler and link command line options), so that we may reproduce the problem. Please include a small test case if possible.
- Describe your system configuration information.
Be sure to include specific information that may be applicable to your setup: operating system, name and version number of installed applications, and anything else that may be relevant to helping us address your concern.
Information on Intel software development
products is available at
http://www.intel.com/software/products. Some of the related products include:
- The
Intel® Software College provides interactive tutorials,
documentation, and code samples that teach Intel architecture and
software optimization techniques.
- The
VTune Performance Analyzer allows you to evaluate how
your application is utilizing the CPU and helps you determine if
there are modifications you can make to improve your application's
performance.
- The
Intel® C++ and Fortran Compilers are an important part of making software run at top
speeds and fully support the latest Intel IA-32 and Itanium processors.
- The
Intel® Performance Library Suite provides a set of
routines optimized for various Intel processors. The
Intel® Math Kernel Library, which provides developers of scientific
and engineering software with a set of linear algebra, fast Fourier transforms and
vector math functions optimized for the latest Intel Pentium and Intel Itanium processors.
The Intel® Integrated Performance Primitives consists of cross platform tools
to build high performance software for several Intel architectures and several operating systems.
Celeron, Dialogic, i386, i486, iCOMP, Intel, Intel
logo, Intel386, Intel486, Intel740, IntelDX2, IntelDX4, IntelSX2,
Intel Inside, Intel Inside logo, Intel NetBurst, Intel NetStructure,
Intel Xeon, Intel XScale, Itanium, MMX, MMX logo, Pentium, Pentium II
Xeon, Pentium III Xeon, 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(C) 2000-2003, Intel Corporation, All Rights Reserved.