Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Vectorization switches

martin_upsdellagrese
460 Views
I would like to tune the vectorization of my code to my machine but still have it work on other machines. For which I should be using option /QAx found under properties>Code Generation. However it doesn't have theoption /QAxHost corresponding to /QxHost for the Processor-Specific Optimization. How do I find out the instruction set that my computer will carry out?

Also what is the difference between the options /arch and /Qx?Both seem to determine the minimum capabilities of the machine running the program.

0 Kudos
1 Reply
Steven_L_Intel1
Employee
460 Views
The /arch options do not perform a check to see if the computer you are using has an Intel processor that supports the instruction set level you requested, the /Qx options that name an instruction set, such as /QxSSE3 do. There are a couple of exceptions. /QxSSE2 does not check, and /QxHost will pick a /arch setting if not compiling on an Intel CPU. This statement does not apply to the older /Qx option that has a single letter following the x.

We've had a request to have /QxHost somehow tell you which option it picked, but that is not yet implemented. Of course, /QxHost should be used only when you know you will be running on the same computer you compiled on.

For a complete discussion of these options, and which to choose, see Intel compiler options for SSE generation and processor-specific optimizations.

0 Kudos
Reply