Chicago (IL) – Khronos Group today released the OpenCL 1.0 specification, a major technology foundation for enabling software developers to take advantage of the massive parallel computing horsepower in multicore processors, including graphics processing units. Besides the previously announced array of companies supporting OpenCL, Nvidia said that it has added OpenCL to its GPU computing developer toolkit. Apple’s upcoming Mac OS X code-named Snow Leopard is expected to showcase just how much potential this new technology really has.
General purpose GPU (GPGPU) computing is one of the most significant developments in computer hardware in years, from the user’s perspective perhaps in decades, but it is still very much a blurry topic for mainstream users due to the lack of mainstream applications. But an announcement that OpenCL 1.0 (Open Computing Language 1.0) is now available is a big deal. Not only does it enable developers to tap into the GPU to dramatically accelerate at least portions of their applications, it is also a first sign of a departure from proprietary GPU programming models such as Nvidia’s CUDA and towards cross-platform development models.
One of the first beneficiaries of this specification will be Apple, which announced some time ago that it will include OpenCL acceleration into Snow Leopard. Of course, the operating system will not be the only software to take advantage of OpenCL, but it will be a very important one – and the ratification of OpenCL should be viewed as major success for Apple: The company proposed OpenCL as a draft specification about six months ago and was able to get the support of a long list of key industry players, including 3DLabs, Activision Blizzard, AMD, ARM, Barco, Broadcom, Codeplay, Electronic Arts, Ericsson, Freescale, HI, IBM, Intel, Imagination Technologies, Motorola, Nokia, Nvidia, QNX, RapidMind, Samsung and Texas Instruments.
“We are excited about the industry-wide support for OpenCL,” said Bertrand Serlet, Apple’s senior vice president of Software Engineering. “Apple developed OpenCL so that any application in Snow Leopard, the next major version of Mac OS X, can harness an amazing amount of computing power previously available only to graphics applications.”
The OpenCL standard defines a subset of the C99 programming language with extensions for parallelism, an API for coordinating data and task-based parallel computation across a wide range of heterogeneous processors, numerical requirements based on the Institute of Electrical and Electronics Engineers’ IEEE 754 (double precision) standard as well as interoperability with OpenGL, OpenGL ES and other graphics APIs.
Both AMD and Nvidia still promote their own proprietary programming languages to exploit their GPUs for stream computing – Brook+ at AMD and CUDA at Nvidia – but OpenCL is supported by both and will allow developers to create code that runs on graphics cards from both manufacturers.
If Snow Leopard will only be half as good as Apple indicates, then applications we were only able to dream about so far should be much more in reach – that would include speech recognition that is combined with visual tracking of lip movements to increase the accuracy of recognized words, face recognition or real time rendering of a hand in front of a web camera that would allow users to use their hand as a data input device instead of a mouse or a touchscreen.
What Snow Leopard will offer is still very much speculation. We know much more about Windows 7 (here is a side-by-side comparison) – and we know that it will not integrate OpenCL support or a similar type of GPGPU or cGPU (Intel Larrabee) acceleration technology. OpenCL in Snow Leopard may very well be only a technology showcase, but if it provides those dramatic speed improvements Apple promises and if it sparks the development of a wave of new applications, then Microsoft may have a much bigger problem at the end of next year than it has today. A cleaned up interface and touchscreen support (see our slideshow) may not cut it.