On 3/22/2010 7:46 PM, Rayne wrote:
Hi all,
I'm interested in knowing how GCC differs from Intel's ICC in terms of the optimization levels and catering to specific processor architecture. I'm using GCC 4.1.2 20070626 and ICC v11.1 for Linux.
How does ICC's optimization levels (O1 to O3) differ from GCC, if they differ at all?
The ICC is able to cater specifically to different architectures (IA-32, intel64 and IA-64). I've read that GCC has the -march compiler option which I think is similar, but I can't find a list of the options to use. I'm using Intel Xeon X5570, which is 64-bit. Are there any other GCC compiler options I could use that would cater my applications for 64-bit Intel CPUs?
Some of that seems more topical on the Intel software forum for icc, and
the following more topical on either that forum or gcc-help, where you
should go for follow-up.
If you are using gcc on Xeon 5570,
gcc -mtune=barcelona -ffast-math -O3 -msse4.2
might be a comparable level of optimization to
icc -xSSE4.2
For gcc 4.1, you would have to set also -ftree-vectorize, but you would
be better off with a current version.
But, if you are optimizing for early Intel 64-bit Xeon, -mtune=barcelona
would not be consistently good, and you could not use -msse4 or -xSSE4.2.
For optimization which observes standards and also disables vectorized
sum reduction, you would omit -ffast-math for gcc, and set icc -fp-model
source.
--
Tim Prince