Intel C/C++ compiler vs. GNU gcc/MS Visual Studio 35
the_real_tigga writes "OpenMag features a benchmark review of the Intel C/C++ compiler as opposed to gcc on linux and Microsoft Visual Studio compiler on Windows XP. Not surprisingly (for me at least), icc beats them both, with dramatic performance improvements. Too bad they chose to review gcc version 2.95, and not the 3.x series, which is known to produce faster code. What is surprising, even AMD CPUs benefit from the icc-compiled code. There is another version of the article here,
and they provide a download of the used tools , so you can try it at home too!"
AMD (Score:3, Insightful)
This isn't suprising, as AMD CPUs have always shown remarkable increases in performance with icc (sometimes even more than equivalent intel chips). I guess AMD does a really good job in making the Athlon a x86 chip.
Re:AMD (Score:5, Informative)
Since AMDs chips are pipelined, they are likely to benefit even if the pipelines aren't exactly the same.
kuch and associates (Score:4, Informative)
but wait (Score:2, Interesting)
However, if it is false, then I would very much like someone to provide me with instructions (I am not L33t) on how to re-compile the kernel with the intel compiler. If it gives that much of a performance increase, even on AMD cpus (I myself have a P3-450, roomate has athlon 1ghz) then I'm there.
Anyone who says anything about it not being free as in speech can shut up now ^_^
Re:but wait (Score:4, Informative)
http://www.uwsg.indiana.edu/hypermail/linux
Now we just need Spike ported from the alpha.
Kernels vs. standards (Score:2)
I'm not going to say that gcc and the kernel sources are bug free, but writing a kernel requires making use of things that the standards have not specified or will not allow.
For example, No C standard defines that a pointer should fit in some integer type, but the kernel needs to assume that on several places. In such cases, it's safe to expect that it fits in unsigned long and it does hold on all current Linux ports.
Linux Kernel: [PATCH] fixes for building kernel using Intel compiler [insecure.org]
We should have expected this. (Score:1)
(Well.. so we hope
They make the processor and an AMD derivative, if you can consider the pentium processors that. I'd hope they'd know how to write a compiler.
I'd also hope that sun can make better java technology and that ibm can write a better os for the AS/4000. Better == more integrated and done right in this case.
VC6.0, GCC2.95 (Score:5, Insightful)
Re:VC6.0, GCC2.95 (Score:1)
Plus I'm not in control of the gcc upgrades done on the dev server at the college, so I guess I shouldn't worry about that.
Re:VC6.0, GCC2.95 (Score:2)
Re:VC6.0, GCC2.95 (Score:3, Interesting)
Don't think so. There's the latest IA64 compiler, yes, but no IA32 compiler.
It doesn't have MFC/ATL, but you should be able to still use the versions from VC6 with the new compiler/linker.
I'd be surprised - they've changed the
beta of gcc 3.x? (Score:4, Insightful)
Re:beta of gcc 3.x? (Score:1)
"windows have security testing"
Are we talking compilers or OS's?
yeesh
Windows is a brand not a product (Score:2)
how is this benchmark useful? (Score:5, Insightful)
GCC 2.95??? in 2003???
what are these guys thinking? i mean, it may have been the compiler that came with the Suse 7.3 they were using, but still. Suse is on 8.1 now which does ship with gcc 3.2.
Yeah, that article is a little old (Score:3, Insightful)
All things considered, though, I'm fairly sure GCC hasn't gotten quite *that fast* in the elapsed time since the article was written
Re:Yeah, that article is a little old (Score:1)
For $1,000? (Score:2, Informative)
However, somebody who wants a Slashdotting could just download the aforementioned tools
I'm sorry; I don't have $1,000 for any version of Microsoft Visual Studio.
Oh, you mean the "standard edition" for $100? That's known to generate inefficient code; Microsoft doesn't even claim that the "standard edition" optimizes your code one bit.
Changing too many variables at a time? (Score:5, Insightful)
re:
Doesn't gcc also have the same property when running under Linux or windows? (for the OS-independant parts of your code, obviously)
Although the main thrust of the article is to compare the new intel compiler to gcc and visual studio, they are also talking about comparing performance accross platforms - their initial comparison is gcc on Linux vs Visual Studio on Windows (no mention of what optimizations are performed, what other service are running, what nice levels the programs are executed at, whether they are measuring user cpu time or total execution time, and so on)
It would be nice to see tests varying each of these variables individually, or showing all the possible combinations:
On a (big) plus point - this article does at least show us some error margins on their measurements (none of this "Graphics card A lagged behind with a mere 47.6, but graphics card B stormed ahead with a score of 47.7" nonsense which seems to be all too common in most reviews)
For Gentoo users... (Score:3, Informative)
emerge dev-lang/icc
sloppy editor alert (Score:2, Informative)
surprisingly (Score:2, Funny)
They changed the name from ".Net" to ".Not"? surprisingly (for me at least),
But I've heard... (Score:1)
Re:But I've heard... (Score:1)
This is outdated info, fresher stuff in this post (Score:5, Informative)
Go here for GCC 3.2 vs. Intel 7 information:
http://www.coyotegulch.com/reviews/intel_comp/int
GCC has done quite a bit to catch up.
Much more interesting data (Score:2)
The article linked to in the parent post has quite a lot more interesting data in it than the main article (except for the lack of quoted error margins on the results)
For most of those tests, the two compilers seem to show quite similar results, with one outperforming the other by only small margins of 10% or less (gcc has marginally better scores for the FFT routine on PIII and MazeBench, intel has slightly better scores for the Stepanov benchmark and LU decomposition for example). A few interesting differences do appear though that it would be nice to know more about:
google cache (Score:1)
probably a dumb question but... (Score:3, Interesting)
Intel also has this fancy new hyperthreading thing built into its newest CPUs that speeds things up by (very roughly speaking) letting one thread use another thread's wasted CPU cycles.
Does a vastly more efficient compiler make hyperthreading ineffective? Is there some sort of balance that a really great compiler would need to strike between the fastest code and the code that will work best on Intel's fancy new CPU's if the app your are going to run is multi-threaded?