Though the “techlectic” SC08 crowd at Austin’s Rio Grande Mexican Restaurant Monday night was thirsty for cold beer and hungry for nachos and quesadillas, they were equally famished for information on OpenCL, the Apple-spearheaded parallel computing API produced by the Khronos Group. Not much has been revealed about the C programming language-based specification since Apple announced at this June’s Worldwide Developer Conference that OpenCL would be a linchpin of the next major OS X release, code-named Snow Leopard. OpenCL’s addition the Mac OS would, according to Apple, allow applications to “tap into the vast gigaflops of GPU computing power previously available only to graphics applications.”
If the attendees seemed impatient, it wasn’t for lack of speed on Khronos’ part, explained Nvidia’s Neil Trevett, Khronos’ president.
“If you go to some other larger standards bodies, it’s quite normal for a standard to take five years or more,” Trevett said. “That’s quite commonplace. You actually have to really push to get it down to eighteen months. Our record was 12 months, up to now; we’ve done this one in six.”
The record turnaround was a result of Apple’s OS X schedule.
“The fact that if we could hit this impossible deadline [Apple] would support it in Snow Leopard was a huge plus to us,” said Intel’s Tim Mattson. “So we have, you know, divorced our families, we’ve had two phone meetings a week, face-to-face meetings and I can’t count how many hours I’ve spent. I’m just almost dead, I’m so exhausted. And I was convinced; I was one of the people at the face-to-face meeting—one of the first ones—saying, ‘It’s impossible. We can’t do this. It will not work.’ Well, I was wrong. It got done. So, I’m really proud of what we pulled off.”
The launch party, held in conjunction with the SC08 high-performance computing conference in Austin, included three presenters (AMD’s Ben Gaster joined Trevett and Mattson), dozens of projected slides revealing goals and sample code but, sadly, no live demonstration of the API in action.
“The bottom line is, we’ve defined it technically,” Mattson explained. “Now you go through a process where all the companies involved get all their lawyers to pore through and make absolutely sure there’s no IP and that all the i’s have been dotted and all the t’s have been crossed. There’s a minimum of 30 days where companies can pore over it and approve it to say that ‘yes, we bless this. It does not expose IP, it does not create any trademark problems, it’s okay.’ But until that 30-day period is up, and until all of our companies have signed the paperwork saying ‘yes, we bless this,’ we cannot release demos, we cannot release the specs.”
Meanwhile, Mac fans will have to settle for vague speculation on what benefits they’ll see from OpenCL—although slides of Monday’s presentation are available at the Khronos Web site. Trevett and Mattson predictably agree that the first programs to exploit the standard’s power will be graphics-intensive, pixel-pushing desktop products such as video games and multimedia applications.
“If Apple ends up following through on the plans they stated on building this specification into Snow Leopard, I think you could see opportunity for imaging applications vendors, video application vendors to tap into the goodness of GPU hardware,” Trevett said. “Everyone has a supercomputer locked away in their Mac, but it’s hard to get at it. And OpenCL will unlock the potential of that supercomputer.”
Mattson extolls the advantage of pairing OpenCL with rendering API OpenGL in what he calls “a producer/consumer relationship.”
“For example,” he added, “the big thing in gaming these days is I have a physics simulation engine that I want to have tightly coupled with my rendering pipeline. OpenCL will be perfect for that. And by defining the interface between a new standard parallel programming API, OpenCL, with the standard, established parallel 3-D graphics API, OpenGL—by having the interface between those so well defined—it’ll be perfect for me to do this parallel physics engine’s parallel game engine that will then be able to immediately transfer into the rendering pipeline to create the final images on my screen.”
“It’s a big opportunity to bring some real computing power to everyday users,” Trevett said.
The pair were vague about speed benefits to owners of Macs such as the Mac mini and MacBooks which sport integrated graphics, but both agreed that any computer with multi-core processors should see some advantages, dedicated graphics or not.
“The whole point of OpenCL is that it really doesn’t matter what the underlying hardware is,” Trevett said. “If it’s programmable, OpenCL will let you tap into it.”
“Ultimately, the way we defined OpenCL is that it will work literally from the handheld cell phone all the way up to the top-end MacBook,” Mattson added. “So that means it has to work with a CPU and the beefiest Nvidia graphic cards, it has to work with an Atom processor and cheesy integrated graphics—not that I’m implying at all that the integrated graphics that would go with Atom would be cheesy. But the point is, it’s got to work across the board.”
Does that mean we could eventually see OpenCL find its way onto the iPhone?
“The specification was written very carefully not to tell vendors how they implement things. So that gives them flexibility they need to map onto virtually any device they can think up,” Mattson said. “So, yeah, it’ll be beneficial to users across the board. And I can’t emphasize enough that I’ll be able to write one program that I’ll be able to recompile and it will run on my cell phone, it will run on my Powerbook.”
Trevett added: “The embedded profile is intended to enable this kind of parallel computing in mobile and handheld devices. That’ll be the second wave. It’ll happen first in desktop and high-end systems. But putting this specification out into the industry will enable the silicon for the mobile handsets to be designed at this point. It could all happen sooner than anyone expects.”