Intel® Math Kernel Library (Intel® MKL) 2017 Release Notes

This document provides a general summary of new features and important notes about the Intel® Math Kernel Library (Intel® MKL) software product.

Please see the following links to the online resources and documents for the latest information regarding Intel MKL:

Links to documentation, help, and code samples can be found on the main Intel MKL product page. For technical support visit the Intel MKL technical support forum and review the articles in the Intel MKL knowledge base.

Please register your product using your preferred email address. This helps Intel recognize you as a valued customer in the support forum and ensures 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.

What's New in Intel MKL 2017 Update 4

  • BLAS:
    • Addressed an early release buffer issue in *GEMV threaded routines
    • Improved Intel® Threading Building Blocks *GEMM performance for small m, n and large k cases
    • Fixed irregular division by zero and invalid floating point exceptions in {C/Z}TRSM for Intel® Xeon Phi™ processor x200 (aka KNL) and Intel® Xeon® Processor supporting Intel® Advanced Vector Extensions 512 (Intel® AVX-512) code path
    • Improved {s/d} GEMV threaded performance on Intel64 architecture
    • Addressed incorrect SSYRK calculation on Intel® Xeon Phi™ processor x200 with Intel® TBB threading  occurring if the value of K is very large
    • Addressed a GEMM multithreading issue, which may cause segfaults for large matrices (M, N >= ~30,000, K >= ~5000) on for Intel® Xeon Phi™ processor x200 (aka KNL)
  • Deep Neural Networks:
    • Added support for non-square pooling kernels
  • Sparse BLAS
    • Improved SpMV and SpMM performance for the processor supporting Intel® AVX512 Instruction set Improved SpMV performance for the processor supporting Intel® AVX2 Instruction set
    • Added Intel® TBB support for SparseSyrk and SpMM routines
  • Intel MKL Pardiso
    • Significantly improved factorization and solving steps for “small” matrices
    • Introduced low rank approach suitable for solving set of systems with small changes in elements
  • Parallel Direct Sparse Solver for Cluster:
    • Added Iterative support
    • Improved performance for number of processes not power of 2
  • LAPACK:
    • Improved performance of ?(OR|UN)GQR, ?GEQR and ?GEMQR routines in Intel(R) TBB threading layer.
    • Introduced LAPACKE_set_nancheck routine for disabling/enabling nan             checks in LAPACKE functions.
  • FFT:
    • Improved 2D and 3D FFT performance for the processors supporting Intel® AVX512 and Intel® AVX2 Instruction sets.
    • Improved FFT performance of w/ and w/o scaling factor across all domains.
    • Introduced MKL_VERBOSE mode support for FFT domain.

What's New in Intel MKL 2017 Update 3

  • BLAS:
    • Optimized SGEMM for Intel® Xeon Phi™ processor x*** (codename Knights Mill)
    • Improved performance for ?GEMM for medium problem sizes on Intel® Xeon® Processor supporting Intel® Advanced Vector Extensions 512 (Intel® AVX-512) (codename Skylake Server)
    • Improved performance for SGEMM/DGEMM for small problem sizes on Intel® Xeon® Processor supporting Intel® Advanced Vector Extensions 512 (Intel® AVX-512) (codename Skylake Server)
    • Improved performance for ?GEMM_BATCH on all architectures
    • Improved performance for SSYMV/DSYMV on Intel® Advanced Vector Extensions 2 (Intel® AVX2) and later architectures
    • Improved performance for DGEMM Automatic Offload (AO) for square sizes (3000<M=N=K< 10000)  on Intel® Xeon Phi™ processor 72** (formerly Knights Landing)
    • Improved performance for general BLAS functions on the 32-bit Intel® Advanced Vector Extensions 512 (Intel® AVX512) architecture
    • Fixed ?AXPBY to propagate NaNs in the y vector when beta = 0 on 64-bit Intel® Advanced Vector Extensions 2 (Intel® AVX2) and later architectures
  • FFT:
    • Improved performance of 3D FFT complex-to-real and real-to-complex problems on Intel® Xeon Phi™ processor 72** (formerly Knights Landing) 
    • Improved performance of 2D FFT complex-to-complex problems with scale on Intel® Xeon Phi™ processor 72** (formerly Knights Landing)
  • High Performance Conjugate Gradients (HPCG):
    • Add support of Intel® Xeon® Processor supporting Intel® Advanced Vector Extensions 512 (Intel® AVX-512) (codename Skylake Server)
  • Deep Neural Networks:
    • Added initial convolution and inner product optimizations for the next generation of Intel Xeon Phi processor (code name Knights Mill)
    • Improved parallel performance of convolutions on Intel Xeon Phi processor (code name Knights Landing)
    • Average pooling has an option to include padding into mean values computation
  • LAPACK:
    • Optimized ?GELQ and ?GEMLQ performance for short-and-wide matrices
    • Optimized performance of ?ORCSD2BY1 and ? DORCSD routines
    • Fixed LU performance degradation for medium sizes on 6 threads
  • Vector Statistics:
    • Fixed failure of VSL RNG MT19937 on big vector lengths on Intel® Xeon Phi™ Coprocessor x100 Product Family.
    • Improved performance of Outlier Detection (BACON) algorithm for single and double precisions for processor supporting Intel® AVX2 and intel® AVX512 Instruction sets 

What's New in Intel MKL 2017 Update 2

  • Library Engineering:
    • Intel® AVX-512 code is dispatched by default on Intel® Xeon processors 
  • BLAS:
    • Improved performance of dgemv non transpose when number of threads are large (typically on Intel® Xeon Phi™ processor x200 (formerly Knights Landing)). For example: factor 2 speedup when M=K=10000 with 68 threads on Intel® Xeon Phi™ processor x200
    • Improved performance for dgemm, TN and NN cases, with very small N on Intel® Xeon Phi™ processor x200 and  6th Generation Intel® Core™ processor ( as known as Skylake)
    • Introduced MKL_NUM_STRIPES environment variable and accompanying Intel MKL support functions to control the 2D partitioning of multithreaded *GEMM on all Intel architectures except from Intel® Xeon Phi™ Coprocessor x100 Product Family. Please see the related section in Intel MKL Developer Guide for details.
    • Improved the {s,d}gemm_compute performance on Intel64 architectures supporting Intel® AVX2 instruction set.
    • Improved ?gemm_batch performance when N==1. 
  • Sparse BLAS
    • Improved performance of BCSMV functionality with 3-10, 14 and 18 problem sizes for processor supporting Intel® AVX2 and intel® AVX512 Instruction sets
    • Improved performance of CSRMV functionality  for processor supporting Intel® AVX2 and intel® AVX512 Instruction sets
    • Added Intel® Threading Building Blocks (Intel® TBB) threading support for CSRMV functionality with symmetric matrices
  • Intel MKL Pardiso
    • Added support of Intel TBB threading support for Intel MKL Pardiso at the solving step
  • Deep Neural Networks:
    • Improved performance on Intel Xeon processors with Intel® AVX2 and Intel® AVX512 instruction set support
    • Improved performance on the second generation of Intel® Xeon Phi™ processor x200
    • Introduced support for rectangular convolution kernels
    • Significantly improved reference convolution code performance
    • Added unsymmetric  padding support in convolution and pooling
    • Introduced extended Batch Normalization API that allows access to mean, variance, scale and shift parameters
  • LAPACK:
    • Added ?GEQR, ?GEMQR and ?GETSLS functions with performance optimized for tall-and-skinny matrices.
    • Improved LAPACK performance for very small sizes (N<16) in LP64 layer by reducing internal LP64/ILP64 conversion overhead.
    • Improved ?[SY|HE]EVD scalability up to 32 and beyond threads on Intel® Xeon and Intel® Xeon Phi™ processor x200
    • Significantly improved ?LANGE (‘Frobenius’ norm) performance
  • ScaLAPACK:
    • Added MKL_PROGRESS() support in P?GETRF
    • Improved P?TRSM/P?SYRK performance
    • Optimized ?GE(SD|RV|BS|BR)2D routines in BLACS
    • Fixed failure in P?GEMM (‘N’, ‘N’ case)
  • Vector Mathematics:
    • Added Intel TBB threading support for all mathematical functions.
  • Vector Statistics:
    • Improved C interfaces of vsl*SSEdit*() functions

Known Limitations:   

  • For Intel® Xeon Phi™ processor x200 leverage boot mode without Hyper Threading, MKL have an oversubscription of threads for versions prior to MPSS 4.3.2 due to COI occupying 4 cores. This affects the performance of MKL substantially. As an work around, the costumer can add ‘norespect’ to the MIC_KMP_AFFINITY environment variable.
  • ?GETRF functionality can give incorrect results for some matrices of 5x5 size when MKL_DIRECT_CALL is enabled. The patch fixing the issue is posted on MKL Forum.
  • Recently added TS QR functionality (?GEQR and ?GEMQR) may demonstrate very slow performance when the number of threads is less than 30.
  • On SKX DGEMM does not scale C by beta when transa == N, transb == N, K==0 and N==2. A workaround is to set transa == T or transb == T since with K==0 the transpose is not relevant

What’s New in Intel MKL 2017 Update 1

  • Added support of Intel® Xeon Phi™ processor x200 leverage boot mode on Windows* OS.
  • BLAS :
    • The Intel Optimized MP LINPACK Benchmark supports various MPI implementations in addition to Intel MPI,  and the contents of the mp_linpack directory have changed.
    • Improved single thread SGEMM/DGEMM performance on Intel® Advanced Vector Extensions 2 (Intel® AVX2), Intel® Advanced Vector Extensions 512 (Intel® AVX-512), and Intel® Xeon® for Intel® Many Integrated Core Architecture.
  • Deep Neural Networks (DNN) primitives :
    • Introduced additional optimizations for Intel® Xeon® processor E3-xxxx V5 ( formerly Skylake).
    • Added support of non-square cores of convolution 
  • Sparse BLAS :
    • Improved Sparse BLAS matrix vector functionality in block compressed sparse row (BSR) format for block size equal to 6,10,14, or 18 on Intel AVX2.
    • Improved Inspector-executor Sparse BLAS matrix-vector and matrix-matrix functionality for symmetric matrices.
  • LAPACK :
    • Improved performance of ?GETRF, ?GETRS and ?GETRI for very small matrices via MKL_DIRECT_CALL. 
    • Improved performance of ?ORGQR and SVD functionality for tall-and-skinny matrices.
    • Parallelized ?ORGQR in Intel® Threading Building Blocks (Intel® TBB) threading layer.
  • Vector Math :
    • Introduced the exponential integral function E1 with three accuracy levels HA, LA, and EP, for single precision and double precision real data types.
  • ScaLAPACK :
    • Improved performance of PZGETRF.
  • Known Limitations for MKL 2017 Update 1 :
    • Intel MKL (in Intel® Parallel Studio XE) integration with Microsoft Visual Studio in IA-32 architecture environments is limited. This issue does not affect the Intel® 64 architecture target environment. Intel MKL (in Intel® System Studio) integration with Microsoft Visual Studio is limited in both IA-32 and Intel 64 architecture environments.
    • 1D complex-to-complex FFT may return incorrect results on systems with Intel AVX-512 support if the number of threads is different at DFT descriptor commit time and DFT execution. 
    • The AVX512 code path works when the MKL_ENABLE_INSTRUCTIONS=AVX512 environment variable is set, but mkl_enable_instructions(MKL_ENABLE_AVX512) function call does not.
    • Building the Intel Optimized MP LINPACK Benchmark for a customized MPI implementation on Windows* is not supported for Microsoft Visual Studio 2015 and later.

Workaround: Use an earlier version of Microsoft Visual Studio.

Issue Description: If the user tries to use MSVS 2015 with our provided build.bat script to build their own xhpl.exe executable, they will see a number of unresolved external symbol errors like:

libhpl_intel64.lib(HPL_pdmatgen.obj) : error LNK2001: unresolved external symbol __iob_func

An older version of MSVS was used to build the libhpl_intel64.lib library we provide to link against when building the MP LINPACK benchmark for a customized MPI implementation.  It appears that these functions are now inlined in MSVS2015.

What's New in Intel MKL 2017

  • Introduced optimizations for the Intel® Xeon Phi™ processor x200 (formerly Knights Landing ) self-boot platform for Windows* OS
  • Enabled Automatic Offload (AO) and Compiler Assisted Offload (CAO) modes for the second generation of Intel Xeon Phi coprocessor on Linux* OS
  • Introduced Deep Neural Networks (DNN) primitives including convolution, normalization, activation, and pooling functions intended to accelerate convolutional neural networks (CNNs) and deep neural networks on Intel® Architecture.
    • Optimized for Intel® Xeon® processor E5-xxxx v3 (formerly Haswell), Intel Xeon processor E5-xxxx v4 (formerly Broadwell), and Intel Xeon Phi processor x200 self-boot platform.
    • Introduced inner product primitive to support fully connected layers.
    • Introduced batch normalization, sum, split, and concat primitives to provide full support for GoogLeNet and ResidualNet topologies.
  • BLAS:
    • Introduced new packed matrix multiplication interfaces (?gemm_alloc, ?gemm_pack ,?gemm_compute, ?gemm_free) for single and double precisions.
    • Improved performance over standard S/DGEMM on Intel Xeon processor E5-xxxx v3 and later processors.
    • The Intel Optimized MP LINPACK Benchmark pre-built binaries using Intel MPI were moved to the mp_linpack root folder. Support for multiple MPI implementations was also added. The benchmark source codes in the  mp_linpack directory were removed except for HPL_main.c, which can be used to create an Intel Optimized MP LINPACK benchmark binary for a specific MPI implementation. 
  • Sparse BLAS:
    • Improved performance of parallel BSRMV functionality for processor supporting Intel® Advanced Vector Extensions 2 (Intel® AVX2) instruction set.
    • Improved performance of sparse matrix functionality on the Intel Xeon Phi processor x200.
  • Intel MKL PARDISO:
    • Improved performance of parallel solving step for matrices with fewer than 300000 elements.
    • Added support for mkl_progress in Parallel Direct Sparse Solver for Clusters.
    • Added fully distributed reordering step to Parallel Direct Sparse Solver for Clusters.
  • Fourier Transforms:
    • Improved performance of batched 1D FFT with large batch size on processor supporting Intel® Advanced Vector Extensions (Intel® AVX), Intel AVX2, Intel® Advanced Vector Extensions 512 (Intel® AVX512) and Intel AVX-512 Intel® Many Integrated Core Instructions (Intel® MIC Instructions) instruction sets
    • Improved performance for small size batched 2D FFT on the Intel Xeon Phi processor x200 self-boot platform, Intel Xeon processor E5-xxxx v3, and Intel Xeon processor E5-xxxx v4.
    • Improved performance for 3D FFT on the Intel Xeon Phi processor x200 self-boot platform. 
  • LAPACK
    • Included the latest LAPACK v3.6 enhancements. New features introduced are:
      • SVD by Jacobi ([CZ]GESVJ) and preconditioned Jacobi ([CZ]GEJSV)
      • SVD via EVD allowing computation of a subset of singular values and vectors (?GESVDX)
      • In BLAS level 3, generalized Schur (?GGES3), generalized EVD (?GGEV3), generalized SVD (?GGSVD3), and reduction to generalized upper Hessenberg form (?GGHD3)
      • Multiplication of a general matrix by a unitary or orthogonal matrix that possesses a 2x2 block structure ([DS]ORM22/[CZ]UNM22)
    • Improved performance for large size QR(?GEQRF) on processors supporting theIntel AVX2 instruction set.
    • Improved LU factorization, solve, and inverse (?GETR?) performance for very small sizes (<16).
    • Improved General Eigensolver (?GEEV and ?GEEVD) performance for the case when eigenvectors are needed.
    • Improved?GETRF, ?POTRF and ?GEQRF, linear solver (?GETRS) and SMP LINPACK performance on the Intel Xeon Phi processor x200 self-boot platform.
  • ScaLAPACK
    • Improved performance for hybrid (MPI + OpenMP*) mode of ScaLAPACK and PBLAS.
    • Improved performance of P?GEMM and P?TRSM resulted in better scalability of Qbox First-Principles Molecular Dynamics code.
  • Data Fitting:
    • Introduced two new storage formats for interpolation results (DF_MATRIX_STORAGE_SITES_FUNCS_DERS and DF_MATRIX_STORAGE_SITES_DERS_FUNCS).
    • Added Hyman monotonic cubic spline.
    • Improved performance of Data Fititng functionality on the Intel Xeon Phi processor x200.
    • Modified callback APIs to allow users to pass information about integration limits.
  • Vector Mathematics:
    • Introduced optimizations for the Intel Xeon Phi processor x200.
    • Improved performance for Intel Xeon processor E5-xxxx v3 and Intel Xeon processor E5-xxxx v4.
  • Vector Statistics:
    • Introduced additional optimization of SkipAhead method for MT19937 and SFMT19937.
    • Improved performance of Vector Statistic functionality including Random Number Generators and Summary Statistic on the Intel Xeon Phi processor x200.

Deprecation Notices:

  • Removed pre-compiled BLACS library for MPICH v1; MPICH users can still build the BLACS library with MPICH support via Intel MKL MPI wrappers.
  • The SP2DP interface library is removed.
  • The PGI* compiler on IA32 is no longer supported.
  • Installation on IA-32 architecture hosts is no longer supported, and the Intel MKL packages for Intel® 64 architecture hosts include both 64-bit and 32-bit Intel IPP libraries.
  • Red Hat Enterprise Linux* 5.0 support is dropped

Known Limitations:

  • cblas_?gemm_alloc is not supported on Windows* OS for the IA-32 architectures with single dynamic library linking.
  • Intel MKL (in Intel Parallel Studio XE) Integration with Microsoft Visual Studio in IA-32 environment is limited. This issue does not affect the Intel® 64 target environment. Intel MKL (in Intel® System Studio) integration with Microsoft Visual Studio is limited in both IA-32 and Intel 64 environments.
  • 1D complex-to-complex FFT may return incorrect results on systems with Intel Advanced Vector Instructions 512 (Intel AVX 512) support if the number of threads is different at DFT descriptor commit time and DFT execution.
  • {s,d}gemm_compute may leak memory if only one of the matrices are packed in sequential Intel MKL for Intel AVX2 and above.Workaround: Use multi-threaded Intel MKL and set MKL_NUM_THREADS to 1 instead of using sequential Intel MKL.
  • nodeperf.c, which comes with the MP LINPACK Benchmark for Clusters package, may fail to run on Windows*.

    Workaround : Use the Intel Optimized MP LINPACK Benchmark for benchmarking individual nodes on a Windows* cluster. Alternatively, uncomment line 551 and comment out line 552 in nodeperf.c, to use malloc instead of mkl_malloc.

    Note: nodeperf.c will be removed in MKL 2017 Update 1. We recommend using the MP LINPACK benchmark directly for measuring cluster performance.

Product Contents

Now Intel MKL consists in one package for both IA-32 and Intel® 64 architectures and in online installer

Technical Support

If you did not register your Intel software product during installation, please do so now at the Intel® Software Development Products Registration Center. Registration entitles you to free technical support, product updates, and upgrades for the duration of the support term.

For general information about Intel technical support, product updates, user forums, FAQs, tips and tricks and other support questions, please visit http://www.intel.com/software/products/support/.

Note: If your distributor provides technical support for this product, please contact them rather than Intel.

For technical information about Intel MKL, including FAQs, tips and tricks, and other support information, please visit the Intel MKL forum: http://software.intel.com/en-us/forums/intel-math-kernel-library/ and browse the Intel MKL knowledge base: http://software.intel.com/en-us/articles/intel-mkl-kb/all/.

Attributions

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. Our FORTRAN 90/95 interfaces to LAPACK are similar to those in the LAPACK95 package at http://www.netlib.org/lapack95/index.html. All interfaces are provided for pure procedures.

The original versions of ScaLAPACK from which that part of Intel MKL was derived can be obtained from http://www.netlib.org/scalapack/index.html. The authors of ScaLAPACK are L. S. Blackford, J. Choi, A. Cleary, E. D'Azevedo, J. Demmel, I. Dhillon, J. Dongarra, S. Hammarling, G. Henry, A. Petitet, K. Stanley, D. Walker, and R. C. Whaley.

The Intel MKL Extended Eigensolver functionality is based on the Feast Eigenvalue Solver 2.0 http://www.ecs.umass.edu/~polizzi/feast/

PARDISO (PARallel DIrect SOlver)* in Intel MKL was originally developed by the Department of Computer Science at the University of Basel http://www.unibas.ch . It can be obtained at http://www.pardiso-project.org.

Some FFT functions in this release of Intel MKL have been generated by the SPIRAL software generation system (http://www.spiral.net/) under license from Carnegie Mellon University. The Authors of SPIRAL are Markus Puschel, Jose Moura, Jeremy Johnson, David Padua, Manuela Veloso, Bryan Singer, Jianxin Xiong, Franz Franchetti, Aca Gacic, Yevgen Voronenko, Kang Chen, Robert W. Johnson, and Nick Rizzolo.

License Definitions

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 Xeon Phi, 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.

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

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

Legal Information            Top

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