I was talking to my buddy who works for one of the major video game developers, who is one of the programmers, about how much more difficult is to program for the PS3's cell versus the 360. Below is part of his response:
Quote:
The hardest part about the Cell layout (as opposed to the multi-core system used on the Xbox) is that the six PS3 SPUs have their own local memory (256k of it). Since they are a different processor with a different instruction set than the main processor (the PPU) that means you have to build separate versions of the code that you want to run on those processors and manually upload them. You also don't have direct access to main memory so you have to do something called a 'DMA' (direct memory access) to get data into the local memory. You also don't have a whole lot of memory so you always have to worry about that too. On top of that, the debugging facilities are very lean and often times it'll just crash without giving you much useful output. And on top of that, certain C++ constructs simply can't be used on the SPUs like you could normally use them due to the fact that you're dealing only with local memory (they implicitly try to access addresses that refer to objects that are in main memory).
It's somewhat complicated to get it going in the first place and then to handle all of the extra parts that you have to manage but the upside is that the SPUs are very simple processors that run fast. So generally you don't both spending much time optimizing your SPU code, you spend your time getting the next bit onto the SPUs in the first place.
... I skipped over a lot...The short answer is that there are some fundamental changes that have to be made and those can be quite difficult, but the processors themselves are simple and fast so it's quite rewarding once you've finally gotten it working.
|
Some of the didn't apply to the PS3, but about game engines and some stuff I felt boarder on the releasing confidential info.