top | item 40673942

(no title)

ozarker | 1 year ago

I think I heard the games Valve published for PS3 didn’t really use the cell stuff

discuss

order

monocasa|1 year ago

They absolutely did. The PPEs were far too anemic to run anything like halflife on their own.

Gabe Newell famously sounded off about how useless it was and wouldn't transfer to any other hardware, but he ended up being wrong. The architectural model forced on you by the SPEs is the model that the industry (not just games but any compute intensive work) has embraced for the heavy multicore but coherent system world.

Rather than the "thread per vague activity" model, we've embraced a one thread per core with a work stealing scheduler walking a DAG of chunked compute tasks.

For a modern view of this, this is exactly how Rust's rayon library works.

The whole thing reminds me of a lot of the complaints about the N64, a lot of which ended up being the fact that DRAM was no longer a single cycle away like it was for the SNES. Yes cache conscious code is more difficult to write, but that memory hierarchy architecture was more a harbinger of the new world rather than a one off weirdness of a single console.

daemin|1 year ago

Some games are built the way you've described with job threads and queues, but regrettably most are built with a main thread, a render thread, and sometimes use other threads for some compute.

deergomoo|1 year ago

> The PPEs were far too anemic to run anything like halflife on their own

To be fair the PS3 port of the Orange Box runs like absolute crap in many instances. Although I believe it was developed by EA, not Valve.

jamesfinlayson|1 year ago

> I think I heard the games Valve published for PS3 didn’t really use the cell stuff

Maybe - the Orange Box at least was outsourced to EA and the performance was reportedly not great. I think Portal 2 was done in-house though and I don't remember anyone complaining about it.

MBCook|1 year ago

At lot of early games were something like that. They’d mostly ignore it or maybe use one SPU or shove tasks on them that really didn’t take advantage of their power at all. Just leaving a lot of performance untouched.