We spent some time on the phone with NVIDIA today in the wake of last night's official release of the OpenCL GPU-processing spec, and we learned some interesting things. NVIDIA thinks OpenCL is going to bring a lot more attention to general-purpose GPU computing, and it's planning on stoking the flames -- not only is it accelerating the CUDA release schedule, it's planning on working with Microsoft on DirectX 11 Compute. Hit the break for some more highlights!
NVIDIA feels that the basic ideas behind CUDA are reinforced by OpenCL -- the basic model is the same, although OpenCL is a lower-level architecture that requires coders to do their own memory management, etc., while CUDA allows non-professional programmers like scientists and researchers to program GPGPU code.
In fact, in order to meet the needs of the 25,000 active CUDA devs, NVIDIA is bumping up the CUDA release schedule, with three releases scheduled for 2009, culminating in CUDA 3.0.
NVIDIA thinks the CPU still has a big role to play -- not every app is best run on a GPU, and every app has code that's best run on a traditional CPU. However, unlike Intel, which thinks the GPU is dead in water, NVIDIA thinks the value of traditional CPUs is rapidly diminishing, and that graphics and parallel-compute intensive apps are going to drive the market forward. (Yes, we've heard this before.)
That's not to say the two companies can't work together -- although Intel's been highly critical of NVIDIA and GPGPU in the past, it was an eager and willing participant in the OpenCL process -- a process that went from start to finish in basically six months flat after Apple submitted the spec. That's record time for a standard like this, something NVIDIA credits to broad industry participation and enthusiasm.
Of course, notably absent from all the OpenCL group is Microsoft, and while NVIDIA wouldn't confirm that it's working on a Windows implementation of OpenCL, we were told repeatedly that all the partner companies are interested in making it happen, and that no one will be surprised when it arrives. Ditto for Linux.
Microsoft is working on DirectX 11 Compute, however, and NVIDIA says it'll be there -- it's not going to stay out of any market, it'll go where the customers are. Seems like marketing-speak, but they were really insistent about this on the phone, telling us NVIDIA refuses to "pick sides."
OpenCL will basically run on any card that can do CUDA, which is a lot of chips -- pretty much any 8-series GPU with 256MB of RAM or above. Here's a list.
They wouldn't talk about Apple's plans, of course, but they did say that NVIDIA has a strong relationship with the company, as evidenced by the new MacBook line, and that Apple "wouldn't pick a supplier without knowing how their strategy is going to play out." That's certainly interesting -- maybe those dual GPUs in the new MacBook Pros are bound for something special after all.
OpenCL isn't done yet -- 1.0 is still waiting on performance testing, and a 1.1 version with additional features the working group felt weren't an immediate priority is due later sometime in 2009.
Overall, it sounds like OpenCL is going to be around for a long time, and we're totally ready for some supercomputer-caliber performance out of our machines -- can you hear us, video-encoding apps? You're due for a speedup.