Apple Hate
Friday, June 10th, 2005 at 2:54 amApple has been a popular subject lately, and the fall out of the Intel switch has been flooding the Net with tons of crap. So, I’m here in my yellow rubber dingy, floating down an overflowing river of Apple Hate™. And I quote, “I didn’t waste six years writing code for a dead-end platform.”
And Kennedye (the poster of that comment) has got a point: hand tuned PPC and Altivec may have not been the best idea, the compiler should be smart enough to auto-vectorize my code and get some decent performance out of it. Hell, GCC should learn to just read my mind; or maybe not, it’d explode from my semi-sarcastic realistic outlook on life.
Now, everyone is thinking Steve Jobs made a mistake, but I’m thinking this may be a brilliant move. See, Steve has something called the Reality Distortion Field™. This field is a documented phenomenon of quantum physics that causes Steve to just think about something, and make it a reality. He can convince anyone of anything, and if he can’t, he can just take your side of the argument up as if that was his side all along, and you’d never know otherwise. This field is so powerful, that even if you know about it ahead of time, you’re still affected.
So, I think Steve watched X-Men (the movie), and saw Magneto’s Spinning Mutant Generator, and thought to himself, “Hmm, wouldn’t it be nice if I could build something like that to project my Reality Distortion Field™ all over the world and convince everyone that my new Mactel machines really are something awesome.”
Although I may be under the effects of his hideous yet elegant and wonderful machine, I think he may be partially right. Due to his reliance on Altivec to close the gap between G4 processors and x86, he got screwed. An ounce of garden variety speed is worth a pound of special case optimization, and the PPC was far overweight in this respect.
Sure, I may have gotten a 25-500% improvement in code that was SIMD-friendly; but using a (at that time) fast Pentium 4 vs the (at that time) new G4, I could easily see a 25-100% improvement in programs that weren’t SIMD-friendly. And seeing as the overwhelmingly vast majority of code isn’t SIMD-able, I’d gladly trade Altivec for raw speed.
Take into the fact that the Athlon was beating the pants off the Pentium 4, the G4 was a really bad deal for Apple users. Sure, it was elegant (and Apple thrives on elegance), but you paid for that by having slower processors.
Of course, if you actually had said special case, PPC was the winner. Take a look at the Cell processor in the Playstation 3. Cell* is a derivative of the PPC meant for machines that need high performance and repetitive (but complex) calculations, such as games, or certain scientific applications. It simply performs better than x86 would in that situation, and Sony knows it.
So, Apple now has effectively traded the rarely used Altivec for lots of generic speed, and got cheaper and more readily available CPUs to boot. So, Steve, what is your next move? A mouse with zero buttons?
* I’m not factoring in Cell’s 8 special use vector units. With those included, it unfairly destroys any competition. Without the vector units, its still a high performance 3.2 GHz PPC-like core.
Yeah, I over-played the Cell a little bit. But don’t underestimate the power of the Cell without the vector units, its still a processor running at 3.2GHz (…even though, compared to a G4, its more like a 1.2Ghz-1.6Ghz G4 due to the stripped down nature of the core hooked up to 3.2GHz memory).
Yeah, I probably should have mentioned Cell doesn’t have Altivec, not that it matters. Altivec isn’t something you’d normally find useful in a PS3 (and the stuff you would find useful, you can get the vector units to do). That, and I bet it wouldn’t be that hard to make an execution unit for the Cell that just does Altivec (and, as I said above, IBM has no reason to, the PS3 doesn’t need it, Cell isn’t a generic purpose processor).
SSE2/3 isn’t really crude. Its not beautiful like Altivec is, but its a lot better than x87; and SSE3′s MMX-alike replacement is a bit better than MMX.
Yeah, I’m betting Apple will chase after the Pentium-D. I’m actually glad Intel returned to the P6 core, its one of the best x86 cores in existence; when Intel switched to the P4, they totally screwed themselves and AMD won that battle.
Ah, now we agree more on what the Apple/Intel deal looks like. I would still like to reiterate however that the Cell’s primary CPU core, while running at high clockrates, can hardly be compared favourably to a G5 core. The G5 is a very wide processor with (among others, this is a simplification); 4 integer units (two general plus two that handle more special cases), two load-store units, two floating point units and of course the Altivec unit.
The primary Cell core however is a in-order narrow design, no extra units. This basicly means that if you take a G5, clip two thirds of its functional units out and clock it up a little bit you get the Cell primary core. It won’t be that impressive. Important to note also is that the Cell does not have Altivec either, so Apple would have lost that either way.
On the SIMD stuff; Altivec is beautiful, SSE2/3 is crude, but it is still very much a reality that with twice the clockrate (closer to three times even) it is not really possible to glorify the vector performance of the G4 over the P4 anymore (though it should be noted that the G4 is an ancient design, it is amazing how well it has stood the test of time), the P4 beats the G4 even there (but the race is much closer than with “regular” code). The G5 (which has a somewhat worse Altivec implementation than the G4) still looks impressive in pretty much every regard though.
It probably does not matter how the P4 does though, Apple no doubt has its eyes on the Pentium M, which is being retrofitted with a SSE3 pipeline as we speak. It will be interesting to see where this heads.