GPU Computing Comes Into Its Own
- Dec 16, 2010 8:07 PM EST
- [num] Comments
For the last several years, I've been quite interested in how graphics processors can be used for things other than traditional games. Somewhat quietly, 2010 has become the year that using such processors, known as GPUs, has really gone mainstream , as it is becoming a part of all sorts of applications. This will be even more apparent next year as reasonably powerful GPUs become part of almost every PC, and as applications from photo editing to browsers take more advantage of such processors.
When companies - notably Nvidia - started talking about "general purpose GPU" (GPGPU) use a few years ago, it was pretty much a niche market. Nvidia's CUDA software development kit was an early environment designed to jump start the market. AMD followed suit, but the more general solution that followed was based on Open CL and Microsoft's DirectCompute (though OpenCL seems to be getting more support outside of games right now.)
It wasn't long until we saw this used in things like transcoding videos; and now just about every product that encodes or transcodes video now supports using the GPU to speed the process. And there have been vertical market solutions, such as oil and gas visualization; and Matlab, which is used for engineering, science, and financial modeling. While creating corporate applications that really take full advantage of this is still challenging, it is getting easier.
Apple added support for OpenCL with the Snow Leopard release of OS X; and Microsoft followed with GPU computing using its DirectCompute commands (and with drivers supporting OpenCL). Windows 7 added direct support for transcoding using the GPU; and more recently, we've seen support for the GPU become a part of programs like Adobe's Creative Suite 5.
But perhaps more interestingly, it looks like all of the new browsers are adding support, so they now use the GPU to dramatically speed up the rendering of Web pages. This is part of the upcoming Internet Explorer 9 and Firefox 4 releases (in beta now, and expected early next year), and already implemented to some extent in Chrome and Safari (with more expected in the versions to come).
Web browsing is about the most mainstream of all applications, so seeing this use the graphics processor automatically makes this quite important.
This should mean that even the lowest end mainstream computers have improved graphics features, and this should be accessible for GPU processing in things from the browsers to the operating systems.
GPU computing is going mainstream in other ways, as well. A number of companies are now pushing GPUs in servers. For instance, Supermicro has announced a family of products, with the most common one being 1U servers with a couple of CPUs and 1 or 2 GPU cards on PCI Express bus, but extending up to a 4U rack system that takes multiple GPU cards; and , to a blade system introduced at the Supercomputing conference that allows up to 20 GPUs in a single enclosure. The company says their products will take AMD or Nvidia boards, although Nvidia is most common, and says that corporate customers typically choose Nvidia's Tesla line of high-end boards. But they say, some customers, such as Frankfurt University in its supercomputer, are just using typical gaming boards. (Frankfurt has a system with 600 nodes.)
The big applications today seem to be oil and gas simulation and exploration; and financial services running risk analysis. But with more students today learning to write parallel code, the company expects more applications to be written for this kind of computing in the future.
Meanwhile, Amazon Web Services announced an offering on its EC2 platform that uses the Tesla boards, so companies that only have occasional needs to such platforms can use it in a cloud computing environment.
So far from being a niche application, GPU computing could be something we're all doing almost all the time in 2011.