IBM Releases Compiler for Power4 and G5
davids-world.com writes "IBM offers its optimized XLC compiler not just for Intel CPUs, but also for its own G5 processor (article in German at Heise). Unlike gcc, it is optimized for the G5 and achieves a major boost in speed, as first results show. I guess we will have to compare the new benchmark data (once available) with the data we get with the optimized Intel compiler for Xeon. The compiler is available for download now."
Lest anyone forget, Apple beat Intel in real world benchmarks... so the PC fanboys cried that SPEC benchmarks are the real measurement to gague speed... (probably because the comparisons were much closer when conducted this way). When SPEC benchmarks were displayed, these same fanboys cried that Intel's compiler wasn't used (instead the same compiler between platforms). Apple replied that its fairer to normalize the compiler between platforms and that while Intel could have achieved higher results when their compiler was used, Apple could do the same. So, here is that compiler. When/if the G5 outperforms Intel's best, what will the fanboys rally cry be next?
And is there a particular reason why IBM couldn't apply their work towards gcc? So much for the whole open-source, contribute-to-the-community philosophy.
I'm personally rather tired of companies which consider "contributing to the open-source community" to be "lets send in drivers for our proprietary hardware which only we will ever need." That's NOT contributing to the community, that's getting your foot into the kernel.
I know Watson labs has made many contributions to GCC over the years..and I'm not naive enough to think Big Evil Corporations aren't out for their own interests...but it's still a shame they couldn't have used gcc as a base.
Please help metamoderate.
Believe it or not, people DO sometimes run singular tasks on hardware which they want highly optimized...and believe it or not, you can actually install more than one compiler on your system at a time(yes, I know, amazing!)
Please help metamoderate.
Because they aren't in love with RMS's conditional license? Because they have IP they dont want to release? Because they make money from their own compiler?
Is there any reason that gcc maintainers dont just improve gcc? Isn't that what they're supposed to do?
Gcc may be a complete compiler suite. Whee. It's hardly optimized for any platforms besides x86 and Alpha, though.
I don't need no instructions to know how to rock!!!!
they probably wrote this a long time ago. Writing custom compilers for one architecture is easier than writing generic backends that gcc needs. And IBM has always had a lot of people working on compilers (like Backus, who did Fortran). Perhaps they will be persuaded to contribute to gcc too.
I know everyone wants to know why they did not just contribute to GCC, but seriously people, I imagine they have their reasons.
Perhaps they wanted something done in a timly manner without waiting for the GCC people to accept their patches. Perhaps they felt a more elegant solution could be achieved by building their own compiler from scratch. Maybe they think GCC is a piece of crap (which for high performance computing, it is).
Just because IBM support open source does not mean they are obligated to do everything for the sole purpose of advancing the movement.
Finkployd
What's a "real-world" benchmark? Comparing the function of photoshop on mac vs. pc, when it's developed natively for the mac? That's not really fair. It's simply not the same code. We could take any of the many programs made natively on PC (which are then ported to mac) and do the same trick.
so the PC fanboys cried that SPEC benchmarks are the real measurement to gague speed... (probably because the comparisons were much closer when conducted this way).
And I'm sure that the macheads don't favor the "photoshop test" for the same reason? We need some objectivity here. Nothing wrong with a fair benchmark, and I'll go on record as always preferring a benchmark, regardless of who it favors.
Apple replied that its fairer to normalize the compiler between platforms and that while Intel could have achieved higher results when their compiler was used
Why fairer? Shouldn't tests use whatever compiler will *actually be used*? If apple/IBM made a chip without a decent compiler to support it, that's their problem. I'd say it was fair to use Intel's compiler for intel's chip. Now it will be fair to use IBM's compiler for IBM's chip. Also interesting was how you suspect the "fanboys" of being biased when they wanted benchmarks instead of "real-world" tests, but Apple just "realized that it's fairer" to do something that benefited them. It works both ways.
Apple could do the same. So, here is that compiler. When/if the G5 outperforms Intel's best, what will the fanboys rally cry be next?
That's perfectly fair. Let's use the best compiler for each machine. I've no problem with it.
Now, to ensure a completely fair test, let's make sure Apple uses both machines as they ship, and everything will be fine. But the pc "fanboys" as you call them were right to criticize a test in which Apple modified the machines, both their own and Dell's, fom the way they shipped. The changes it made to the Apple were beneficial, the ones to the Dell were all detrimental. That's not science.
I honestly like Apples, this is just a matter of scientific method to me. I really could give a shit who wins.
-Looking for a job as a materials chemist or multivariat
Eh, I wouldn't say that GCC is "worthless", it's just that its worth lies in an area that has nothing to do with high-performance computing. Or even mid-performance computing. :)
GCC's primary virtue is that it exists. For practically every computing platform on the planet, there's a famliar, stable toolchain that produces repeatable results. You can't optimize a program that doesn't exist in the first place, and GCC is the tool that's allowed many if not most of the programs we use on a daily basis to exist. There's value in that.
News for Nerds. Stuff that Matters? Like hell.
No, I don't mean scientific computing. I mean high performance computing. SP clusters, Linux clusters, weather modeling, the stuff that large universities do. No offense but where I am we run significantly larger clusters than SARA has ever seen.
GCC is a great compiler, I use it daily. Better than Intel and IBM for performance (expecially FORTRAN) it is NOT. It was designed as a cross compiler and in that it shines. But it is not all things to all people.
I certainly did not flame GCC and all the people who work on it, come back down off your high horse. All I did was list some reasons why IBM may not have used GCC, one of which is that most of the HPC people I know and work with have tested it and found it to be unacceptable for what they do.
That said, I certainly can see a day when GCC IS the best performing compiler, hands down. I believe open source will eventually overtake most commercial applications due to the momentium it currently has. However it would be silly of me to say that MySQL is better than Oracle, when it clearly is not (yet).
Finkployd
the Intel C compiler spanks every other available x86 compiler
... you point it at some real code, nothing happens. Why is this?
:)
It used to, but it's a close call these days.
SSE/SIMD support is, in the words of one of my assembly-programmer friends, "awe-inspiring."
No it's not, it's fucking awful. Sure, the hype is good, the docs (which are actually very good) show a loop being unrolled to some SIMD instructions, including a little cleanup at the end in scalar instructions. You code it up, it goes
It's not magic, that's why. You put an exit condition in the loop, you break vectorising. If everything isn't lined up on nice 16 (?) byte boundaries, you break vectorising. Once you've gone through making sure all the conditions are met you realise that it's easier just to use the intrinsics in the first place.
Intrinsics, BTW, are very cool and much easier to code than you would have thought. GCC has them too
Dave
I write a blog now, you should be afraid.
Interesting to note that Objective C is much closer to raw C than C++, and as such yes. You can do some stuff with it that's worthwhile.
Also note that David Stes released his POC, which is an Objective-C->C compiler with a runtime he uses (actually it's a bit more than Objective-C) to run ObjC code today.
Apple will probably use this new compiler to recompile their CoreFoundation stuff, which is all C stuff that Carbon and Cocoa tap into. So, a simple recompile of CoreFoundation should net good speed improvements on G4s and MUCH better results on a G5.
So even if IBM chooses not to directly support Objective-C, Apple can still benefit in the short term while they rustle up their very own ObjC->C system (which is NOT a very challenging feat, considering the ObjC runtime is a relatively simple-to-use C library).
Slashdot. It's Not For Common Sense
The Pentium scores you listed are from Pentium CPU's (not the xeons which did slightly higher) which are incapable of dual cpu operation. This was against a dual cpu system that was probably optimized well for dual use.
Whats interesting to note that the single pentium machine scored 836 in int performance and the xeons (dual machines) scored 840... Almost no performance increase from going dual here.
Hmmm... Pie...
Both those guys must be pissed!
I know, I know, but I couldn't resist. . .
If you are doing serious Photoshop or After Effects work, all the time. No matter how fast the newest machine is, there's an art director out there with a layout which will make the machine choke.I am a believer of momentum and curves.
Can't we talk about Macs on Slashdot without having to talk about whether they're overpriced or slow or whatever? I have a Mac, I like it, I use it for lots of things. I'd like to be able to discuss it, rather than just read x86 users' posts about how much better their platform is & why. This article is about a complier, not comparison shopping. Could we stick to that please??
It seems to me that this special super-duper compiler wouldn't benefit any other CPU's since it's designed to make code that the processor executes the most effeciently.
Open sourcing a compiler for a CPU wouldn't automatically make the Xeon compiler any better. It would make gcc compile for that processor better.
Either way.. where's my super-duper Athlon and Athlon64 compilers!!
- It's not the Macs I hate. It's Digg users. -
Looking at all these pretty graphs, and knowing that in most cases sane people will restrict their optimization to -O2 (-O3 and above are usually unsafe: not as well tested, may change the program behaviour, cut corners with IEEE math, etc), GCC is still looking pretty good.
In most cases in both FP and Integer, GCC matches XLC up to -O3, sometimes a bit slower, sometimes a bit faster.
I applaud the work of the GCC people. GCC is the most versatile and portable C compiler, and it's not half bad at optimizing either.
Thanks too to IBM. Their compiler will surely prove useful in a lot of cases, and a new compiler to try and benchmark is always good news!