OpenCL: What you need to know
Apple was stingy with details about Snow Leopard when it briefly previewed the next version of OS X at this summer’s Worldwide Developers Conference. But based on the company’s public statements about the OS X update, we know that Snow Leopard features some new technology that promises to more thoroughly utilize the potential processing capability of the powerful graphics processors included with many Macs. Apple is promoting the technology, OpenCL, as a new open standard for graphics.
But what is OpenCL exactly?
According to the information put out by Apple at WWDC, OpenCL—or Open Computing Language—“lets any application tap into the vast gigaflops of GPU computing power previously available only to graphics applications.” The technology is based on the C programming language, according to Apple.
But beyond the short description contained in a Snow Leopard press release, Apple hasn’t had much to say publicly about OpenCL. However, the company is promoting it as a new standard through the Khronos Group —an industry consortium that manages open standards including OpenGL and OpenGL ES. Mac users will recognize those as the graphics technology used by Mac OS X and iPhone OS X, respectively.
OpenCL is the latest manifestation of a processing technique that’s been around for a while known as General-Purpose Computing on Graphics Processing Units. GPGPU helps to offload a personal computer’s computationally intensive processes to its graphics chip, such as those that might be found on a Mac equipped with an ATI or Nvidia graphics card or processor.
Such chips are designed to be high-performance parallel-processing engines, which makes them ideally suited for certain types of computing tasks—physics modeling in 3-D CAD software and games, for instance—or image processing technology, as might be used by film and video editing and compositing software.
For a very long time, GPUs were locked away from the rest of the computer, available only for graphics tasks through the drivers developed by Nvidia and ATI and tweaked by their manufacturing partners. With the advent of programmable vertex and fragment shading technology, graphics chip makers have gradually loosened the reins on graphics processing units.
In recent years, Nvidia and AMD have both rolled out competing technologies to accomplish this: Nvidia calls its technology Compute Unified Device Architecture (CUDA) and AMD, through its ATI subsidiary, calls its technology Close To Metal (CTM). Both accomplish the same thing: They let programmers write code that enables them to send data to the GPU to be processed, rather than having to rely on the CPU.
Not content to yield the performance graphics market to competitor AMD, Intel is preparing its “Larabee” microprocessor for release in 2009. It will be the first chip design that puts Intel on a level playing field with AMD and Nvidia for graphics performance. Unfortunately, it’s yet another code path that developers will need to master before they can reap the benefits of high-performance code.
With no end in sight to the constant escalation of competing graphics technologies from AMD and Nvidia—and with Intel now acting as a wildcard—all bets are off at this point. So developing platform-neutral GPGPU technology only makes sense. And that seems to be where Apple’s focus is with OpenCL.
To develop OpenCL as a standard, the Khronos Group has created a new “Compute Working Group” and has recruited a number of participants, inclduing ATI parent company AMD, Nvidia, Apple, and others. The Compute Working Group was announced earlier this year, just a week after Apple introduced Snow Leopard. Khronos’ hope in introducing the Compute Working Group is to develop OpenCL as a standard around the C programming language—something that would be accessible to just about any software developer.
Siggraph, the gathering of graphics technology industry leaders and professionals, happens in Los Angeles later this month. Khronos and the Compute Working Group are expected to make an appearance. As for Snow Leopard, Apple said in June that the next major update to Mac OS X would ship in about a year.