"I wouldn't like to say the word 'compete' at all.." But then of course he wouldn't. Kevin Gee, of Microsoft, gives his talk at Nvidia's Nvision conference in Santa Clara.
"They're not going to be identical, but the key difference we have is that we do target all hardware that's in the market and work closely with all the hardware vendors. So it depends what your application is and whether that's important to you."
So basically if you want your general purpose GPU program to work across the range of hardware vendors graphics chips then Microsoft thinks you should be looking at DirectX 11's new Compute shader rather than Nvidia's CUDA.
"We're already past the teraflop and that's a huge amount of horsepower there that you can take advantage of, not just for rendering but for other things too. We're extending the Direct3D API in order to take advantage of the GPU for other usages. We have added the Compute Shader...so you can start to create more complicated data structures than simply 2D textures."
Massive parallel power
The Compute Shader is being added to the DX11 API to take advantage of the massive parallel power in today's GPUs already being shouted about by the likes of Nvidia. One of the key features is its power of communication across multiple threads to harness this.
Microsoft is going to begin shipping preview SDKs of its new API out to developers, as early as this November, to run on Vista and current DX10 and DX10.1 hardware. Gee was still keen to point out though that it was still being foercasted as being a key part of the upcoming Windows 7.
Thankfully, all the headaches will be for those early-adopting developers rather than the consumer as it is going to be supported by all down-level hardware capable of DX10 or DX10.1 goodness.