Intel C/C++ compiler vs. GNU gcc/MS Visual Studio
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!"
> What is surprising, even AMD CPUs benefit from the icc-compiled code.
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.
It's actually Kuck and Associates that was acquired by Intel, not Kuch and Associates as listed in the article.
I have heard by word of mouth that the linux kernel depends upon bugs and quirks in gcc in order to compile and function correctly. I am not sure if this is absolutely true, but it's believable. If it is indeed true, then the linux kernel can't be compiled with the Intel compiler.
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 ^_^
The GeekNights podcast is going strong. Listen!
Really, we should have expected this. Look at MS and office. They do better integration with windows becuase they know their own os inside out. ;)
(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.
-
ping -f 255.255.255.255 # if only
It would be nice to see the same comparisons but with compilers that aren't over 3 years old.
They said gcc 3.x was beta software, it has more regression testing than windows have security testing.
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.
I'm pretty sure that Visual .NET isn't beta software anymore, and neither is GCC 3.x ... this is somewhat out of date. However, somebody who wants a Slashdotting could just download the aforementioned tools and write their own up to date comparison ... (note that I don't want a ./ing)
:p.
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:
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)
emerge dev-lang/icc
does anyone know if this will be bad for linux?
http://www.osc.edu/education/su_programs/si/si1998 /participants/pinski-andrew.jpg
are you in special ed ?
take the short bus much ?
god, you need to lose the weight and the coke bottles.
which is kooky
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
This story is really old and no longer relevant. Wouldn't be surprised if it was a dupe of a several-year-old story thats already appeared on slop-dot.
......and Microsoft Visual Studio compiler on Windows XP. Not
They changed the name from ".Net" to ".Not"? surprisingly (for me at least),
That that icc compile times are way (5x-6x) higher than the MS or GNU compilers... can anybody verify this?
GCC 3.2.x vs. Intel C++ 7 would have been interesting. This just isn't.
e l_gcc_bench2.html
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.
Legalize the constitution. Think for yourself question authority.
... Intel has the nice compiler that generate really fast code. Presumably it's getting more done per CPU cycle on average by being smarter about scheduling and not wasting so many cycles.
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?
Davo -- Free speech, free software, AND free beer.
The Linux kernel was written using gcc extensions.
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
Does a vastly more efficient compiler make hyperthreading ineffective?
I have an even more general question: is this extremely fast code as stable on linux as gcc?
If this comes at the expense of stability on various platforms (including multithreaded code on 64-bit AMD SMP for instance...), then all the speed in the world is useless.
I predict the following upcoming article topics here on /.:
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:
http://216.239.53.100/search?q=cache:iS43iz-R2d0C: www.coyotegulch.com/reviews/intel_comp/intel_gcc_b ench2.html+coyotegulch+intel+gcc&hl=xx-bork&ie=UTF -8
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.
Will I retire or break 10K?