Threespeech has just posted an interview with Naughty Dog designer Richard Lemarchand, in which he talks up Sony's new low-level programming tools, aimed at encouraging coders to employ the machine's SPUs, or Synergistic Processing Units. This array of mini-RISC processors can be utilised to carry out simultaneous number-crunching tasks - the idea is to provide a more efficient computing architecture, but until recently most developers weren't touching them. Lemarchand reckons Sony has come up with the answer:
There's a set of tools called Edge that were developed on the Naughty Dog premises, actually, by a group of very, very senior games programmers, some from Naughty Dog and some from elsewhere. I think it's tremendously visionary of Sony to make these tools, which are largely low-level libraries.
It's code that runs on SPUs, and it's to do with things like animation compression, generalised compression and rendering optimisations. These guys are really old-school programmers: guys who are always looking to shave another cycle off an operation. And part of the skill of developing for the PlayStation 3 is getting the GPU to farm jobs out to the six SPUs - seeing which SPUs are idling and can take up some of the slack in a frame-to-frame kind of way.
That's why we think we're probably only using 30 or 40 per cent of the power of the PS3 right now, and there's this great, untapped potential. All third-party developers can get the Edge libraries for free and are going to be able to use them in their own ways, to get more and more and more out of the PS3 over the years.
It's interesting that Lemarchand talks about distributing tasks depending on which SPUs are idle. There are two ways to employ the SPU array - lobbing out jobs to whichever unit is free (which is what Lemarchand suggests), or attributing specific tasks to specific SPUs; for example, put one aside for AI, one for physics, another for character animations. It's the latter that most developers seem to have gone for, despite the possibility that it's the least efficient method. It's ironic that, if studios really are only getting at a third of the machine's power, it's the parallel processing array designed to speed up calculations that's holding them back.