I loved working on the cell. I remember writing my first spu code when the ps3 dev kit was a huge stainless steel box. I later went in to implement predictive physics for racing line optimization for midnight club on the spus. Was a lot of fun. Weird thing was the floating point unit had a different intermediate bit size than the ppu so for deterministic results you had to schedule threads to always be dispatched to ppu or spu deterministically. That was essential for network games where the sim had to run bit for bit the same across players.
oppositelock|1 year ago
That was the trickiest part - getting the data in and out of the thing. You had 6 SPE's available to you, 2 were reserved by the OS, and keeping them all filled was a challenge because it required nearly optimal usage of the DMA engine. Memory access was slow, something over 1000 cycles from issuing the DMA until data started coming in.
Back then, C++ was all the rage and people did their various C++ patterns, but due to the instruction size being so limited, we just hand-wrote some code to run on the SPU's which didn't match the rest of the engine, so it ended up gluing together two dissimilar codebases.
I both miss the cleverness required back then, but also don't miss the complexity. Things are so much simpler now that game consoles are basically PC's with PC-style dev tools. Also, as much as I complain about the PS3, at least it wasn't the PS2.
mackman|1 year ago