Hacker News new | ask | show | jobs
by nylonstrung 16 days ago
TBH the PS3 probably should have been more similar to PC, the people I've talked to who have worked for it said the architecture was a nightmare to work with.

There's really no reason console games of that era needed, or even could benefit from 6 cores

3 comments

> There's really no reason console games of that era needed, or even could benefit from 6 cores

First: One problem of the PS3 was that in a late stage of its development a (rather weak) GPU was "tacked on" (originally, the Cell was supposed to replace the GPU).

Now for your point:

Just have a look what scientists did on PS3 clusters using the SPUs of the Cell, and considering this imagine what creative things would have been possible for games on the PS3.

The problem was that at this time, game development got much less specific to one platform (in opposite to how it was for basically all the previous game console generations, though I am willing to admit that the original Xbox being very similar to a PC did give a hint concerning the direction the game industry was heading), so you wanted a much more "standardized" (typically meaning: similar to PC) architecture. The Xbox 360 was simply much more similar to PCs, so it was much easier to port engines from one platform to another.

> the people I've talked to who have worked for it said the architecture was a nightmare to work with.

For previous console generations this was less of a problem (basically every console was quirky). It is easy to find statements of developers on the internet how the PS2 was magnitudes more of a nightmare to develop for than the PS3.

So, before, being difficult to develop for a console was much more accepted in consideration of the unique features each console brought to the table. What did change was rather the expectation among developers to be able to easily port engines between platforms.

Everytime this topic comes up I always replay this clip of Gabe Newell ranting about having to write multi-threaded code for the PS3 and chuckle [1]

Was writing code for the PS3 genuinely difficult or was it also a skill issue? The counter-argument I've heard is that multi threaded programming just wasn't as common at the time due to minimal number of cores available on most consumer hardware.

Perhaps the PS3 would have fared better with a different generation of developers.

[1] https://youtu.be/dKYT6NzsUZQ?si=wzf5e5iBP3MEEJEn

I'm sure there's some degree of just not being used to multi-threaded code, but it's also not like today's multi-threading. When we think about utilizing multiple cores today, we're thinking about running normal application code across many identical cores, within one process managed by a multi threaded kernel.

The PS3 wasn't like that. It was a single core machine, with one big CPU core which runs the operating system and your application, and it had a bunch of co-processors. I've never written for such a system, but I'd assume that a somewhat close analogy would be a single core Linux computer with 10 microcontrollers attached. (Though I'd love to hear from someone with more knowledge whether this is a reasonable analogy.)

> I've never written for such a system, but I'd assume that a somewhat close analogy would be a single core Linux computer with 10 microcontrollers attached. (Though I'd love to hear from someone with more knowledge whether this is a reasonable analogy.)

Where this otherwise good analogy basically lacks is that the SPEs of a Cell were really fast (in opposite to microcontrollers), so a better analogy could be: a single core computer that has 7 ultra-fast, identical DSPs attached, of which you can use 6. [1]

---

[1] For the 7 available and 6 usable SPEs, see https://en.wikipedia.org/w/index.php?title=Cell_(processor)&...

The 360 was a multithreaded machine, it had 3 physical cores with hyperthreading (so 6 logical cores).

The PS3 was a completely different beast, it had a single general purpose core (hyperthreaded) with 6 user-accessible vector coprocessors (in-order, non-speculative, with their own ISA, and without shared memory) on a 4-lane ring bus. This was much more complex and fairly alien topology even more so back at the time, and while tooling might have helped bridge the gap Sony’s were… not great, even less so compared to MS which could lean on their windows tooling.

The 360 had 3 cores. The PS3 had a single core with vector coprocessors on a ring bus.

GPGPU is what displaced the Cell SPEs, and you wouldn’t count that as cores. In fact the PS3 originally didn’t include a GPU, the SPEs were supposed to handle it all, so in a way they were approaching the same solution from the opposite direction.