The standard way to compile a C++ source code (
hello.cc) into a binary (
hello) with the Intel C++ Compiler looks like this:
icpc -o hello hello.cc
To make the compiled binary a bit more optimized to run on an Intel processor specific architecture, it is recommended to add a flat to indicate the target specfic instruction set. Concretely:
If binary is targeted to run on a bootable version of Xeon Phi (Host) Processor, we add the
-xMIC-AVX512 in the command:
icpc -xMIC-AVX512 -o hello hello.cc
-xMIC-AVX512is for the bootable version of Intel Xeon Phi processors
-xCORE-AVX512is for Intel Xeon scalable processors (formerly Skylake)
See this Intel Doc for the full list of compiler option. Page 5 shows all the Recommended Processor-Specific Optimization Options.
Here is a snapshot borrowed from a Colfax Research Slide for ease of quick references:
In some of my earlier articles when I didn't know about the recommended processor specific optimization options, it is very possible I might have omitted the
-xMIC-AVX512 flag when compiling a binary to run on a Xeon Phi processor. I should have, in hindsight, for further optimization.