I always wondered about the legacy of the Cell architecture, which seems to have gone nowhere. I've never seen a developer praise it, and you can find devs who love just about every silly weird computer thing. Like, surely someone out there (emu devs?) have respect for what Cell was doing, right?
I've never understood it. Multicore processors already existed (the X360 had a triple-core processor, oddly) so I'm not clear what going back to multiple CPUs accomplished. Cell cores could act as FPUs also, right? PS3 didn't have dedicated GPU, right?
Such a strange little system, I'm still amazed it ever existed. Especially the OG ones that had PS2 chips in them for backwards compatability! Ah, I miss my old PS3.
It was very experimental, that’s really the reason Sony went with it and it was at the genesis of multi threaded processing, so the jury was still out on which way things would go.
Your description of it is a little wrong though, it wasn’t multiple CPUs, at least not gore would be traditionally thought. It was a single dual core CPU, with 6 “supporting cores” so not full on CPUs. Kind of like an early stab at octocore processors when dual core was becoming popular and quad core was still being developed.
I remember that the ability to boot Linux was a big deal too and a university racked 8 PS3s together into basically a 64 core super computer. I’m actually sad that didn’t go further, the raw computing power was there, we just didn’t really know what to do with it besides experiment.
Honestly I think someone had a major breakthrough in multi-core single-unit processors shortly after the PS3 launch that killed this. Cell was just a more expensive way to get true multi threaded processing and a couple years later it was cheaper to buy a 32 core processor.
Maybe in a different timeline we’re all running Cell processors in our daily lives.
Ah, that sounded familiar as you described it! Thanks for the correction and context! I'd forgotten how early into multicore we still were. Well that also explains why it doesn't have specific fans then, it's "basically" "just" parallel programming (which people still don't understand!)
Yeah the university running a PS3 cluster was fun news! I recall there being a brief run on the devices as people thought there'd be sudden academic demand for them as supercomputers. I think you could run "folding at home" on them as a screensaver? Which (if I remember right) kind of would make ps3 the biggest research computing cluster around for a while!
PS3 most certainly had a separate GPU - was based on the GeForce 7800GTX. Console GPUs tend to be a little faster than their desktop equivalents, as they share the same memory. Rather than the CPU having to send eg. model updates across a bus to update what the GPU is going to draw in the next frame, it can change the values directly in the GPU memory. And of course, the CPU can read the GPU framebuffer and make tweaks to it - that's incredibly slow on desktop PCs, but console games can do things like tone mapping whenever they like, and it's been a big problem for the RPCS3 developers to make that kind of thing run quickly.
The cell cores are a bit more like the 'tensor' cores that you'd get on an AI CPU than a full-blown CPU core. They can't speak to the RAM directly, just exchange data between themselves - the CPU needs to copy data in and out of them in order to get things in and out, and also to schedule any jobs that must run on them, they can't do it themselves. They're also a lot more limited in what they can do than a main CPU core, but they are very very fast at what they can do.
If you are doing the kind of calculations where you've a small amount of data that needs a lot of repetitive maths done on it, they're ideal. Bitcoin mining or crypto breaking for instance - set them up, let them go, check in on them occasionally. The main CPU acts as an orchestrator, keeping all the cell cores filled up with work to do and processing the end results. But if that's not what you're trying to do, then they're borderline useless, and that's a problem for the PS3, because most of its processing power is tied up in those cores.
Some games have a somewhat predictable workload where offloading makes sense. Got some particle effects - some smoke where you need to do some complicated fluid-and-gravity simulations before copying the end result to the GPU? Maybe your main villain has a very dramatic cape that they like to twirl, and you need to run the simulation on that separately from everything else that you're doing? Problem is, working out what you can and can't offload is a massive pain in the ass; it requires a lot of developer time to optimise, when really you'd want the design team implementing that kind of thing; and slightly newer GPUs are a lot more programmable and can do the simpler versions of that kind of calculation both faster and much more in parallel.
The Cell processor turned out to be an evolutionary dead end. The resources needed to work on it (expensive developer time) just didn't really make sense for a gaming machine. The things that it was better at, are things that it just wasn't quite good enough at - modern GPUs are Bitcoin monsters, far exceeding what the cell can do, and if you're really serious about crypto breaking then you probably have your own ASICs. Lots of identical, fast CPU cores are what developers want to work on - it's much easier to reason about.
I knew a Datacenter that had hundreds of ps3s for rendering fluid simulation and other such things that at the time were absolutely cutting edge tech. I believe F1 and some early 3d pixar stuff was rendered on those farms. But like all things, technology marched on. fpgpas and cuda have taken that space.
Cell definitely was heavily used by specialist/nichr industry though.
I wonder if I can find you some link to explain it better than the rumours I heard from staff that used to work in those datacentres.