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."
The new IBM compiler should rectify the situation. Apple will not need to manipulate the SPEC scores by hiding behind the GCC compiler. In the past, Apple stuck with the GCC compiler because it causes the Pentium to perform much worse than it would perform on code compiled with an Intel-provided compiler.
Of course, both the Power4 (and derivatives like the PowerPC 970) and the Pentium IV crush the UltraSPARC in performance. The new IBM compiler is yet in another nail in the coffin of the UltraSPARC.
GCC's whole purpose is to be the most portable compiler possible, not the best performing on any particular architecture.
XLC has a different set of design goals, and the internal architecture of the the compiler is different enough from GCC that there wouldn't be much point in trying to graft them together.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
Type of Code G4 G5
Scalar +70% +210%
Vector +40% +70%
If this holds that places his 2.0GHz G5 (single)=254 at 787
Having used the xLC compiler (on AIX 4 and 5), I can say that it is a very nice compiler. It's probably one of the most strict ANSI-compliant compilers I've used. It also has some nice architecture tuning optimizations. If this new version speeds up the G5, then you can count on future versions giving even better increases.
This is very good news for Apple-people.
Maybe because the optimizations require a view of the G5 that does not work with the generic view that GCC has of a processor. IBM tried to submit GCC patches but they were rejected because the GCC team did not like how deeply they affected the GCC core. GCC is THE cross platform compiler, the PPC 970 is enough different from the assumptions it makes that it will not produce optimal code without structural changes and the team doesn't want to do that.
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
> It's 64bit, supports more memory physically
The 1.8 and dual 2.0 G5 machines support up to 8Gig of RAM when using 1Gig modules. How much RAM does a dual Opteron machine support?
The G5 could also run Linux, and via some emulators, Windows software as well. I think the G5s run plenty of software.
Also, it should be noted that Macs traditionally support more memory than they claim. Apple only announces the ammount you can put in with commonly available DIMM sizes, in this case 1GB.
However, the G5's documentation shows the memory interface can actually handle 16GB not just 8, so if you can get 2GB DIMMs, you will probably be able to use them.
"The worst tyrannies were the ones where a governance required its own logic on every embedded node." - Vernor Vinge
If the parent or grandparent had glanced at the PDF, they too would have noticed that GCC compatibility was one of the major points covered. There are a few pages devoted to what currently is compatible with GCC as well as what's planned. My bet is that they've had their own optimized compiler around since they first fab-ed one of these, to use for test purposes.
It would be foolish to scrap all of the work they'd already done, as well as the performance achieved (double the performance of GCC in some cases, from the PDF). There is mention of this compiler supporting SuSe Enterprise Edition however, but not enough detail to tell if it can compile SuSe or just compile *on* SuSe.
If there is a plan to integrate stuff from this compiler into GCC, my guess is that GCC compatibility would be the first step. It would be very difficult to try to integrate the two if they have fundamentally different structures and no common ground to speak of, not to mention that fact that chip manufacturers invariably keep the true capabilities of their hardware more or less secret until launch time, and putting code into GCC from the beginning may tip their hand to others before they're ready to do so.
obDisclaimer: IANACompilerGuru
> It's 64bit, supports more memory physically
The G5 is 64bit, too, can address 42bit of memory and provides 64bit virtual address-space.
The Opteron has address-space of 40 bit and 48 bit virtual per CPU.
Not that it currently makes a lot of difference.
"Between strong and weak, between rich and poor [...], it is freedom which oppresses and the law which sets free"
It is my understanding that the bus on the G5's _is_ HyperTransport.
I read that there is a fairly large difference between the size of a gcc compiled instruction set (100k) and the XLC compiled instruction set of the same origin (700k). Presumably they are doing some pretty impressive unrolling and inlining. I got that at this dicussion here .
I'll hit preview this time instead of just blindly clicking. Sorry bout that.
That's not really true at the high end. The P4 doesn't support multi-processor configurations, and Intel charges a major price premium for Xeon chips. Dell wants ~$4000 for a dual 3 GHz Xeon with specs similar to the $3000 dual 2 GHz G5.
You could probably do a bit better building your own dual Xeon system, but it still wouldn't be cheap. You're looking at probably $1300-1500 just for the motherboard and the chips -- then add a case, RAM, a hard drive, a DVD burner, a video card, etc. and, for most potential buyers, a copy of Windows XP Pro.
This space unintentionally left unblank.
Becaus the PPC architectur can not be properly mapped onto the GCC processor model. The changes needed in GCC are greater then the GCC team is willing to make, i.e. they feel that the will have a negative impact on the goal of GCC to be crossplatform. IBM is working with the GCC guys on improving GCCs capabilities on the PPC.
Do your homework. Apple modified the tests to reflect the actual shipping models, since they were running on prototype G5's. These issues have long been put to rest and Apple just updated their results the other day with actual shipping G5's. Get out of denial, x8 is not a religion, it's a processor for goodness sake.
I would love to PowerPC win -- I craved it so desperately for years -- but I don't think you realize Apple is finally facing serious competition these days. It's not like back when everyone sneered at Intel: It's AMD now, and AMD is hungry so they offer outstanding bang-for-buck. The Opteron is a fucking beast of a processor, for not much money.
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
Can this compiler be used to prepare glibc or any other major C libraries?
I'm sure xlc is used to compile AIX libc.
Can this compiler be used to generate native Mac OS X GUI applications (cocoa)?
No, it's not an Objective-C compiler.
Will the source be released?
No.
Actually Adobe tends to try and drive right down the center of the road, ignoring anything on either side. They have ignored a lot of the printing advantages in MacOS X, and put in only stubs of support for AppleScript and VBScript.
The only place where they have focused on one platform or the other have been in filters (arguably where the real heavy lifting is). They have made altivec enablers, and to a lesser extent MMX filters (I am referring to this as a family.. not the specific implementation).
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.
Executive summary: Photoshop with a broad array of filters/actions is about as good a general test as you can devise (for graphics artists).
SIGFEH
No.
AltiVec isn't Apple's trademark at all. AltiVec is Motorola's trademark for the VMX (Vector Multimedia eXtension) extension to the PowerPC instruction set, which is the PPC world's version of Intel's SSE and SSE2 instructions.
Apple's trademark for the VMX instructions is "Velocity Engine".
No matter what name you use for it, the name refers to something very real: a large section of the CPU die that is dedicated to processing vector math.
News for Nerds. Stuff that Matters? Like hell.
Nice try. If you actually read the documents and articles, you would know that the modifications made to the Dell (such as disabling HT) actually IMPROVED the performance of the Pentium 4 in SPEC.
And by the way, none of this is "science." Trust me, no scientist is going to publish a paper in a major journal about how fast machine X vs. machine Y runs some synthetic benchmark program.
If you knew about the SPECcpu2000 suite, you'd know that every program comes with a corresponding "correct" output file against which the output must be checked. To report a SPEC result, the output has to WORK.
Yes, and the output probably would work, too, if you enabled the same optimizations in gcc. That doesn't make the optimizations "semantics preserving".
For example, gcc doesn't use x86 transcendental instructions by default because they give wrong results for large arguments. Most programs never encounter that case for most input data, but the program has different semantics and the optimization is not semantics preserving. The fact that those changes only show up under rare circumstances makes the problem worse.
May I humbly suggested that you stop using the word 'semantics', at least if you don't know the meaning of the word, which you don't seem to.
Yes, you should be quite humble because you erroneously think that "I ran the program and it gave the same answer" means that the compiler compiled it correctly.
Umm, yes, IBM does contribute to GCC, but that doesn't mean that they'll stop the development of their high performance, highly competitive compiler that has several years of development and optimizations behind it. Think about it, would they really just abandon all the manhours, resources and intellectual property that have sunken into it and migrate, just like that, to some compiler that is just now becoming competitive with other, propertiary compilers ?
Yep. They modified. For better performance on their tests, while the same is not true of the G5. They made that as stock as possible.
Apple did all they could to make the test even, from using the came compiler to making the G5 match shipping units to insuring the Dell box had all the speed tweaks it could. And it *still* lost.Get over it. x86 hasn't always been the reigning speed champ.
"Only two things are infinite, the universe and human stupidity, and I'm not sure about the former."
Yes Apple does use XCode for Mac OS X development. It was using Project Builder before. In fact, most of the complexity / power in XCode stems from the fact that Apple itself uses it for complex project. Not bad to have them eat their own dog food...
Also, note that the XLC compiler doesn't support Objective-C. Therefore, only the C/C++ portions of Mac OS X can benefit from the optimized compiler...
IIRC, Apple compiles OS X on gcc 3. Would it take a lot of work for them to use the new IBM compiler and therefore take better advantage of the G5? Are there too many differences are between gcc and XLC to allow the open source community to continue to work on Darwin, while Apple uses XLC for performance?
"Anyone that has ever gotten an idea based on any of my work and done something better with it-good for you."--J.Carmack
If I go from Mac to Intel, or vice versa, and I'm not the type to pirate everything from friends, warez sources, or p2p, then I have to buy (prices from Amazon.com, rounded to nearest dollar)...
So the cost to switch is:
To Mac from Win: hardware + 1883 software
To Win from Mac: hardware + 1857 software
And that's just the basics for a good multimedia development set-up. If you code, create Flash/Shockwave, etc., then you can add on another $500-1000 for other tools... or more.
Bundles and other incentives can bring it down, but this is not an inconsequential cost. Even if you could get a 10% faster PC for the same price as a Mac, or a 10% faster Mac for the same price as a PC, you have to ask yourself how much that 10% is really worth to you.
How often will you utilize all the capabilities of the machine and stretch the system past the capabilities of the alternative? How many hours of labor will the system save you over time?
And when all is said and done, you can scream over benchmarks and which is the better OS all you like. But they're totally meaningless.
(Mac fans can claim Windows has an inherently higher TCO, but let's face it, that's if the user is someone who thinks GNU is a Milton Bradley game that succeeded Gnip-Gnop. The rest of us know that a well-educated Windows user can avoid many of its pitfalls.)
Each time I've upgraded my hardware, there's one question I ask when I consider whether to switch platforms... What's the bottom line? How much more would this cost or save?
When I worked it out in 1993, a 486 DX2/50 by mail-order beat an education priced Quadra 40 from the university. Since then, I've invested much more in software that I had as a student... Even though the hardware costs are becoming less of a factor, the software costs have become more of a factor to compensate.
If I won the lottery, I'd buy a Mac and all the cool software I wanted. But barring that, I'll be looking carefully at Prescott versus Athlon 64 in the coming months, and making my choice in the Wintel world because that's where my software is.
So, though this compiler news is cool if you're a Mac User, because it makes your platform better *for you*, the arguments about whether Mac beats WinTel are a lot of sound and fury, signifying nothing.
Start a happiness pandemic
BTW, rename the files to vacpp.60.macos.beta.dmg (C/C++ toolkit) and xlf.81.macos.beta.dmg (fortran) if your browser does not handle the ftp redirect well. If LaunchServices opens the file with the wrong application when you double click on the disk image, drag the file onto the Disk Copy icon in Applications:Utilities instead.
If anyone would like to take the initiative and has access to a G5, IBM offers these instructions for running SPEC2000 on a G5 using the optimized Fortran compiler.
-You may license this sig for only $6.99.
Nope. Apple worked with Genetech (a big customer of theirs) to create Apple/Genetech BLAST, which has AltiVec-izations in it. That was the source of some benchmarks for the Xserve last year.
What people forget when dealing with benchmarking vectorized code is how much the ease of vectorization plays into it. AltiVec is much easier to code for than SSE/SSE2. This matters a lot.
All the PowerPC processors are binary compatible. Even the Power series from the Power2 forward to the Power5. The beauty of the PPC architecture, is that the physical implementation can be radically different, but the instruction set remains the same. (For the most part, the PowerPC ISA is still revised to it keep modern.)
What is different is the performance you may get when targeting a processor. The compiler can optimize your code to a particular processors physical implementation. For example, code compiled for the G5 will be structured to work better knowing how the G5 processes instructions down its pipeline, how it makes its decisions, caching, etc. But the 32-bit code will still work on a G4 albeit at a slower rate.
IBM is in the best position to understand the physical design of the G5 and thus they can make sure that when compiling code, the compiler chooses and structures the instructions that will run optimally for it. In addition, IBM is pretty advanced in developing optimization techniques and they bring a lot of intellectual property to the table. All this makes for some pretty serious optimizations that rival anything a more generalized compiler may be able to do.
What this means is that the Mac developer has another weapon in his arsenal for conquering performance issues. Consider it a free upgrade for your processor, the results are showing significant improvements that will work there way into OS X and performance sensitive Apps.