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

Specifying a minimum micro-architecture

GlennPietrow
Novice
731 Views

Hi,

 

I'd like to be able to specify a minimum architecture when compiling our FORTRAN engine to take advantage of a "baseline" of supported instructions and optimize the performance.

 

At one point I'd found what I was looking for but have since "lost" it. I'd like the set the SkyLake family of processors as the minimum supported by my "engine". I did find the /tune:skylake optimization but don't want to restrict my engine to only that processor.

 

Can someone point me in the right direction? Perhaps I'm not looking for a minimum processor, but a minimum instruction set?

 

Thank you for any help/guidance offered.

 

GP

 

Labels (1)
0 Kudos
1 Solution
GlennPietrow
Novice
637 Views
0 Kudos
4 Replies
Steve_Lionel
Honored Contributor III
702 Views

You're looking for the -x option (/Qx on Windows.)

0 Kudos
GlennPietrow
Novice
682 Views

So, /QxSKYLAKE would be what I'm looking for?

 

GP

0 Kudos
Steve_Lionel
Honored Contributor III
679 Views

Yes, that's correct, though my own preference would be to choose one of the keywords relating to instruction sets directly, such as AVX. The /Qx option will add a check at the beginning of execution to see if you're running on an Intel processor supporting the specified instruction set (or higher). If not, it will give an error and exit. (/QxHost says to generate code for the CPU you compile on, which doesn't have to be Intel.) There's also /Qax, which will, when needed, generate an alternate "generic" code path for a CPU that doesn't meet the requirements - you can specify what the generic path does with /arch.

0 Kudos
GlennPietrow
Novice
638 Views

Thanks Steve. Went with /QxAVX as suggested.

 

GP

0 Kudos
Reply