updated 11:40 pm EST, Mon December 8, 2008
OpenCL 1.0 ratified
Heralding the era of GPU-enhanced computing, the Khronos Group on Monday evening announced the ratification and public release of the Apple-proposed OpenCL 1.0 specification, the open, royalty-free standard for cross-platform, parallel programming in PCs. The OpenCL spec, proposed by Apple under six months ago, is designed to improve performance of software applications (ranging from gaming to scientific and medical software) and is supported by vendors such as Activision, Blizzard, AMD, Apple, ARM, Broadcom, Electronic Arts, IBM, Intel, Nokia, NVIDIA, and Samsung. The OpenCL standard was completed in nearly six months time by the working group in order to be ready for the release of Mac OS X Snow Leopard, the next version Apple's operating system that is expected to ship early next year.
The OpenCL framework takes advantage of multi-cored CPUs and GPUs, aiming to drive the parallel computing market and boost performance in a variety of processor-intensive devices; it enables software developers to take full advantage of a diverse mix of multi-core CPUs, Graphics Processing Units (GPUs), Cell-type architectures and other parallel processors such as Digital Signal Processors (DSPs) to boost performance of both PCs and other devices.
The standard consists of an API for coordinating parallel computation and a programming language for specifying those computations, including a subset of the C99 programming language with extensions for parallelism; an API for coordinating data and task-based parallel computation across different types of processors; and interoperability with OpenGL, OpenGL ES and other graphics APIs.
“The opportunity to effectively unlock the capabilities of new generations of programmable compute and graphics processors drove the unprecedented level of cooperation to refine the initial proposal from Apple into the ratified OpenCL 1.0 specification,” said Neil Trevett, chair of the OpenCL working group, president of the Khronos Group and vice president at NVIDIA. “As an open, cross-platform standard, OpenCL is a fundamental technology for next generation software development that will play a central role in the Khronos API ecosystem and we look forward to seeing implementations within the next year.”
Though not supported by Microsoft, OpenCL could boost performance of of Macs and mainstream PCs by offering developer access to embedded and discrete GPUs available in newer generation computers. Both NVIDIA's GeForce GTX 200 series and AMD's still unofficial Radeon HD 4800 will both explicitly support non-video processing but are currently tied to proprietary languages that limit the incentive to accelerate specialized code. The chips and potential computing power could not only be used for games and OS tasks, but also for media editing and other scientific work.
Microsoft hopes to counter the standard by upgrading its DirectX standard with support for "compute shader technology" that allows modern, more generalized video cards' effects processors to perform tasks other than rendering video: DirectX 11 is also said to be support for more modern existing hardware and rendering techinques, including support for multiple cores and tesselation.
Although the OpenCL alternative support Windows Vista, the standard be delivered as part of Windows 7, which is due later next year, while Apple is already readying support for OpenCL in Snow Leopard.
"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.”
According to documents from the US Patent and Trademark Office, Apple has already filed for a trademark on OpenCL technology.
On heels of the announcement, NVIDIA also announced its full support for OpenCL 1.0 from within its CUDA architecture, calling it another major milestone in the GPU revolution that gives NVIDIA developers another powerful programming option. CUDA was designed to natively support all parallel computing interfaces and will seamlessly run OpenCL. According to the company, the technology is already enabled on over 100 million NVIDIA GPUs: it was first introduced with the NVIDIA® GeForce 8800 GPU and is now standard across all NVIDIA's modern GPUs; the company claims that scientists seeing up to a 20-200x speed-up in their applications with CUDA over a CPU and that the CUDA architecture is being built into a wide range of computing systems from supercomputers and workstations to consumer PCs.