In the course of writing my recent article on the current and future state of GP-GPU computing, I spoke to both Nvidia and ATI about what they have on the table now and what's coming up.
The article covers a lot of ground, but a several things are clear. One, Nvidia's CUDA environment certainly seems to have been adopted more widely in the academic community and high performance computing (HPC) markets. Two, Nvidia is shipping (with a beta driver) physics acceleration on the GPU today, though of course it's for a physics middleware (PhysX) they now own. Third, neither Nvidia nor ATI really have a wealth of GPU-accelerated applications for the consumer space coming in the near term, though we'll see a handful of apps in the video transcoding and image manipulation areas.
Many have thought that CUDA is proprietary, and will only ever work on Nvidia's GPUs. This is not entirely true.
Though it has been submitted to no outside standards body, it is in fact completely free to download the specs and write CUDA apps, and even completely free to write a CUDA driver to allow your company's hardware (CPU, GPU, whatever) to run apps written in the CUDA environment.
Nvidia "owns" and controls the future of CUDA, so it's not open in the "open source" definition, but it's certainly free. Nvidia tells us it would be thrilled for ATI to develop a CUDA driver for their GPUs.
But what about PhysX? Nvidia claims they would be happy for ATI to adopt PhysX support on Radeons. To do so would require ATI to build a CUDA driver, with the benefit that of course other CUDA apps would run on Radeons as well. ATI would also be required to license PhysX in order to hardware accelerate it, of course, but Nvidia maintains that the licensing terms are extremely reasonable—it would work out to less than pennies per GPU shipped.
I spoke with Roy Taylor, Nvidia's VP of Content Business Development, and he says his phone hasn't even rung to discuss the issue. "If Richard Huddy wants to call me up, that's a call I'd love to take," he said.
So what is AMD/ATI's take on all this? I spoke with Senior PR manager Rob Keosheyan at AMD, and he had plenty to say about the situation. Open industry standards are extremely important to AMD as a company, and they feel that GP-GPU work should be no different. It's working hard only on its own StreamSDK and Brook+, but with the Kronos group on OpenCL, where it sees the real future.
If open standards are so important, why partner with Havok for physics work? That technology is far from open; it's owned by Intel, the other chief competitor of AMD/ATI. Of course, there are no truly open physics middleware solutions on the market with any traction, so that point might be kind of moot.
Keosheyan says, "We chose Havok for a couple of reasons. One, we feel Havok's technology is superior. Two, they have demonstrated that they'll be very open and collaborative with us, working together with us to provide great solutions. It really is a case of a company acting very indepently from their parent company. Three, today on PCs physics almost always runs on the CPU, and we need to make sure that's an optimal solution first." Nvidia, he says, has not shown that they would be an open and truly collaborative partner when it comes to PhsyX. The same goes for CUDA, for that matter.
Though he admits and agrees that they haven't called up Nvidia on the phone to talk about supporting PhysX and CUDA, he says there are lots of opportunities for the companies to interact in this industry and Nvidia hasn't exactly been very welcoming.
To sum up, Keosheyan assures us that he's very much aware that the GP-GPU market is moving fast, and he thinks that's great. AMD/ATI is moving fast, too. He knows that gamers want GPU physics and GP-GPU apps, but "we're devoted to doing it the right way, not just the fast way."
So it sounds like support for CUDA or PhysX on ATI graphics cards just isn't going to happen unless Nvidia picks up the phone first and offers an olive branch, or there is an overwhelming demand from ATI's customers.