Intel® AVX optimization in Intel® MKL

Intel® Advanced Vector Extensions (Intel® AVX) 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 the Intel MKL 10.3, Intel AVX optization has been exteneded to most of the MKL functions that can benefit from Intel AVX instruction usage

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 sequence (Desktop)  and  Intel® Xeon® Processor 7000 Sequence (Server) in Intel MKL 10.3 are as following:

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

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

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

The Intel® Optimized LINPACK benchmark, using Intel AVX optimizations, performs over 1.8x (Gflops) better (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

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