Slashdot Mirror


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."

31 of 471 comments (clear)

  1. Here we go again: by Anonymous Coward · · Score: 5, Insightful

    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?

    1. Re:Here we go again: by stratjakt · · Score: 5, Insightful

      When/if the G5 outperforms Intel's best, what will the fanboys rally cry be next?

      I nominate "who gives a shit?"

      Anyone who buys a PC because of lame ass benchmarks has no use for said PC, other than to yammer endlessly. If you work with macs, get a mac, if you work with PCs, get a PC, they're two completely different worlds.

      I'm sick of X is 30% better at [specific instruction] than Y arguments. It's like "xbox is 33% faster than ps2" or "mac is 21% faster than dell!". Who gives a flying fuck anymore? Xbox has the worlds shittiest lineup of games, and Macs dont run a *lot* of software essential to people.

      They're just devices, a means to an end. Quit telling me how your boot polisher is better than my doorstop. Its irrelevant.

      --
      I don't need no instructions to know how to rock!!!!
    2. Re:Here we go again: by stratjakt · · Score: 2, Insightful

      I have all three.

      Halo is a good game. Halo is also a RELEASE TITLE! Its fucking old man! How long can Halo carry the xbox? Its like talking about Gran Turismo for PS2, get with the times.

      While PS2 has older a-list titles being sold as "classics", like Jak & Daxter, Devil May Cry, FFX, GT3, the XBox offers discounted "platinum" games like Simpsons Road Rage and SSX Tricky. Who are they kidding? By now, Halo should be 19.99 and Xbox should have long since moved past it.

      I mean, every month theres another good PS2 game out thats getting a bunch of buzz. A month later its replaced by something else, and you pick up the previous months game for 20 bucks. Kick ass. Even Gamecube seems to be pushing out the must-have titles faster than xbox.

      My problem is that two years later, people are still telling me how great Halo is. Yeah, its good, I've had it for two years. I'm sick of it. Its over.

      I mean I was at EB the other day just itchin to buy a game, and I pored over the xbox shelves - theres nothing there. Futurama intrigues me (since I like the show), but you just know the game sucks as hard as any of the simpsons titles. Oh well. Microsoft fails it.

      --
      I don't need no instructions to know how to rock!!!!
    3. Re:Here we go again: by Anonymous Coward · · Score: 1, Insightful

      Jesus, you people never fail to get it, or you just have to use the Straw Man technique, and you have to weasel out of the argument, because you know your argument can't hold water.

      So, you come back with a price list that's not representative of anything that Apple produces. You substitute all sorts of things, then call it "almost" something else, when in fact the system would be unsuitable for use anywhere but in a server farm. It dosen't have the 160GB SATA drive on Apple's spec sheet. It dosen't have the ATI Radeon 64MB card, it dosen't have the same memory, or the same front side bus speeds, or perhiperal connectors, and probably unequivalent CPUs. It dosen't have an operating system, and it dosen't have. have or have.

      The fact of the matter is, with this new compiler, that you can't pit the G5 against anything else, until some conclusions are drawn on the tests. It very well could be that (processor wise) the G5s blow the Opterons out of the water, since we already know that AMD uses optimized compilers and other tricks.

      Basically, you want us to eat shit, and think it's ambrosia. Well, it ain't, pal.

    4. Re:Here we go again: by WinterSolstice · · Score: 4, Insightful

      So... which platform has more techincal diversity and freedom from proprietary dead ends?

      x86 - 2 chip manufacturers
      PPC - 2 chip manufacturers
      64bit/32 bit chipsets - 2 for Mac, 1 for PC, 1 for Sun, 1 for IBM
      Linux - Almost all platforms
      BSD - Almost all platforms
      Upgradeable with off-the-shelf hw - Mac, PC, Sun
      Basic GUI - Most platforms
      Complex multi-button mice - Mac, PC, Sun, IBM
      Simple one button mice - Mac
      FireWire 800 - Mac, PC
      FireWire - Mac, PC
      Gigabit adapter - Mac, PC
      Wireless (bluetooth, 802.11, etc) - Mac, PC
      Office software - Most platforms
      Image editing software - Most platforms
      Video NLE software - Mac, PC, SGI, Sun
      Audio NLE software - Most platforms
      Rendering software - Mac, PC, SGI, Sun, IBM
      NURBS software - Max, PC, SGI, Sun, IBM

      Did you get this far? Do you get my point?
      You can spend forever arguing about this kind of junk. What it comes down to is almost always personal preference. To respond to: "technical diversity and freedom from proprietary dead-ends." This simply doesn't exist. It is ALL proprietary, and nothing is technically diverse. All code that is written is written to a proprietary platform (until an Open-Source chipset comes along). Sure, you can see the code for the basic software, but what does that do for you? No high-end software comes with open source. I don't see Adobe or Discrete or AutoDesk moving to the OSS model. Funny that. Looks like anyone can reverse-engineer a pretty good word-processor, but it must take work to make a serious (not hobbyist) application.

      Pbbbbt. :P

      -WS

      --
      An operating system should be like a light switch... simple, effective, easy to use, and designed for everyone.
    5. Re:Here we go again: by Anonymous Coward · · Score: 1, Insightful

      Indeed!
      How dare anyone but a poltician or law-enforcement professional have an opinion about how much survailance a government should conduct on it's citizens! It's not their field, and none of their business what the government does with their systems!

    6. Re:Here we go again: by swillden · · Score: 2, Insightful

      Anyone who buys a PC because of lame ass benchmarks has no use for said PC, other than to yammer endlessly. If you work with macs, get a mac, if you work with PCs, get a PC, they're two completely different worlds.

      This isn't true for Linux users. I run Debian Linux, so my world is almost exactly the same across x86, PowerPC, Alpha and a whole bunch of other platforms. So, for me, these arguments about relative performance and relative cost *do* matter. At the moment I don't think there's much question that x86 has better performance for the money, but that may just be changing -- particularly when IBM starts selling its 2- and 4-way G5s. And this compiler could be what pushes the PowerPC over the top.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  2. So much for open source at IBM by SuperBanana · · Score: 1, Insightful
    Unlike gcc, it is optimized for the G5 and achieves a major boost in speed, as first results show

    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.

    1. Re:So much for open source at IBM by nomadic · · Score: 5, Insightful

      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.

      Maybe they just didn't feel like it. Maybe they just preferred working with their own code. IBM's contributed, a lot, it doesn't mean that they're now servants of the open source community.

    2. Re:So much for open source at IBM by finkployd · · Score: 4, Insightful

      IBM has contributed more to the open source community than I would venture to guess any other corporation on earth. (think of the code, projects, money, support, etc). I would not be so quick to blast them for not doing everything under an open source license. Encourage yes, but let's be civil about this. IBM is not just blowing smoke about OSS, they have put their money, time, and products where their mouth is.

      Finkployd

    3. Re:So much for open source at IBM by kilonad · · Score: 3, Insightful

      Why would they use GCC as a base? It's not intended to compile over a wide range of platforms, just the pSeries processors (which includes the G5), so it's not like they need to be able to port it to x86. When you code a compiler for one fixed architecture you can (and almost always do) end up with HUGE speed increases, since you get to exploit all the fun capabilities of a chip without having to worry about compatibilty.

      Put simply, IBM wasn't that interested in improving the cross-platform GCC this time. They were interested in improving a number of their OWN compilers (not just C/C++, Fortran too!) for their OWN architecture.

    4. Re:So much for open source at IBM by RalphBNumbers · · Score: 3, Insightful

      And is there a particular reason why IBM couldn't apply their work towards gcc?

      Yes.
      GCC rejected alot of their patches. GCC is a cross paltform compiler, the maintainers can be very picky about adding code that only helps one platform.

      IBM has contributed quite a bit to GCC, but GCC is not the proper place for a heavily optimised platform-specific compiler effort.

      --
      "The worst tyrannies were the ones where a governance required its own logic on every embedded node." - Vernor Vinge
    5. Re:So much for open source at IBM by southpolesammy · · Score: 4, Insightful

      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.

      First off, most companies develop compilers for their hardware/software because they have the behind-the-scenes knowledge necessary to produce a superior product, and therefore, make money off of it. It's called having a competitive advantage, and I see nothing wrong with that.

      Second, who says that they won't eventually work to get these performance enhancements included into a future release of GCC? Just because they haven't done so yet does not mean that they never will.

      --
      Rule #1 -- Politics always trumps technology.
    6. Re:So much for open source at IBM by Chibi+Merrow · · Score: 2, Insightful

      Hmm... Maybe because this compiler is something they plan to sell (from what I can tell it's a closed source binary-only download) and return a profit on.

      If you really think that all IBM has contributed is some legacy drivers to Linux, I'm guessing you're either out of touch or I've severely misunderstood IBM's involvement. Look at the SCO lawsuit for a good example of many of the IBM developed/owned technologies that are now available as GPL in the kernel.

      I think that it comes down to is they didn't use gcc because they weren't looking for some massive slow cross compiler to modify to fit their needs, they (as the makers of the hardware) wanted a package that was built from the ground up to build the best code it can for their architecture. It would seem almost impossible to make gcc as good on any one architecture as an architecture specific compiler written by the architecture's creator. If I want a high performance sportscar I don't start with a station wagon as a base (well, unless I have my own show on TNN) and modify it. I build it from the ground up.

      --
      Maxim: People cannot follow directions.
      Increases in truth directly with the length of time spent explaining them
    7. Re:So much for open source at IBM by nettdata · · Score: 2, Insightful

      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.

      Maybe because, oh, they didn't want to? Just because a company participates in Open Source projects doesn't mean that they have to participate ONLY in OS projects. In this case, they built a chip, then they built a compiler for that chip, and have freely distributed it. I, for one, think that's pretty nice of them. After all, there's NOTHING stopping you from using GCC instead of the new compiler. Your choice. Just like THEY made a choice. See how that works?

      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.

      If I have an older (or newer) IBM box that I've picked up, and I want to run some Open Source operating system on it, like Linux, I'm DAMN HAPPY that IBM contributed the stuff to the kernel that lets it run on the piece of hardware that I want it to. That is a GOOD THING(TM) in my opinion, as they have provided me with ANOTHER CHOICE. It means that they more than likely didn't have to guess how to do the drivers for it, and it's more than likely in their vested interest to keep it up to date.

      Sure, it may help them make money on hardware purchases, etc., but this is beside the point.

      Where is it written that people are only allowed to make contributions if they can't or don't make money off of it? At the end of the day, the community benefits from the submission, and they benefit from some sales. This is another GOOD THING(TM) because maybe it will help to show other companies that there is a reason to contribute other than trying to build up the karma points.

      But hey, what do I know... I only live in the real world.

      --



      $0.02 (CDN)
  3. Re:can it compile the kernel? by SuperBanana · · Score: 4, Insightful
    worthless if it's not gcc compatible to compile the kernal

    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!)

  4. Re:why don't they just improve gcc? by stratjakt · · Score: 2, Insightful

    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!!!!
  5. Re:why don't they just improve gcc? by jpc · · Score: 2, Insightful

    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.

  6. Why not GCC? Why not GCC? by finkployd · · Score: 4, Insightful

    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

  7. Let's be objective by siskbc · · Score: 2, Insightful
    Lest anyone forget, Apple beat Intel in real world benchmarks

    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

    1. Re:Let's be objective by siskbc · · Score: 2, Insightful

      Oh, and benchmarks are not? Always take real-life performance test if they are similar to your work before benchmarks.

      Certainly - if you can tailor your benchmark to your work, by all means do so. If you use photoshop a ton, and it's faster on the mac, get a mac. But what we're talking about are public benchmarks, applicable very generally to people who supposedly don't have uniform work habits or environments.

      Given that, about the fairest comparison is taking a whole lot of different code examples, compiling on both machines, and running it. Is it a perfect indicator? No, and no one's saying it is. But it's the best you can do without attempting to artificially favor one or the other. If everyone picks their own benchmarks, everyone gets different results.

      Benchmarks are only a substitute for real-life test, not better than.

      Couldn't agree more.

      --

      -Looking for a job as a materials chemist or multivariat

    2. Re:Let's be objective by siskbc · · Score: 2, Insightful
      The only place where they have focused on one platform or the other have been in filters (arguably where the real heavy lifting is).

      That's what I thought, and indeed, that's where you need the G5. I can draw circles on an old PPC. ;)

      It is true that Altivec has given a bigger boost than the MMX family, but this is simply due to the quality of the Altivec units. Intel actually paid for a 2bit gausian blur filter for MMX for demo purposes. If you stuck with exactly a 2 bit blur (not real common) you got a great result on the Pentium, but off that magic number the PPC (604 at the time) won.

      I'd say that's cyclical. Apple's always had great support among the design community. They'd be retarded to let Intel usurp that. So I'd say that designers/Apple have a mutually beneficial situation - you buy exclusively our stuff, and we'll design our chip to do cool stuff for you.

      Executive summary: Photoshop with a broad array of filters/actions is about as good a general test as you can devise (for graphics artists).

      I think we'd all agree that if the world consisted of graphic artists, intel would go out of business. But, for instance, I'm a chemist, so I could care less about filters and such. And as above, apple's simply worked harder specifically to woo artists and such. Intel doesn't - so I'm not surprised in the least that the mac might win.

      Put it this way - why is the general mac community against using a non-graphics, non-adobe product as a "real-world" benchmark?

      --

      -Looking for a job as a materials chemist or multivariat

  8. Re:can it compile the kernel? by Doktor+Memory · · Score: 4, Insightful

    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.

  9. Re:Got something to back that up? by finkployd · · Score: 4, Insightful

    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

  10. Re:Interesting, but... by WasterDave · · Score: 3, Insightful

    the Intel C compiler spanks every other available x86 compiler

    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 ... you point it at some real code, nothing happens. Why is this?

    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.
  11. Actually you could use it for ObjC today. by Paradox · · Score: 3, Insightful

    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
  12. Single P4 versus DUAL G5's by Nazmun · · Score: 2, Insightful

    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...
  13. Re:Speed is Irrelevant by noewun · · Score: 2, Insightful
    most multimedia pros who are running . . . Windows

    Both those guys must be pissed!

    I know, I know, but I couldn't resist. . .

    How often will you utilize all the capabilities of the machine and stretch the system past the capabilities of the alternative?
    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.
  14. oh sweet jesus by klez23 · · Score: 4, Insightful

    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??

  15. Re:You didn't even comprehend the post, eh? by cbreaker · · Score: 2, Insightful

    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. -
  16. Gcc still a great compiler by HuguesT · · Score: 2, Insightful

    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!