Intel C/C++ Compiler 8.0 Released
Peorth writes "Intel has released version 8.0 of their Intel C/C++ compiler for both Windows
and Linux.
This release has been rumored for a long time to contain 100% GCC source and binary compatibility. It seems great strides have been made in advancement of that goal, as well as of its performance, but it may have a long way to go yet. Has anyone had experiences with it yet, either good or bad?"
Has anyone had experiences with it yet, either good or bad?
No, but I heard about it on this "nerd news" website that I frequent.
NO! IBM have a compiler for PPC, icc is for x86.
If that's true then for Intel is very important to have the compiler that can compile the fastest linux kernel, and to be able to link other software that runs on linux.
Very good way to show the world that linux is more mainstream every day.
I see no other reason to make the compiler binary-compatible with GCC. (Yes, BSD benefits too.)
We are Turing O-Machines. The Oracle is out there.
yes this is for you gentoo folk, does it work as just drop in replaced? benefits?
-
world was created 5 seconds before this post as it is.
But it's not free. Why would I want a compiler that isn't free?
Because in some/most cases it makes faster code and saving 10% execution time is worth the sub 900 USD price of the Intel C compiler.
so, if its 100% compatible with GCC source, and produces 100% compatible binaries... doesnt that make it GCC?
My first thought was, "does this mean it can finally compile the Linux kernel?" But the website says "with a few kernel modifications, [icc] can build the kernel." Since gcc can compile it without modifications, doesn't this mean they are not 100% compatible? Also, there is no link to these patches anywhere, just this article on icc 7. Do you have to figure out the problems and fix them yourself?
Obviously there is other software to compile besides the Linux kernel, but since the icc is so tuned to the Intel hardware, and Linux interacts so directly with the hardware, people believe that icc would give great benefits to the kernel. At the very least, nothing can claim 100% gcc compatibility unless it can compile Linux unmodified.
> Has anyone had experiences with it yet, either good or bad?
:-(
I went to the website and was told that I wasn't allowed to have a copy unless I paid them money and promised to prevent others from copying my copy.
They've also denied my request for a copy of the source code. Appearently, I'm not allowed to know what my copy is doing when it's compiling my code.
There were many other restrictions. Overall, a pretty bad experience
Expert in software patents or patent law? Contribute to the ESP wiki!
Overall, it's probably not worth using unless you really need a compiler that generates fast code.
Human/Ranger/Zangband
According to the website the compiler for Windows is $399
coriordan, please stop trying to convert the unwashed masses here at slashdot and lwn. Anybody who is at either site is well aware of GNU and their "philosophical" positions and has heard these regurgitated arguments before, and if we aren't members of the GNU/Cult it's because we've examined their positions and found Stallman and Co. to be frothing-at-the-mouth crazy. Your naive, ignorant, and overconfident opinions aren't the gospel you take them to be. Your sermons at LWN expounding the GPL and the GFDL to the non-believers are downright ludicrous (especially since you don't understand the actual natures of the licenses and software development models you discuss).
So intel releases a compiler. So you don't approve of its being protected by regular copyright law. Then a) refrain from buying it and b) sit down and shut up.
For those who have real interest in the compiler instead of fantasized complaints, Intel offers zero-cost downloads of both the c/c++ and fortran compilers for noncommercial use.
"What's the big deal? ...not worth using unless you really need a compiler that generates fast code."
Is this some sort of cruel joke? Do you like running slow code?
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
I don't know if this applies to the newest version, but info about a non-commercial license is at:l ers/c lin/noncom.htm
http://www.intel.com/software/products/compi
I compile using both gcc 3.2 and icc 7.0. I do this because different compilers emit different warnings and this has helped me to improve my software's quality.
The fortran and c/c++ are both available, as long as you don't try to create a commercial product with it.
#include
Hey, does anybody know how well it optimizes for the Athlon XP?
Ron Paul 2012
well aware of GNU and their "philosophical" positions
I mentioned neither "GNU" or any "philosophical positions".
Staying out of jail, and knowing what a compiler is doing, are *practical* arguments against using Intels compiler.
expounding the GPL and the GFDL
I denounce the GFDL.
So you don't approve of its being protected by regular copyright law
GPL uses regular copyright law.
sit down and shut up
Challenge, rebut, argue, but don't tell a person not to speak. (and I *am* sitting down.)
Expert in software patents or patent law? Contribute to the ESP wiki!
There's no source code. So I'm not going to use it. Well, that was the easiest decision I made all year!
There was a time that I would put up with binary-only compilers. That was before gcc. Sure, both free and non-free compilers have bugs, but it's so much easier just to fix those compiler bugs yourself in the compiler's own source code, rather than have to craft a binary patch to fix the bug while you wait 6 months for the vendor to think about releasing the next version.
Does my bum look big in this?
Now, you can take whatever you want outta that, but my view is that having your programs run three times faster just might be useful.
Disclaimer: these results are for a specific program (dealing with computational astrophysics). Obviously your application may see other speedups.
Processor dispatch allows the compiler to generate multiple optimized code paths and dynamicaly select which optimized version of the routine to use based on the processor that the program is running on. This allows a single executiple to run with SSE/SSE2 support on the P4 and still run on processors that do not support SSE/SS2.
I do not know what happens when the app is ran on AMD processors that support SSE/SSE2.
It'd be awfully nice to have version numbers on this thing.
May we never see th
An AC above pointed out that Intel are part of the Trusted Computing group. This all reminds me of Ken Thompsons compiler trojan. (where he hacked a c compiler to add a backdoor whenever it is compiling "login".)
So, what might icc add to the security functions of glibc? to gnupg, sshd, lsh?
You're reaching pretty far with this argument. Intel is a damned large company with a lot of groups working on things and a lot of different opinions and people. They don't have to have a secret, nasty, ulterior motive, even if one group is working on something you don't like.
You want to be paranoid about Intel? Give up -- they control the CPU. They could trojan you much more easily via the proecessor -- no reason to dick around with the compiler.
Plus, look at the Trusted Computing Group membership list. Do you distrust all products from all of these companies?
Let's see:
* ARM is on there. You better avoid any embedded devices. They might be trojaned. Or using any devices in your system (drives, add-in cards) that have ARMs onboard.
* ATI and NVidia are on there. Video cards are clearly out -- there are numerous standards that will let video cards push code to the processor, plus cards tend to have pretty much unstopped access to memory.
* Fujitsu is on there. You want a trojan, a hard disk controller is a damned sweet place to put it.
* Philips is on there. I hope you don't rely on CDs for anything. Who knows what they put in their reference CD drive controller code?
* RSA is in there. A damned large number of companies license their prewritten libraries (and binary copies of the thing, as well). I hope you've never run Netscape Navigator 4.x, because if you did, RSA could be controlling your system, modifying binaries, etc.
* Phoenix is on there. Boy, I hope you don't trust your BIOS for anything. You *are* using LinuxBIOS on a *completely* open-spec'd motherboard, right?
Point is, trying to distrust huge companies because one small component of the company does something you dislike is simply a futile task. Maybe one day you can use all open-source and viewable software, but it isn't going to be in the next decade -- keep in mind all that controller hardware with unbounded privileges to all the goodies on your computer.
Don't get me wrong. I like open source. I write open source. However, being irrationally fanatical about it is both stupid and counterproductive, and doesn't do diddly for the open source movement.
May we never see th
It's great that this compiler is available. For the people who want to use open source and/or free software, there's gcc. For those who don't care about that and want good code, there's icc. And now that the gcc authors can pore over the output of icc and get some ideas on how to generate better code, we can hopefully expect future versions of gcc to close the gap a bit.
How bloated are the static binaries ICC produces ?
Code portability is important.
If you dont care about code portability and all you want speed write in assembler, not C or C++
ICC ay be usefull to a niche market, but it doesnt have a long term future.
We've tested Intel's c++ compiler for linux at work, and it's cut the full distributed rebuild time of our gameserver software from about 9 mins to 3 mins. That alone is more than enough reason to switch IMO.
Performance-wise, it seems to have a slight edge over gcc, but this is subjective as I haven't really measured anything yet. Apart from the performance issues, I've found icc to be way more informative in its warnings and remarks than gcc. Unless you strictly believe in the GPL or are open-source only, I see no reason not to at least give it a try, it's a damned good piece of software.
The next great MMORPG.
Those who sacrifice security to condemn liberty deserve to repeat history or something. - Benjamin Santayana
IA-32: A system based on a 450 MHz Intel(R) Pentium(R) II processor or greater, Intel Pentium 4 recommended # 128 MB (256MB recommended).
IA-64: A system with an Intel Itanium(R) or Itanium 2 processor or greater
I used the Windows version of the Intel compiler at work for quite a while, and it does produce some exceptionally fast code (and sometimes takes an exceptionally long time doing it).
The problem? Since version 6 came out any software we compiled with it exhibited crashes that did not occur when we used another compiler on the same code.
In the end we had to stop using it. Its a shame really because it was an excellent product (the only gripe being their Premier/Quad support website which was crap).
Steve.
When will AMD release an optimizing compiler ?
We've got the free software, why not tweak it for cheap fast processors ? My Dell P4 laptop is nice and speedy yes, but for the same money I could have bought an even nicer Mac G5, or five Athlon-based desktops of equivalent performance.
I want my 3DNOW, dammit! =)
-Billco, Fnarg.com
See http://www.suri.co.jp/~ohkubo-k/linux/.
I was doing c/c++ development on the following platforms simultaneously:
- Mac OS X
- SGI Irix
- Solaris Sparc
- Linux x86
- Linux PPC
My experience was that you can get pretty much anything through the gcc x86 compiler and also run it successfully. When you move along to another platform you get Bus Error or Segmentation Faults all over the place, at runtime (the PPC is really picky).
Using different platforms simultaneously really helped improve code quality.
I usually code in linux/x86, but I do not consider my code tested and bugfree before it runs well on Mac OS X as well.
Theoretically, an optimizer would transform object code into something that always produces the same set of output for any given set of input, but it would do it faster than the un-optimized code. Since the direct correlation of objects in the object code and descriptions in the source code is broken, debuggers will often fail to work correctly on optimized code. Even if it worked perfectly all the time, there is no guarantee that optimized code will always be faster than unoptimized code. If the source code is architected with strict mathematical Ockham's Razor style, then the object code will be unoptimizable any further: reduced to its minimal terms.
The question I want to ask: why would you intentionally write source code whose object code can be significantly improved by optimizations? Platform neutrality (is that just modular compilation or optimization's role)? Source code readability (what about putting some effort into your comments and READMEs)? Laziness (what if your hour of programming effort will yield beyond what you would expect from optimization, many hours of saved work by running the program)?
Let's skip the polemic and get right to the meat of the question. WTF is the point of optimization? Can we do better?
--- Nothing clever here: move along now...
i haven't played with 8.0 yet, but using 7.1 i managed to get substantial (>20% overall) speedups. of course, this was with ipo turned on for almost everything which generated several megabytes worth of files per source file. i'm looking at playing with their fortran compiler, partially because it's a good excuse for me to play with fortran and partly because i'm fairly certain that it will be able squeeze some extra speed out of key algorithms. that said, even if the executables' speeds weren't substantially different, icc has some other nice features, built in openmp stuff, etc. and, of course, it's always good to have a second compiler's opinions on things.
how can the very first post for a story be modded 'redundant'? meta-mods, you know what to do here...
AMD used version 7.0 to compile it's entries for SpecInt performance, and I'm guessing that they didn't just pick it because they thought it had a cute name.
.NET 7.0.9466 (libraries)
Compiler:
Intel C++ 7.0 build 20021021Z
Microsoft Visual Studio
MicroQuill Smartheap Library 6.0
HIV Crosses Species Barrier... into Muppets
Here's a link you need to check out
Thanks. I should have replaced that stupid signature long ago.
Everybody is wondering why should I shell some money for something I could have for free (a C compiler for Linux and even for Windows)
The magic word is Optimization. Not 1% faster optimization, but Heavy Metal optimization...
For one, try to compile something to Itanium...
For other, try optimizing your code to use MMX/SSE/SSE2 stuff. ICC vectorizes your code automatically...
XVID is (usually) compiled with the ICC. Wonder why? Because it's top quality code...
how long until
As he has for previous versions of icc and gcc http://www.coyotegulch.com/reviews/index.html
Pain is merely failure leaving the body
Here's a random question, if a compiler is licensed for non-commercial use, but the source code is GPL, does that mean that produced binary can not be used for commercial purposes?
But if it's GPL-ed souce, I don't think one can apply that kind of restriction to it.
Mod parent funny.
See, the Opteron is made by AMD, a competitor of Intel's.
Those who sacrifice security to condemn liberty deserve to repeat history or something. - Benjamin Santayana
In one of my programs, icc7 actually produced slower code than gcc (at -march=pentium4, maximum optimization) because the most time-consuming loop was not automatically vectorized for some reason. The generated code for this loop (by both gcc and icc) are actually using x87 floating-point instructions (sse instructions are used in most other parts). gcc with -ffast-math generates reasonable code, while the icc-generated code have very long dependency chains, and is thus slower. The code in question is the sum of 9 products, so I think icc should be allowed to change the order of summation (anyway it defaults to non-strict floating-point), but it didn't do so automaticaly. Then I removed the dependency chain by hand by adding up partial results, and speed instantly doubled with icc (I didn't try gcc). Then I vectorized the code manually by using SSE intrinsics --- another 4x speedup (of course this would help gcc too, but I didn't try, either).
The moral of the story is that it is still unwise to trust the compiler too much to optimize your code. If most of the time is spent on very little code, some manual vectorization and formula rearrangement really pays off, whatever compiler is used.
Well, ICC compiled with ICC ought to run pretty fast given its optimizations. Now, has anyone considered compiling gcc using ICC to see how much of a performance boost it gets?
-- thinkyhead software and media
Go look at the Dell SPEC numbers in Apple's G5 advertisements. Now go look at the official Dell SPEC numbers. IIRC the SPEC numbers dropped over 20% by moving from Intel to GCC. YMMV. Not a slam against GCC. Ubiquity is its goal not best performance on all platforms. GCC is also handicappd in that it can't use proprietary techniques Intel can easily afford to license.
Some gcc 2.0 (I forget the version) would build 680x0 jump tables with unsigned shorts then jump as if they were signed. Thus it jumped to x-2 instead of x+fffe, if you see what I mean.
I didn't have the internet at the time, so no, I didn't update the test suite or even tell anyone.
I must admit that some closed source authors (e.g. Frank Wille when he was writing phxass) make a good effort to fix bugs immediately when they are told about them, but nothing's quite so satisfying as being able to say "there, found it, fixed it!" once you've spent 2 days finding out the bug, rather than "found it! now I have to mail the developers and wait a few weeks".
Does my bum look big in this?
Looks like we were both wrong. It was the other Unix guy, Ken Thompson.