Gaming & Culture —

IBM tries to help game devs grok Cell, Sony moves on from semis

Will game developers ever tap Cell's full potential for the PS3? IBM plans to …

I've seen all this before: the new, exotic chip architecture that nobody knows how to program; the claims that the chip will eventually find its way into TV sets and set-top boxes and printers (yeah, they said printers) and all sorts of other places; the lack of decent English-language documentation for developers at the outset; the widespread predictions that the chip would fail, and that it would bring the console down with it.

I'm talking about the PlayStation 2, of course, and about the initial reaction to the then-peculiar architecture of Sony's Emotion Engine and Graphics Synth. None of the doom-and-gloom scenarios turned out to be true, and once developers really got their minds around the PS2 they were able to turn out some great-looking games for the what eventually became the world's best-selling console.

But that was then, and this is now. And more has changed this time around than the number affixed to the end of the "PlayStation" label. The billion-dollar question for Sony is: How much of the PlayStation line's history will repeat itself with the new console?

IBM's line: the average PS3 uses only 10% of its brain

Game developers are now looking to IBM for help programming the new console, with a team from Vivendi Universal's gaming division set to hook up with IBM for a "developer jam session" that will teach the participating developers how to make better use of Cell's resources.

IBM insists that game developers are currently using only a fraction of the PS3's potential horsepower, and the company is certainly correct in that claim. I don't think there can be any doubt that the majority of the Cell's horsepower is going untapped by the current generation of games. I also think it's pretty certain that developers will learn to tap more of this power as time goes on. But what is definitely open for debate is the idea that game developers will at some point learn to take full advantage of the Cell BE.

A paper that I reported on last year from a team out of Lawrence Berkeley National Laboratory dramatically demonstrated just how well Cell can do with data-parallel workloads. By hand-tuning a set of high-performance computing kernels to fit Cell's architecture, the LBNL team was able to get remarkable speedups vs. current computers on a handful of specific problems. Here's how I explained the team's achievement:

The authors... picked a programming model based on data parallelism. What this means is that they had the eight SPEs doing identical work on different parts of a highly parallel dataset. When you've got all eight SPEs marching in lock-step through a large, parallel dataset, then you can really put all of the hardware on that chip to work in a dramatic way, as the paper indeed shows.

As I mentioned elsewhere in that report, the programming model that IBM and Sony are pushing for game developers is more task-parallel than it is data-parallel. Different SPEs are supposed to run different parts of the game, with some of them handling physics, others AI, others parts of the rendering pipeline, etc. But the Cell BE's basic design, with its software-controlled caches and its lack of out-of-order execution in the SPEs, is much less suited to task-level parallelism than it is to the kind of data-level parallelism that the LBNL team took advantage of.

Still, Cell can do plenty of task-level parallelism, even if the SPEs aren't as suited to it as a normal out-of-order core would be, so task-level parallelism is what developers will be stuck with. As for data-level parallelism, games definitely rely it, but the GPU will always handle the vast majority of that type of work.

Tapping the full potential

What this means for gaming on the PS3 is that, no, there will never be a game that truly taps the "full potential" of the Cell BE, because that full potential can only be tapped by certain types of data-parallel HPC workloads. The data-parallel portion of a game will always be better suited to the PS3's NVIDIA-designed GPU.

The further implication for Sony from all of this is that they footed part of the bill to design and fabricate a fantastic HPC coprocessor chip for IBM that will work great alongside more general-purpose CPUs as part of a cluster. IBM and its HPC customers, like Mercury Systems, are all going to be pretty happy with Cell in the long run, especially after a die shrink, a speed bump, and maybe some minor core revisions. Game developers, on the other hand, will be left to figure out how to make this HPC math kernel monster do what they want it to do, which is not necessarily what the chip is best at. (To use a dreaded car analogy, it's sort of like finding that you can cram a ton of groceries and many little soccer players into a Toyota FJ Cruiser.)

This isn't to say that there isn't plenty of developer headroom left in the task-level parallelism department, and that we won't see some jaw-dropping games on the PS3. No, those jaw-droppers still don't represent Cell at the top of its game, and that Sony will never get its money's worth out of Cell unless it somehow contrives to break into the HPC market.

I think Sony has figured this out, which is why they're scaling back their involvement in semiconductors. Sony had originally planned to sell lots of consoles and lots of Sony-made Cell chips in everything from TVs to set-top boxes (sound familiar?). Now it's clear that they've got an uphill slog just selling Cell in the PS3, and that there are other, cheaper chips out there that are much better suited to TVs and set-top boxes than Cell. Better to outsource the production of Cell, and let others take risks with building and maintaining very expensive fabs.

To return briefly to the topic of the developer jam sessions, there are two questions that game developers will probably bring with them to the event:

  1. How much task-level parallelism can we wring out of this game?
  2. Once we've made game as parallel as possible, how can we get the best per-task performance out of the SPEs?

IBM can help a lot more with the second question than it can with the first, although the first one is by far the hardest. It's also the case that the Xbox 360 won't support the same degree of task-level parallelism that Cell will, so developers who design their games from the ground up for the PS3 will have their work cut out for them when porting to the more popular Xbox 360. It remains to be seen if the amount of work that it will take to really get the extra mileage out of Cell will pay off with such a relatively small installed base of PS3s.

You must to comment.

Channel Ars Technica