In the dark ages of PC gaming, the CPU took care of most of the graphics chores. The graphics chip did just the basics: some raster operations, dedicated text modes, and such seemingly quaint tasks as dithering colors down to 256 or 16 colors. As Windows took hold, the graphics equation began to shift a bit, with some Windows bitmap operations handled by “Windows accelerators.” Then along came hardware like the 3dfx Voodoo and the Rendition V1000, and accelerated 3D graphics on the PC took off.
Now it’s coming full circle. Today’s GPUs are fully capable of running massively parallel, double-precision floating-point calculations. GPU computing allows the 3D graphics chip inside your PC to take on other chores. The GPU isn’t just for graphics anymore.
The Khronos Group on Monday announced it has officially ratified OpenCL 1.1, the open source programming standard for the parallel execution of tasks across multiple processors. So what's different with the new spec? According to Khronos, all of the following:
New data types including 3-component vectors and additional image formats
Handling commands from multiple hosts and processing buffers across multiple devices
Operations on regions of a buffer including read, write, and copy of 1D, 2D, or 3D rectangular regions
Enhanced use of events to drivea nd control command execution
Additional OpenCL C built-in functions such as integer clamp, shuffle, and asynchronous strided copies
Improved OpenGL interoperability through efficient sharing of images and buffers by linking OpenCL and OpenGL events
If that all sounds like Greek to you, the gist of what they're saying is that like most updates, OpenCL 1.1 brings improved performance to the table. Perhaps equally important, Khronos pointed out that the spec is fully backwards compatible with OpenCL 1.0.
OpenCL competes with Microsoft's DirectCompute API, which is part of the DirectX family. One of OpenCL's biggest assets is support from a range of heavy-hitting industry giants, including AMD, Apple, ARM, IBM, Intel, Nvidia, and several others. Coinciding with the announcement, Nvidia said it already has an OpenCL 1.1 driver available to show that their "full weight is behind" the spec.
As a developer of graphics technology, Nvidia has been incredibly successful. Despite severe competitive pressure from AMD, Nvidia’s desktop GPUs still hold the number one market share, though AMD recently upped the ante with the release of the Radeon HD 5870, which is hands down the fastest single GPU card today.
It’s clear, though, after Nvidia’s recent GPU Technology Conference, that the company’s aspirations lie well beyond building graphics chips. That’s not a revelation – Nvidia’s been saying this for several years now. For an industry observer, though, the GPU Tech Conference lays out Nvidia’s model for moving beyond just graphics.
I'm sitting here at Nvidia's GPU Technology Conference, and will liveblog Jen-Hsun Huang's keynote. I'd expect we'll hear lots about GPU-based computing applications, as well as some new hardware focused on GPU-based computing. Hit the jump to see the liveblog.
Epic Games’ CEO Tim Sweeney is on record as being stanchly against GPGPU computing in the past, but in a recent keynote delivered at the High Performance Graphics conference he further downplayed its future. From a developer standpoint he claims that GPGPU based applications can cost nearly 10x as much as a single threaded versions, with multi-core based software being the current sweet spot.
This isn’t the first time Sweeney has predicted the demise of GPGPU based computing technologies, but he has now further expanded his list of endangered technologies to include DirectX and OpenGL. In his speech last year Sweeny claimed that “In the next generation we’ll write 100-percent of our rendering code in a real programming language--not DirectX, not OpenGL, but a language like C++ or CUDA. Whether that runs on Nvidia hardware, Intel hardware or ATI hardware is really an independent question. You could potentially run it on any hardware that's capable of running general-purpose code efficiently."
Some might consider Sweeny’s comments a bit misguided considering that both Apple and Microsoft are strongly backing OpenCL, and ultimately if it turns out to be a more efficient way of doing certain tasks, couldn’t the development costs be justified? Clearly the GPU has future potential in the transcoding market, but do you think Sweeney has a point here?
GPGPU computing has been a frequent subject of tech chatter, the latest of which involves AMD's release of the first OpenCL SDK for x86 CPUs. What this does is enable developers to take OpenCL code that would normally be written for GPUs and target CPUs instead.
GPGPU computing, which offsets tasks from the CPU to the GPU, offers a range of benefits, including the potential for much faster video encoding and less time waiting for effects to be applied in supported applications like Photoshop CS4. But is there much use for AMD's "backwards" concept?
"The beta will help programmers more easily develop parallel software programs and take further advantage of multicore x86 CPUs to accelearate software and deliver a better computing experience," AMD states.
Earlier this year, Maximum PC Editor-in-Chief Will Smith challenged Nvidia "to stop trying to convince us that closed APIs are good, and instead embrace OpenCL." Fast forward to today and the graphics chip maker still isn't ready to kill CUDA, but it did become the first to release an OpenCL driver and Software Development Kit (SDK) in pre-beta form. Nvidia says its goal is to solicit early feedback in anticipation of a beta release to be made available in coming months.
"The OpenCL standard was developed on Nvidia GPUs and Nvidia was the first company to demonstrate OpenCL code running on a GPU," said Tony Tamasi, senior VP of technology and content at Nvidia. "Being the first to release an OpenCL driver to developers cements Nvidia's leadership in GPU Computing and is another key milestone in our ongoing strategy to make the GPU the soul of the modern PC."
If you haven't been following along at home, OpenCL is short for Open Computing Language and is an open programming framework paving the way for developers to tap into the power of GPUs for general-purpose computing, otherwise known as GPGPU (General Purpose GPU). The open standard has the potential to work on most modern GPUs, and not just Nvidia hardware like the company's CUDA platform. But don't read this as Nvidia giving up on CUDA. On the contrary, Nvidia feels OpenCL reinforces the ideas behind CUDA, and has bumped up the CUDA release schedule to include three releases planned for 2009.
At this month’s GDC AMD and Havok teamed up to show off the latest advances in their development of OpenCL, a new programming language that will allow physics processing to swap from the CPU to GPU on the fly.
The concept behind OpenCL is simple; it’s a system that will allow the load from physics processing to shift from different pieces of hardware on the fly. For example, if a gamer has a high end GPU but a slower processor, OpenCL can detect this and move a bulk (if not all) of the physics processing to the GPU, alleviating some of the stress from the CPU. And this system works vice versa, for slower GPUs but high end CPUs.
What’s even better is that OpenCL will work across all platforms. While PhysX currently only works with Nvidia GPU’s, OpenCL will work with AMD and Intel processors, as well as Nvidia and ATI GPUs. So, no more concerns about compatibility!
Sadly, at GDC the demo that was on display was only on an individual piece of hardware, the switch between CPU to GPU wasn’t shown. AMD was clear to state that their demo was only a proof-of-concept, and that the development process is still ongoing.
This week, we recorded a mostly zombie-free edition of the No BS podcast. While there was a little undead chat, we also talked about CUDA vs. OpenCL vs. DirectX 11 and using iTunes the Gordon Mah Ung way. This week, we're pretty certain that we even managed to post the right pocast (if you missed last week's, just redownload it. It's linking to the right one now). Join the podcast gang as we answer your tech questions, take a trip to the Lab, and get a chock-full-o'-rage edition of Gordon Mah Ung's Rant of the Week!
Do you have a tech question? A comment? A tale of technological triumph? Just need to get something off your chest? A secret to share? Email us at firstname.lastname@example.org or call our 24-hour No BS Podcast hotline at 877.404.1337 x1337--operators are standing by. For the love of all that's holy people, if you guys don't start asking tech questions, we're going to change the name to the Nothing But Undead podcast...
If you sometimes use your computer for something other than gaming, your ultra-powerful GPU might be twiddling its thumbs, waiting for some 3D deathmatches - until now. This week, Nvidia released the final 1.0 version of its OpenCL specification, which enables programmers to use the power of the GPU for general-purpose data crunching (aka General Purpose GPU or GPGPU). OpenCL enables programmers who aren't accustomed to shoving around vertices or telling hardware T&L registers what to do to write code for GPU execution without using OpenGL or DirectX commands.
Nvidia isn't exactly new to GPGPU, as its CUDA parallel processing architecture is somewhat similar to OpenCL. CUDA is currently supported by virtually all current GeForce, GeForce Mobile, and Quadro FX GPUs when equipped with at least 256MB of dedicated video memory.
To demonstrate the "Open" in OpenCL 1.0, Nvidia has worked closely with Apple Computer, which first proposed a parallel processing standard as part of its forthcoming Snow Leopard OS X release, with arch-rival ATI's parent company AMD, and with other partners including 3DLABS, Activision Blizzard, Apple, ARM, Barco, Broadcom, Codeplay, Electronic Arts, Ericsson, Freescale, HI, IBM, Intel Corporation, Imagination Technologies, Kestrel Institute, Motorola, Movidia, Nokia, NVIDIA, QNX, RapidMind, Samsung, Seaweed, TAKUMI, Texas Instruments and Umeå University.
So, who's managing the OpenCL standard, and what about Microsoft's rival DirectX 11 Compute standard? Updated 12-11-08:And, what class of computers can benefit from OpenCL coding?To learn more, and for your chance to sound off, join us after the jump.