Which applications are most likely to benefit from recompilation for Intel® Advanced Vector Extensions (Intel® AVX)?

The performance benefit from recompiling an application for Intel® Advanced Vector Extensions (Intel® AVX) may vary greatly from one application to another.

Applications containing floating-point loops that can already be vectorized using Intel® SSE instructions are likely to see significant gains just by recompiling for Intel AVX, due to the greater width of the SIMD floating-point Intel AVX instructions. Applications that call performance libraries such as the Intel® Math Kernel Library, that contain many functions optimized for Intel AVX, may see gains even without rebuilding. The benefits of recompilation are likely to be significantly less for applications containing mostly scalar code, integer code, with very heavy access to memory, or heavy use of double precision divide and square root operations. The same is true for applications with hot loops or kernels that do not vectorize; however, the Intel AVX instruction set contains some new features that help to vectorize certain loops that were difficult to vectorize using SSE instructions. The latest Intel® Compilers also contain new features that allow more loops to be vectorized. See /en-us/articles/requirements-for-vectorizable-loops for an indication of what sort of loops can be vectorized, and /en-us/ for more detailed information about vectorization.

Note that the recent Intel® Core™ i7 processor and other processors with support for Intel AVX embody a variety of other features that may improve application performance. This note addresses primarily the impact of the 256 bit wide SIMD registers and floating-point arithmetic instructions, compared to 128 bit wide Intel® SSE instructions. To get the benefit of the new Intel AVX instructions, applications should be compiled with /QxAVX (Windows*) or -xavx (Linux*). See also the attached article at /en-us/articles/how-to-compile-for-intel-avx.

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