Further Vectorization Features of the Intel® Compiler - Webinar Code Samples

Published: 04/06/2015, Last Updated: 04/06/2015

The code samples for the webinar "Further Vectorization Features of the Intel® Compiler" given on 4/7/2015 are attached below.

Here are some examples of command lines that may be used to build them. This list is not intended to be complete or to be a tutorial as such, just a guide to things to try. It uses Linux* switch syntax; Windows* equivalents are closely similar.

See the presentation for more detail; slides and video will be posted separately and later.

icpc -c -qopt-report-phase=vec -qopt-report=3 no_stl.cpp

icpc -c -qopt-report-file=stderr -qopt-report-phase=vec -qopt-report=2  stl_vec.cpp

icpc -c -std=c++11 -qopt-report-phase=vec -qopt-report=3 stl_vec_11.cpp

icpc -O2 -std=c++11 –I$BOOST/boost_1_56   sumsq.cpp  timer.cpp;  ./a.out     (you may need to install boost)

icpc -O2 -std=c++11 –I$BOOST/boost_1_56  -DALIGN_CLASS  sumsq.cpp  timer.cpp;  ./a.out

icpc -O2 -std=c++11 –I$BOOST/boost_1_56  -DBOOST_ALIGN  sumsq.cpp  timer.cpp;  ./a.out 

icpc -O2 -xcore-avx2 -std=c++11 -I$BOOST/boost_1_56   sumsq.cpp  timer.cpp;  ./a.out 

icpc -c  -std=c++11 –xcore-avx2 -qopt-report-file=stderr -qopt-report-phase=loop,vec -qopt-report3 -qopt-report-routine=main  sumsq.cpp

ifort -fpp -c -qopt-report-phase=loop,vec -qopt-report-file=stderr  dist.F90

ifort -fpp -c -qopenmp-simd -qopt-report-phase=loop,vec -qopt-report-file=stderr -qopt-report-routine=dist dist.F90

ifort -fpp -qopenmp-simd -DKNOWN_TRIP_COUNT -qopt-report-phase=loop,vec -qopt-report-file=stderr -qopt-report-routine=dist drive_dist.F90 dist.F90; ./a.out

icc -c –std=c99 -xavx -qopt-report-file=stderr -qopt-report-phase=vec  mulmv.c

icc -c -std=c99 -xavx -fargument-noalias -qopt-report=4 -qopt-report-file=stderr -qopt-report-phase=vec mulmv.c

                     (-fargument-noalias becomes /Qalias-args- on Windows)

ifort -O2 -xavx -qopt-report=3 -qopt-report-file=stderr  -qopt-report-phase= loop,vec -qopt-report-routine=indirect drive_indirect.F90 indirect.F90;  ./a.out

ifort -xcore-avx2 -S indirect.F90

grep gather indirect.s

Attachment Size
webinar.zip 12.6 KB

Product and Performance Information

1

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