Essentially Intel, about the time they were talking about the 10GHz Pentium 4, were focused on clockspeed over everything. They thought single thread of execution was the way to go. And because of that, processor scaling was not increasing linearly with transistors ? it was sort of the square root: if you quadrupled the number of transistors you were only doubling the components of the CPU. The problem they ran into there were thermal issues. They weren?t able to manage heat. They weren?t going to be able to reach 10GHz without doing Freon cooling or something like that.
At the same time the GPU guys were essentially writing CPUs ? there?s no real difference, the GPU is just a CPU with a specific function: it runs graphics code. They were going in this different direction; they weren?t trying to run it at incredibly high clock rates, they just had lots and lots of execution units ? lots of cores, essentially. And Intel, because it could just throw tens of billions of dollars at its processor technology, was able to get a lot further with the single-thread direction than anyone else ? but even they eventually said, 'We have to throw away this single thread of execution model. We have to go to multiple ? we have to make this a software problem'.
Performance and scaling has stopped being a hardware problem and instead it?s been turned into a software problem. That?s bad news for us software guys ? but for hardware it?s good news, because it shifts the value proposition towards software developers. What it also means is clock rates will stay pretty much the same, but the number of execution units you have is going to explode. The good news is that we?re going to spend an era of growing linearly for a while, so transistor budgets will translate directly to improvements.
At that point we said, we understand we have to make these investments in multi-core. We have to worry about not just two cores, but 64 threads; 512 threads ? how are we going to reorganise it? What does that look like? But the more we look at it, the more excited we get. This current era is one of heterogeneous computing: you?ve got this one big chunk of code doing physics and AI, character animation and facial systems talking through this strange interface called DirectX to another chunk of your code which you write to run on GPUs. That?s just going to go away. And either Nvidia or Intel is going to win the battle for whose array of cores is taken up.
So that?s the backdrop behind us making these investments in multicore. Once you?ve made that decision, then adapting it to the 360 is fine, but we wouldn?t have made this investment if it were just to garner those benefits for the 360 ? it?s because of the current and future investments on Intel?s side that we can get really excited about it, because that?s where AI and physics are going to experience the rapid performance increase that we?ve been seeing over the last several years exclusively reserved for 3D graphics. You look at how fast Nvidia and ATI have been increasing graphics performance in the last ten years ? that?s how much faster our physics and AI are going to improve.
Edge: What?s the timescale for this boom?
GN: We?re going to start seeing it now. We?re going to be releasing multicore versions of Counter-Strike and Day of Defeat and Half-Life 2 after we ship The Orange Box. The challenge is going to be going forward. Right now we just have to deal with an order of magnitude of difference between DirectX 9 and DirectX 7 in terms of fill-rate and number of polygons. That?s a set of scaling issues that we?ve managed to adapt to. Soon we will have to answer the question of how do you design a game experience that could go from ten characters on screen to 1,000 characters on the screen. And how do you turn that into something worth purchasing? Is having 100 persons on the screen really ten times as fun as having just ten people on the screen?
In 2008 and 2009 we?re going to do stuff that?s optimised for the new high-end that doesn?t scale down, and use Steam to reach those customers, so we can start to learn what to do with 1,000 smart creatures on the screen at once. Then hopefully we can backfill and do more scaleable experiences.