11 ms·
The PS3 Licked the Many Cookie
- rokkamokka 2y ago> I used to think that PS3 set back Many-Core for decades, now I wonder if it simply killed it forever. Did general purpose CPUs not kind of subsume this role? Modern CPUs have 16 cores, and server oriented ones can have many, many more than that
- sergers 2y agoi was thinking similar lines. maybe i dont full understand "many-core", but the definition the article implies aligns with what i think of latest qualcomm snapdragon mobile processor for example with cores at different frequencies/other differences. also i dont understand why ps3 is considered a failure, when did it fail? in NA xbox360 was more popular (i would say because xbox live) but ps3 was not far behind (i owned a ps3 at launch and didnt get a xbox360 till years later). from a lifetime sales, shows more ps3s shipped globally than xbox.
- masklinn 2y ago> also i dont understand why ps3 is considered a failure, when did it fail? > The PS3 failed developers It failed as an ISA (or collection thereof), and in developer mindshare.
- dcow 2y agoI would argue that the failure extended to the user-perceptible performance deficit vs the XB360 despite arguably more capable hardware. Released games didn't perform better on the PS3 even if they technically could.
- masklinn 2y agoThat's part of the failure in developer mindshare: leveraging SMT for games in 2005 was difficult enough, heterogeneous multi-ISA hardware, a ring bus, and the peculiarities of the SPEs made the PS3 not really a consideration. Things might have been different if sony had provided ready-made more or less plug and play SPE applications you could use with just a little tuning for your circumstance (e.g. a physics engine or something) but as far as I know that wasn't the case. I've never heard Sony being praised for its SDKs, while the 360 had straight up directx (with more hardware access).
- MBCook 2y agoThe incredibly high price of the PS3 at launch cost it a lot of sales, and it took forever to come down. Both of those are direct results of the hardware cost of the Cell and BluRay drive. Early on the Xbox also did a better job with game ports. People had very little experience using multicore processors and the cell was even worse. So often the PlayStation three would have a lower resolution or worse frame rate or other problems like that. Xbox Live is also an excellent point. That really helped Microsoft a lot. All of that meant Microsoft got an early lead and the PlayStation three didn’t do anywhere near as well as someone might suspect from a follow up to the PlayStation 2. As time went on, the benefits of the Blu-ray drive started to factor in some. Every PlayStation had a hard drive, which wasn’t true of the 360. The red ring of death made a lot of customers mad and scared others off from the Xbox. And as Sony released better libraries and third parties just got a better handle on things they started to be able to do a better job on their PS3 versions to where it started to match or exceed the Xbox depending on the game. By the end I think the PlayStation won in North American sales but it was way way closer than it should have been coming off the knockout success of the PS2.
- mattnewport 2y agoBig little cores like on mobile or some Intel processors are really not the same thing. The little cores have the same instruction set and address the same memory as the big cores and are pretty transparent to devs apart from some different performance characteristics. The SPEs were a different instruction set with a different compiler tool chain running separate binaries. You didn't have access to an OS or much of a standard library, you only had 256K of memory shared between code and data. You had to set up DMA transfers to access data from main memory. There was no concept of memory protection so you could easily stomp over code with a write to a bad pointer (addressing wrapped so any pointer value including 0 was valid to write to). Most systems would have to be more or less completely rewritten to take advantage of them.
- bitwarrior 2y ago> The PS3 failed developers because it was an excessively heterogenous computer Which links to the Wiki: > These systems gain performance or energy efficiency not just by adding the same type of processors, but by adding dissimilar coprocessors Modern CPUs have many similar cores, not dissimilar cores.
- rokkamokka 2y agoAh, my bad, I didn't understand the definition of many-core
- kmeisthax 2y agoMobile CPUs embraced this hardcore; but the problem is that most of those cores don't have the programmer interfaces exposed. The most dissimilarity you get on mobile is big.LITTLE; you might occasionally get scheduled on a weaker core with better power consumption. But this is designed to be software-transparent. In contrast, the device vendor can stuff their chips full of really tiny cores designed to run exactly one program all the time. For example, Find My's offline finding functionality runs off a coprocessor so tiny it can basically stay on forever. But nobody outside Apple gets to touch those cores. You can't ship an app that uses those cores to run a different (cross-platform) item-finding network; even on Android they're doing all the background stuff on the application processor.
- MBCook 2y agoAI accelerators are a new popular addition. Media encoder/decoder blocks have been around for a while. Crypto accelerator blocks.
- dkersten 2y agoSome intel processors have P/E core splits. So do some apple processors and mobile processors. Our normal desktop processors have double the cells cores. Workstation and servers have 64 or more cores. Many core is alive and well.
- chadhutchins10 2y agoThe PS3 failed?
- WUMBOWUMBO 2y agothat's what I'm saying
- vondur 2y agoYeah, looks like they shipped ~87 million of them, a bit more than the Xbox 360.
- tekla 2y agoThe article didn't say that. > The PS3 failed developers because it was an excessively heterogenous computer Most here are probably too young to realize the PS3 was supposed to be a flagship consumer device to show off the Cell processor and Sony was pushing hard for the Cell arch to be everywhere, media devices, general purpose computers, next gen supercomputers It died hard when people realized how difficult it was to program for, and I dont think anything else other than the PS3 ever bothered seriously trying again with that arch.
- Suppafly 2y ago>The article didn't say that. Yes it did, fairly near the top. >>It is important to understand why the PS3 failed. This article is a bunch of nonsense.
- tekla 2y agoTo save time I'm going to just link the other comment thread because its boring arguing against bad reading comprehension https://news.ycombinator.com/item?id=43656279#43656640 https://news.ycombinator.com/item?id=43656279#43656640
- trelane 2y agoDunno why you are getting downvoted. You're completely correct. It is literally the third line on the page, including the title! That sentence is, to quote TFA, > It is important to understand why the PS3 failed.
- m000 2y ago> It is important to understand why the PS3 failed That's a weird assertion for a console that sold 87M units, ranks #8 in the all-time top-selling consoles list, and marginally outsold Xbox360 which is compared against in TFA. See: https://en.wikipedia.org/wiki/List_of_best-selling_game_consoles https://en.wikipedia.org/wiki/List_of_best-selling_game_cons...
- JohnMakin 2y agoIt’s clear from one of the opening statements that the author considered it a failure for developers, not in the absolute sense you are pointing to. It’s not that far into the article. > The PS3 failed developers because it was an excessively heterogenous computer; and low level heterogeneous compute resists composability.
- dgfitz 2y agoIt just isn’t a solid thesis at the beginning of the article, and in todays attention-span media consumption narrative, it… serves its purpose?
- dcow 2y agoThe PS3 was a technical failure. It was inferior to its siblings despite having more capable hardware. This was super obvious any time you’d play a game available for both Xbox and PS3. The PS3 version was a game developed for Xbox then auto-ported to run on PS3’s unfamiliar hardware. It’s an entirely fair hypothesis. Maybe in 15 years someone crazy enough will be delving in and building games that fully utilize every last aspect of the hardware. Like this person does on the N64: https://youtube.com/@kazen64?si=bOSdww58RNlpKCNp https://youtube.com/@kazen64?si=bOSdww58RNlpKCNp
- nottorp 2y ago> The PS3 version was a game developed for Xbox then auto-ported to run on PS3’s unfamiliar hardware. Yes, especially exclusives like Uncharted, Demon Souls, Heavy Rain, Ni No Kuni, Metal Gear solid 4. They were definitely developed for Xbox, that version was kept secret and only the PS3 version was published due to Sony bribes. I'd like to thank the above devs for going through the pain of developing those titles that entertained me back then...
- accrual 2y ago> 256 MB was dedicated to graphics and only had REDACTED Mb/s access from the CPU I wonder what the REDACTED piece means here, aren't the PS3 hardware specifications pretty open? Per Copetti, the RSX memory had a theoretical bandwidth of 20.8 GB/s, though that doesn't indicate how fast the CPU can access it.
- monocasa 2y agoI don't know why it's redacted here; maybe he couldn't find a public source. It is a mind bendingly tiny 16MB/s bandwidth to perform CPU reads from RSX memory.
- OptionOfT 2y agoJust to make sure, I read that the CPU reads from the RSX at 16 megabytes / sec?
- maximilianburke 2y agoI can't recall exactly but that sounds right. It was exceptionally slow.
- MBCook 2y agoThat’s why getting DMA right mattered so much.
- maximilianburke 2y agoI'm not quite sure what this means? DMA is the only mechanism that the SPUs had to access memory outside of their local store; it wasn't a matter of getting it right or wrong. Reading RSX memory by SPU DMA wasn't any faster than reading it from the PPU.
- MBCook 2y agoI’m sorry I thought you meant the CPU not the GPU. I didn’t realize DMA didn’t help with GPU memory.
- pavlov 2y agoI remember trying to learn Cell programming in 2006 using IBM’s own SDK (possibly different and less polished compared to whatever Sony shipped to licensed PS3 developers). I had already spent a few years writing fragment shaders, OpenGL, and CPU vector extension code for 2D graphics acceleration, so I thought I’d have a pretty good handle on how to approach this new model of parallel programming. But trying to do anything with the SDK was just a pain. There were separate incompatible gcc toolchains for the different cores, separate vector extensions, a myriad of programming models with no clear guidance on anything… And the non-gcc tools were some hideous pile of Tcl/TK GUI scripts with a hundred buttons on the screen. It really made me appreciate how good I’d had it with Xcode and Visual Studio. I gave up on Cell after a day.
- ryandrake 2y agoYea, this was the horrible world of embedded programming and working with SoCs before the iPhone SDK finally raised the bar. BSPs composed of barely-working cobbled-together gcc toolchains, jurassic-aged kernels, opaque blobs for flashing the devices, incomplete or nonworking boot loaders, entirely different glue scripts for every tiny chip rev, incomplete documentation. And if you wanted to build your own toolchain? LOL, good luck because every gnu tool needed to be patched in order to work. It was a total mess. You could tell these companies just made chips and reference systems, and only grudgingly provided a way to develop on them. iPhone and Xcode was such breath of fresh air. It pulled me out of embedded and I never went back.
- FirmwareBurner 2y ago>Yea, this was the horrible world of embedded programming and working with SoCs before the iPhone SDK finally raised the bar. iPhone SDk only raised the bar for the mobile industry, the rest of embedded world is still stuck in the stone age.
- matheusmoreira 2y agoModern ARM microcontrollers apparently use standard GNU toolchains shipped by my Linux distribution. Developing software for a Cortex M0+ was a really good experience. Lack of a complete device emulator made it hard to debug at times but I dealt with it.
- christkv 2y agoSony was funny in this way. PS1: Easy to develop for and max out. PS2: Hard to develop for and hard to max out. PS3: Even harder than PS2. PS4: Back to easier. PS5: Just more PS4. PS5 PRO: Just more PS5.
- AdmiralAsshat 2y agoIt certainly doesn't seem to have impacted adoption, though. For whatever reasons developers seem loath to talk about how difficult developing for a given console architecture is until the console is dead and buried. I guess the assumption is that the console vendor might retaliate, or the fans might say, "Well all of these other companies are somehow doing it, so you guys must just suck at your jobs." An early interview with Shinji Mikami is one of the only ones I can recall about a high-profile being frank about having difficulties developing for the console[0]: > IGNinsider: Ahh, smart politics. How do you feel about working on the PlayStation 2? Have you found any strengths in the system by working on Devil May Cry that you hadn't found before? > > Mikami: If the programmer is really good, then you can achieve really high quality, but if the programmer isn't that great then it is really hard to work with. We lost three programmers during Devil May Cry because they couldn't keep up. [0] https://www.ign.com/articles/2001/05/31/interview-with-shinji-mikami-ps2 https://www.ign.com/articles/2001/05/31/interview-with-shinj...
- christkv 2y agoI think it's funny because the ease of development was one of the reason why the original Playstation had such a wide library of titles. The Saturn and the N64 was hard to get good performance out off due to architectural decisions.
- setr 2y agothe ps3 development difficulty was definitely complained about during its usage cycle; the standard ps3 vs xbox360 argument was that the ps3 had far superior hardware, and xbox fans would always counter with no one could make use of that hardware
- maximilianburke 2y ago
- b8 2y agoYeah the xb360 had better graphics and I couldn't play on a PS3 because of the bad quality. PS3 graphics hurt my eyes too.
- dehrmann 2y agoThe Xbox worked as a proof-of-concept to show that you could build a console with commodity hardware. The Xbox 360 doubled down on this while the PS3 tried to do clever things with an innovative architecture. Between the two, it was clear commodity hardware was the path forward.
- fragmede 2y agoin the beginning general purpose computers weren't capable of running graphics like the consoles could. That took dedicated hardware that only the early Atari/NES/Genesis had. That's not to say that the Apple or IBM clones didn't have games, they did, but it just wasn't the same. The differentiation was their hardware, enabling games that couldn't be run on early PCs. Otherwise why buy a console? So the thinking was a unique architecture is what a console's raison d’être was. Of course now we know better, as the latest generation of consoles shows, butthat's where the thinking for the PS3's cell architecture came from.
- treyd 2y agoThis is the thing that people don't realize about middle-era consoles. It was the shift where commodity PC hardware was competing well with console hardware. Today in 2025 the only possible advantage is maybe in a specific price category where the volume discount is enough to justify it. In general, consoles just don't make technological sense.
- MBCook 2y agoPrice, UX, and fixed hardware that can be heavily optimized for.
- gmueckl 2y agoThis leaves out an important step. When 3D graphics acceleration entered the broader consumer/desktop computing market, it was also a successor to the kind of 2D graphics acceleration that consoles had and previous generations of desktop computers generally didn't. So I believe that it's fair to say that specialized console hardware was replaced by general purpose computing hardware because the general purpose hardware had morphed to include a superset of console hardware capabilities.
- nemothekid 2y agoI feel like calling the PS3 a licked cookie is unfair. >The original design was approximately 4 Cell processors with high frequencies. Perhaps massaging this design would have led to very homogenous high performance Many-Core architecture. At more than 1 TFlop of general purpose compute it would have been a beast and not a gnarly beast but a sleek smooth uniform tiger. That's great and all, but the PS3 cost (famously) FIVE HUNDRED AND NINETY NINE US DOLLARS (roughly $900 dollars in todays money). However one thing I noticed is that multi-core programming in 2006 was absolutely anemic. Granted I was too young to actually understand what was happening at the time, but a couple years ago I went in on a deep dive on the Cell and one thing I came away with was proper parallelism was in its infancy for mainstream development. Forget the Cell, it took a long time for game developers to take advantage of quad core PCs. Developers were afraid of threads, didn't understand memory barriers and were cautious of mutexes. Gaben has a famous clip trashing the PS3 because most of valve's developers at the time did not have the experience programming multicore systems. It was common to just have objective-based threads (ex, Render thread, AI thread, Physics thread), and pretend coordination didn't exist for large parts of the code. This mostly worked up until you had more cores than threads. This stands in stark contrast to most parallel thread today that does userspace scheduling with tasks or threads. Even Naughty Dog eventually figured out late in the cycle to best take advantage of SPEs using fibers with a system that looks like modern async reactors (like node or tokio) if you squint really, really hard. The Cell was just really really early. Looking back I don't think the Cell was half-baked. It was the best that could be done at the time. Even if the hardware was fully baked, there was still 5-10 years of software engineering research before most people had the tooling to tae advantage of parallel hardware.
- wk_end 2y ago> Even Naughty Dog eventually figured out late in the cycle to best take advantage of SPEs using fibers with a system that looks like modern async reactors (like node or tokio) if you squint really, really hard. Well, if anyone was going to figure it out, it would've been Naughty Dog, they've got a long history of being absolute wizards at taming Sony's hardware. Do you have any links to further details about ND's achievements on the PS3? I found a talk that looked like it might cover the issue, but it seems like it's about the PS4. https://gdcvault.com/play/1022186/Parallelizing-the-Naughty-Dog-Engine https://gdcvault.com/play/1022186/Parallelizing-the-Naughty-...
- NitroPython 2y ago"I want a good parallel computer" is a good side article.
- haunter 2y agoI still vividly remember when they announced the $599 price tag, inflation adjusted that would be almost $1,000 today! It was crazy
- 999900000999 2y agoIt was still one of the cheaper Blueray players at release. A lot of people brought them just for that, same thing with DVDs and PS2s.
- corysama 2y agoWith an SPU's 256K local memory and DMA, the ideal way to use the SPU was to split the local memory into 6 sections: code, local variables, DMA in, input, output, DMA out. That way you could have async DMA in parallel in both directions while you transform your inputs to your outputs. That meant your working space was even smaller... Async DMA is important because the latency of a DMA operation is 500 cycles! But, then you remember that the latency of the CPU missing cache is also 500 cycles... And, gameplay code misses cache like it was a childhood pet. So, in theory you just need to relax and get it working any way possible and it will still be a huge win. Some people even implemented pointer wrappers with software-managed caches. 500 cycles sounds like a lot. But, remember that the PS2 ran at 300MHz (and had a 50 cycle mem latency) while the PS3 and 360 both ran at 3.2Ghz (and both had a mem latency of 500 cycles). Both systems pushed the clock rate much higher than PCs at the time. But, to do so, "niceties" like out-of-order execution were sacrificed. A fixed ping-pong hyperthreading should be good enough to cover up half of the stall latency, right? Unfortunately, for most games the SPUs ended up needing to be devoted full time to making up for the weakness of the GPU (pretty much a GeForce 7600 GT). Full screen post processing was an obvious target. But, also the vertex shaders of the GPU needed a lot of CPU work to set them up. Moving that work to the SPUs freed up a lot of time for the gameplay code.
- bri3d 2y agoI think one thing that the linked article (which I think is great and I generally agree with!) misses is that libraries and abstraction can patch over the lack of composability created by heterogeneous systems. We see it everywhere - AI/ML libraries abstracting over some combination of TPU, vector processing, and GPU cores being one obvious modern place. This happened on the PS3, too, later in its life: Sony released PlayStation Edge and middleware/engine vendors increasingly learned how to use SPU to patch over RSX being slow. At this point developers stopped needing to care so much about the composability issues introduced by heterogeneous computing, since they could use the SPUs as another function processor to offload, for example, geometry processing, without caring about the implementation details so much.
- 01HNNWZ0MV43FF 2y agoI'm surprised the SPUs were used for post-processing, cause whenever I try to do software rendering I get bottlenecked on fill rate quickly. I believe you, because I've seen it attested in many places, but I'm surprised by it.
- thadt 2y agoNot a game developer, but I wrote a bunch of code specifically for the CELL processor for grad school at the time (and tested it on my PS3 at home - marking the first and last time I was able to convince my wife I needed a video game system "for real work"). It was fun to play with, but I can empathize with the time cost aspect: scheduling and optimizing DMA and SPE compute tasks just took a good bit of platform specific work. I suspect a major point killing off special architectures like the PS3 was the desire of game companies to port their games to other platforms such as the PC. Porting to/from the PS3 would be rather painful if you were trying to fully leverage the power and programming model of the CELL CPU.
- darknavi 2y agoI suspect that as well. It's not that the architecture was bad, it's that it's not easily compatible to other endpoints developers wanted to release on resulting in prohibitively high costs of doing a "full" port.
- wmf 2y agoNah, it was bad. It took far too much effort even for PS3-exclusive games.
- MBCook 2y agoWell that wasn’t supposed to be the architecture either. The whole thing was supposed to be vastly faster and bigger with way more SPUs. Maybe that would’ve been terrible, maybe not. Kinda sounds like yes in hindsight. But the SPU‘s were originally supposed to do the GPU work too I think. So there’s a reason the GPU doesn’t fit in terribly well, it had to be tacked on at the end so the PS3 had any chance at all. And it couldn’t be well designed/optimized for the rest of the system because they were out of time.
- petermcneeley 2y agoBingo!
- Pet_Ant 2y agoI hope that as RISC-V gains in support, there is a chance to experiment with a many-core version of it. Something like a hundred QERV cores on a chip. The lack of patents is a key enabler, and support for the ISA on more vanilla chips is the other enabler. This could happen. https://github.com/olofk/qerv https://github.com/olofk/qerv The only pratical many-core I know of was the SPARC T-1000 series https://en.wikipedia.org/wiki/SPARC_T_series https://en.wikipedia.org/wiki/SPARC_T_series
- dundarious 2y ago> Most code and algorithms cannot be trivially ported to the SPE. Having never worked on SPE coding, but having heard lots about interesting aspects, like manual cache management, I was very interested to read more. > C++ virtual functions and methods will not work out of the box. C++ encourages dynamic allocation of objects but these can point to anywhere in main memory. You would need to map pointer addresses from PPE to SPE to even attempt running a normal c++ program on the SPE. Ah. These are schoolboy errors in games programming (comparing even with the previous 2 generations of the same system). I think the entire industry shifted away from teaching/learning/knowing/implementing those practices de rigeur, so I'm absolutely not criticising the OP -- I was taught the same way around this time. But my reading of the article is now that it highlights a then-building and now-ubiquitous software industry failing, almost as much as a hardware issue (the PS3 did have issues, even if you were allocating in a structured way and not trying to run virtual functions on SPEs).
- raphlinus 2y agoThanks so much, Peter, for writing this up. I think it adds a lot to the record about what exactly happened with the Cell. And, as with Larrabee, I have to wonder, what would an alternative universe look like if Sony had executed well? Or is the idea so ill-fated that no Cell-like many-core design could ever succeed?
- bdhcuidbebe 2y ago> It is important to understand why the PS3 failed. But did it fail? PS3 was a very successful 7th gen console, only beaten by the Wii in units sold, but had a longer shelf life, more titles than any other 7th gen console.