Linked by Thom Holwerda on Fri 6th May 2011 22:41 UTC
Games "It all began when a young man named George Hotz began to work on the PlayStation 3, trying to gain access to the machine in a way that made Sony uncomfortable. In response, Sony removed the OtherOS functionality of the PlayStation 3 in a mandatory update, and the hacking community was not happy with this decision, resulting in a sort of cold war. PS3 hackers have once again gained the upper hand: Linux has been returned to the PlayStation 3."
Thread beginning with comment 472256
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[10]: Wonderfully uninformed
by ba1l on Sun 8th May 2011 14:18 UTC in reply to "RE[9]: Wonderfully uninformed"
ba1l
Member since:
2007-09-08

For instance, the PS3 can run existing code with a recompile. CUDA requires developers to reimplement code around new APIs.


Actually, no.

The PS3's main CPU is a simple in-order PowerPC core. It's actually quite slow compared to standard PC parts.

If you want to get any kind of computing power out of the PS3, you need to use the SPEs. These are basically vector coprocessors (you have 6 of them on the PS3), which have a completely different programming model than a normal CPU. You can't really just re-compile for the SPEs and expect it to work. Even if you could, it'd be much slower than running on the main CPU. Code has to be specially written for the SPEs, taking their unusual architecture into account.

They aren't quite like GPUs, but they aren't much like CPUs either.

Reply Parent Score: 2

Alfman Member since:
2011-01-28

ba1l,

"Actually, no.

The PS3's main CPU is a simple in-order PowerPC core. It's actually quite slow compared to standard PC parts."

We are both right. You *can* re-compile and use existing code on the PS3's generic processors and you will get speedup for running multicore. The PS3 also has special vector processors which, as you say, may be difficult to access through generic code.


"You can't really just re-compile for the SPEs and expect it to work."

I suppose it depends on the compiler. Intel's compiler does a fantastic job converting generic code into SSE vector operations (aka running 2+ iterations of a loop in parallel using SIMD).
Although in this case, the SSE opcodes are designed to interoperate in sync with the rest of the CPU. I'd guess that the cell's vector processors are designed to run asynchronously like CUDA and the overhead of dispatching vector instructions is high.

Reply Parent Score: 1

Alfman Member since:
2011-01-28

I thought the PS3 supported two PPE threads but I can't find that info now. Maybe that is wrong.

http://en.wikipedia.org/wiki/Cell_%28microprocessor%29

Both SPEs and PPEs are programmed in C/C++.

I'm not sure what limitations, if any, there are for running C code on the SPEs. I see no reason they cannot be used to execute non-SIMD aware code.

It also seems plausible in theory that the compiler could convert some serial code to SIMD like ICC does with SSE.

Reply Parent Score: 1