5 ms·
I got a PhD dissertation out of how difficult it was to use the Cell processor: "Shared Memory Abstractions for Heterogeneous Multicore Processors", http://www.
by scott_s 11y ago
I got a PhD dissertation out of how difficult it was to use the Cell processor: "Shared Memory Abstractions for Heterogeneous Multicore Processors", http://www.scott-a-s.com/files/scott_dissertation.pdf http://www.scott-a-s.com/files/scott_dissertation.pdf. Code for the project here: https://github.com/scotts/cellgen/ https://github.com/scotts/cellgen/
Cell made a big splash in the high-performance computing community because it gave software the kind of fine-grained control that people with a detailed knowledge of processor architecture and their own algorithms could exploit. But the difficulty with how that kind of control was exposed meant that it was kind of all or nothing: you either optimized your code to use the SPEs correctly and efficiently, or you didn't use the SPEs at all.
I had the opportunity to talk with one of the main processor architects a while back, and I asked why they did not include any hardware-level caching for the SPEs at all - which I think would have allowed people to get that kind of incremental performance improvement. His answer was that they wanted all of the chips real estate and transistors towards the fine-grained control approach. Fair enough, but I think it would have been a lot more usable otherwise.
I think that Roadrunner (https://en.wikipedia.org/wiki/IBM_Roadrunner https://en.wikipedia.org/wiki/IBM_Roadrunner) was the only major deployment of the Cell processor, outside of the PlayStation 3. I always wanted to talk to videogame developers who programmed the PS3 to ask them what techniques and patterns they used for the Cell. I suspect that for some games, they ended up running much of the main game logic on the PPE, didn't bother using the SPEs, and use the GPU for all acceleration.
Disclaimer: I actually work for IBM Research now, but not on anything related to Cell.
- mangecoeur 11y agoOn the flip side, some games like the Uncharted series (plus Last of Us) managed to squeeze a really impressive amount of performance out of the thing... which i guess lines up with the 'all or nothing' issue.
- bri3d 11y agoThere's a bit of public information about PS3 game development that's trickled out over the years. A couple of game developers have released slides about how they used SPU, for example in Killzone 2: http://twvideo01.ubm-us.net/o1/vault/gdc09/slides/GDC2009-vdLeeuw-KZ2SPUsCaseStudy.pdf http://twvideo01.ubm-us.net/o1/vault/gdc09/slides/GDC2009-vd... . I think a lot of PS3 games used middleware to leverage the SPEs rather than writing the code themselves. The PS3 SDK shipped with an SPE task scheduler called SPURS and a set of libraries called "Edge" that offloaded a lot of common tasks onto SPEs. Probably the biggest Edge component was Edge Animation / Edge Geometry, which basically re-implemented a mesh skinning / geometry pipeline on SPEs instead of the RSX: http://www.jonolick.com/uploads/7/9/2/1/7921194/gdc_edge_07_final.pdf http://www.jonolick.com/uploads/7/9/2/1/7921194/gdc_edge_07_...
- angersock 11y agoInsomniac R&D has a great handful of presentations on the crackheadedness of programming the Cell. One of the most annoying things that we ran into was that it was basically impossible to buy a system to learn Cell programming on--you either had to somehow root a PS3 (which still didn't let you get all cores), or you had to buy something from Mercury Computer Systems (I think it was?) that was super expensive. It was a niche embedded processor, and hobbled because they didn't make it easier to develop for. :(
- scott_s 11y agoMy lab at Virginia Tech had a cluster of 24 PS3s. The PS3 rack burned like a thousand suns.
- zurn 11y agoThis was before launch I guess? The consumer PS3 did support Linux in the early days, Sony still has a page about it: https://www.playstation.com/ps3-openplatform/index.html https://www.playstation.com/ps3-openplatform/index.html Then they decided to put a stop to it and just removed it in a software update... I heard speculation that it was about getting some preferential tax/customs treatment for it because it could pass for a "computer" then. WP article: https://en.wikipedia.org/wiki/OtherOS https://en.wikipedia.org/wiki/OtherOS
- trsohmers 11y agoThe main advantages of scratchpads (the name for purely software managed memories like the Cell SPEs had) is not only area efficiency, but power efficiency... In the case of the processor I am designing utilizing scratchpads, we can have twice the size scratchpad that is using one fifth of the power compared to if we used a traditional single port L1 cache. Thankfully, we have spent most of our time and energy in developing out our toolchain in order to actually make full use of the scratchpads without having the programmer needing to manually manage their programs memory.