A recently-approved technology standard should help software developers to tap the latent processing power of graphics chips and transform regular computers into veritable supercomputers—at least for certain applications. Poised to take advantage of the technology first is Apple
Based on the popular C programming language, version 1.0 of OpenCL was ratified and published by standards body The Khronos Group last week. The OpenCL programming language developed by Apple lets applications offload much of the processing from the CPUs to a computer's graphics chip, or GPU.
Modern GPUs from Nvidia, AMD subsidiary ATI, and Intel are as powerful as regular CPUs—in some cases more so. For instance, ATI's latest Radeon HD 4870 GPU has almost 1 billion transistors, more than twice as many transistors as parent AMD's most powerful quad-core Phenom CPU.
Even when they are helping to display hyper-realistic first-person shooter video games or encoding video, GPUs tend to be woefully underutilized. OpenCL can solve that by allowing GPUs to acclerate many applications, especially those whose work can be broken down into many smaller parallel calculations, such as low-level number crunching, high-resolution graphics rendering and video encoding.
For those operations, GPUs "are blindingly fast," said Dan Olds, an analyst with the Gabriel Consulting Group. Encoding and rendering high-def video can be done between 40 to 100 times faster when apps are recompiled with OpenCL, said Olds. Health-care applications such as those processing MRIs and CAT scans would see similar acceleration, he said.
"When you compare the performance to a standard Mac, this will sound like a supercomputer to some people," he said.
Ian Lao, an analyst with In-Stat, agreed. "This is not total hyperbole," he said. "The moment I enable OpenCL, I can take a desktop computer into the low-to-mid-end server/supercomputer category."
Apple the immediate beneficiary
Apple looks to be the chief immediate beneficiary of OpenCL, which will be supported in its forthcoming move to Mac OS X 10.6, codenamed "Snow Leopard."
"That hides some of the complexity of OpenCL, such as the need for OS X to detect and download separate graphics drivers," said Lao, though he noted that Macs will still need specific Nvidia or ATI graphics chips to take advantage of the technology.
Olds doesn't think OpenCL will jumpstart the Mac as a gaming platform, despite the potential rendering advantages. Rather, he thinks it will be used to accelerate the video and graphics applications used by creative professionals who have long bought Macs.
Lao, meanwhile, expects OpenCL to have two main effects on Mac hardware. First, it will encourage software developers to port their wares to the technology to take advantage of Snow Leopard's release. Second, OpenCL may provide a much-needed boost to Apple's high-end Mac Pro workstations. Though popular with digital artists and animators, Mac workstations like the Mac Pro long ago ceded the high-end animation and rendering market to Linux and Windows. And due to their cost, Mac workstations have never been able to break into the CAD and engineering markets, either, says Lao.
With the no-cost horsepower boost provided by OpenCL, Mac Pros could suddenly "get Apple back in the game, and re-open markets up to them," Lao said.
What about Windows PCs?
Microsoft has not announced any plans to formally support OpenCL in Vista or its forthcoming Windows 7. That doesn't mean Windows PCs won't be able to enjoy the fruits of OpenCL. They still can, said Lao, provided they are equipped with the right Nvidia or ATI graphics chip—either on the motherboard or via an add-on graphics card—and if OpenCL applications are tweaked to work with the Nvidia or ATI drivers.
For instance, Microsoft has already confirmed that it will rewrite Vista, PowerPoint 2007, the Silverlight multimedia player and its Expression video encoder to work with ATI's drivers.
Moreover, Microsoft is working on DirectX 11, the upcoming version of its long-time series of graphics application programming interfaces (APIs). Lao said DirectX 11, particularly its Direct3D 11 API, gives programmers roughly the same sort of ability to control whether the application is processed by the CPU or GPU.
The difference, according to Lao, is that OpenCL is likely to encourage the acceleration of a much broader range of apps to be accelerated compared to DirectX 11, which will continue to be used mostly to boost videogame performance.
This story, "OpenCL technology may speed up 'Snow Leopard'" was originally published by Computerworld.