Intel® AVX optimization in Intel® MKL

Submit New Article

November 3, 2010 11:30 AM PDT


Intel ® AVX (Intel ® Advanced Vector Extensions) is the next step in the evolution of Intel processors. Intel® MKL had Intel® AVX optimization since Intel MKL 10.2, however to activate Intel AVX code in version 10.2, users needed to use mkl_enable_instructions(). Starting from Intel MKL 10.3, the Intel AVX code will be dispatched automatically and does not require special activation. In Intel MKL 10.3, Intel AVX optimization has been extended to DGEMM/SGEMM, radix-2 Complex-to-Complex FFT, most of real VML functions and VSL distribution generators.

The special cases illustrating speed-ups can be achieved on Intel AVX-enabled processors running an Intel AVX-enabled operating systems over Intel® Xeon® Processor 6000 and 7000 Sequence (Server) in Intel MKL 10.3 are as following:

Intel AVX DGEMM (M, N, K=8Kx4Kx128) performs 1.8x over Intel® Xeon® Processor 6000 and 7000 Sequence (Server).

Intel AVX DGEMM/SGEMM achieves 88-90% machine peak.

The Intel AVX/NHM speedup is 1.8x for radix-2 1D cluster FFTs  with N=1024

The Intel® Optimized LINPACK benchmark, using Intel AVX optimizations, performs over 1.86x (or over 80% overall efficiency) on 4 cores with N=20000.


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



Do you need more help?


This article applies to: Intel® C++ Compiler for Linux* Knowledge Base,   Intel® C++ Compiler for Mac OS X* Knowledge Base,   Intel® C++ Compiler for Windows* Knowledge Base,   Intel® Cluster Toolkit for Linux* Knowledge Base,   Intel® Cluster Toolkit for Windows* Knowledge Base,   Intel® Fortran Compiler for Linux* Knowledge Base,   Intel® Fortran Compiler for Mac OS X* Knowledge Base,   Intel® Math Kernel Library Knowledge Base