Nvidia and OpenCL
Last week, we spoke with the CUDA guru at Nvidia so as to find out where they are at with OpenCL, which has been given firm support by the company. You may have thought OpenCL was competition for C for CUDA and that NVIDIA didn’t really welcome its arrival on the scene. Of course, as far as NVIDIA is concerned, C for CUDA is ideal as it necessitates the purchase of its products, while with OpenCL products from other manufacturers can be used.
This is however an oversimplistic vision. The market we’re talking about here is still in its infancy and rather than fighting to protect a few crumbs it’s a much better strategy to go for a slice of a bigger cake. This is why NVIDIA are interested in any initiative designed to develop the use of the power of massively parallel chips such as GPUs.
Indeed Neil Trevett, formerly of 3D Labs and currently VP of Embedded Content at NVIDIA, heads up the OpenCL work group. Given the similarity between C for CUDA and OpenCL and the fact that, officially, Apple initiated the idea and put it forward for discussion (after having decided to equip its new Macs with NVIDIA products…), NVIDIA can in reality be seen as a joint instigator.

NVIDIA is hammering the point home by underlining the fact that OpenCL was developed on its GPUs and that they have been the first to demo it. The similarity between C for CUDA and OpenCL facilitates the task for NVIDIA of course as it can simply put a pilot into place that supports OpenCL and slightly modify its C for CUDA compiler so as to create an OpenCL version. Both compilers will use the same intermediate language, PTX for CUDA, which is used to optimise and create the machine code executed by the GPU. AMD will have to put into place an OpenCl compiler for CAL, which will require a bit more work.

NVIDIA plans to make an OpenCL beta pilot available in the spring and a finished pilot in summer 2009 with a 1.1 version to follow soon after. This is likely to be used to correct any gaps in OpenCL that have come to the attention of its early users. AMD has for its part announced an OpenCL pilot for the first half of 2009.

Of course, the advent of OpenCL doesn’t mean that development on C for CUDA will stop and this remains very important for NVIDIA. As a proprietary API, it allows the manufacturer to move faster with respect to its own GPUs and to develop new functions without giving away any secrets in terms of the detail of the architecture for its forthcoming chips. 2 minor revisions are planned for the first half of 2009 with the version 3.0 planned in a year’s time.