IBM Releases Cell SDK
derek_farn writes "IBM has released an SDK running under Fedora core 4 for the Cell Broadband Engine (CBE) Processor. The software includes many gnu tools, but the underlying compiler does not appear to be gnu based. For those keen to start running programs before they get their hands on actual hardware a full system simulator is available. The minimum system requirement specification has obviously not been written by the marketing department: 'Processor - x86 or x86-64; anything under 2GHz or so will be slow to the point of being unusable.'"
Thats great news, but as an embedded systems designer and eternal tinkerer, where will I be able to buy a handfull of these processors to experiment with? Without having to dismantle loads of games machines ;o)
Open Source Drum Kit, LPLC deve board - mjhdesigns.com
As the Cell is basically a PPC processor I find it strange that the SDK is for x86 processors. Fedora Core 4 (PowerPC), also known as ppc-fc4-rpms-1.0.0-1.i386.rpm is listed as one of the files you need to download. Maybe it's just because of the large installed base of x86 machines.
It'd be nice if IBM released a PPC SDK for Fedora, it would have the potential to run much faster than an x86 SDK and simulator.
infested with jello like fishes no melotron wishes
The software includes many gnu tools, but the underlying compiler does not appear to be gnu based.
Is this any surprise? My understanding was the Cell's a vector process, and despite the recent upgrades to GCC, it's still fairly awful at autovectorisation.
Can anyone clarify?
You know, I'm looking back at all these replies to the poor guy, and I can't help but think that he's sitting in front of his computer wondering, "Can't anyone explain it in ENGLISH?!?"
For instance, you have to unroll your "for" loops to start, since those SIMD co-processors can't do loops.
Actually, we need a new programming model. Instead of using FOR loops, we need a model under while you can say, "Perform these instructions X number of times." One could probably do a bit of guess-work in the compiler based on loops like "for(i=0;i<COUNT;i++)", but that doesn't help cases where the loop uses a more complex conditional statement (or where the test is affected by the loop itself). Thus the language needs to be changed to force the programmer to pre-compute the loop length for maximum performance. For example:
Javascript + Nintendo DSi = DSiCade
Where these dumb comments come from:
1) Apple tries to lowball IBM on the mobile 970 design
2) IBM give Apple the finger - they account for less the five percent of IBM's chip volume
3) Steve goes out on stage and pretends like he has made the 'choice' to move to Intel
4) With Cell processors in Macs no longer an option for Apple, the sour grapes meme that the idiot above parroted starts to make its rounds in Mac circles.
5) Intel's processor roadmap fiasco continues, but what is funny is how Intel's roadmap for future chips years down the road has chip designs that look very close to STI's Cell chips that being made today.
Enjoy your h.264 encoding times on those wonderful Intel SSE chips Mac crazies!
Almost definitely. A cheap beowulf of PS3s.
mov ecx,b
:-(
shr ecx,2
loop:
add eax,[ebx]
add eax,[ebx+4]
add eax,[ebx+8]
add eax,[ebx+12]
add ebx,16
dec ecx
jnz loop
With SIMD instructions, you can execute all four of those adds in one instruction. I wish I knew SSE a bit better, then I could rewrite the above. Sadly, I haven't gotten around to learning the precise syntax.
However, there's a fairly good (if not a bit dated) explanation of SIMD here.
Javascript + Nintendo DSi = DSiCade
OK, so what they're saying is "it's slow to emulate a PPC variant on an x86 variant". Duh.
But Apple seems to have cooked up something wonderful (or at least licensed something wonderful) in this vein in the form of Rosetta, the tech that lets Mac OS X for x86 run Mac OS X for PPC binaries very fast.
Sony has several metric fucktons of money. Can't they license the Rosetta technology, or pay for it to be basically "ported" from its current state of PPC-on-x86 to Cell-on-x86? Cell is PPC-based, so it shouldn't be so hard, no?
With spending like this, exactly what are "conservatives" conserving?
Must be a case of 'brand leakage' from a distant past, one that held Redhat as the most popular desktop Linux distribution.
uh, or maybe... 1) it's because IBM has a partnership with RedHat, 2) Fedora runs on PPC (which CBE is based on) so i'm sure it's easy for them to modify, 3) there's a good chance this was developed using FC4, so it's just easy to release it for FC4
I now think you were using a simile or making an analogy to argue that compilers can benefit from careful construction of loops in the source code.
If so, then of course I agree with you.
Saying this in a much more general way: careful choice of syntax can make the semantics more clear to the compiler.
A high level language with "dotimes (count) { action }" syntax lets the compiler make good choices about loop unrolling and the counter's type.
A language where you have to test and modify your own counter lets the writer make good or incredibly awful choices about loop unrolling and the counter's type.
This version:is semantic brain-damage on a system with very slow very IEEE doubles, and loop-unrolling this naively is not going to help.
A compiler which realizes that this is a loop whose length is constant can unroll the loop fully, partially, or simply use a better/faster iterator like an integer. But should we end up with 0x400 or 0x800?
Haha, now throw side-effecting at your smart compiler by
inserting a debugging into the while loop
Anyway, I think we're not really disagreeing. You can write loops stupidly, whether they're iterative (as above) or whether they're recursive. A compiler probably can't save you if you are particularly stupid. It might even make things worse.
For what it's worth, when I say your sentence to myself, I want to make the like bold, I guess to emphasize the simile.