@ All
Basically:
Bottom line: SPUs are like most CPUs (Read NJ5)
Basics are pretty much the same. (Read NJ5)
Good data design decisions and smart code choices see benefits any platform
Good DMA pattern also means cache coherency. Better on every platform
Bad choices may work on some, but not others.
Xbox 360, PC, Wii, DS, PSP, whatever.
Rule 1: The SPU is not a co-processor!
Don't think of SPUs as hiding time “behind” a main PPU loop
Understanding the SPUs
What “clicked” with some Insomniacs about the SPUs:
“Everything is local”
“Think streams of data”
“Forget conventional OOP”
“Everything is a quadword”
“si intrinsics make things clearer”
“Local memory is really, really fast
Designing for the SPUs
The ultimate goal: Get everything on the SPUs.
Leave the PPU for shuffling stuff around.
Complex systems can go on the SPUs
Not just streaming systems
Used for any kind of task
Conclusion
It's not that complicated.
Good data and good design works well on the SPUs (and will work well anywhere)
Sometimes you can get away with bad design and bad data on other platforms
...for now. Bad design will not survive this generation.
Lots of opportunities for optimization.
But you do need to consider some things...
http://www.insomniacgames.com/tech/articles/0208/files/insomniac_spu_programming_gdc08.ppt







