Nvidia Brings Standardization to GPU Coprocessing with OpenCL 1.0 - Updated

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.
The name OpenCL is appropriate, as the standard is being managed by the Khronos Group, the same trade group that manages OpenGL and other media authoring and acceleration APIs.
With Apple's standardizing on Nvidia GPUs in its latest computers and Snow Leopard coming, Apple will certainly be supporting OpenCL. But, where does Microsoft fit into the OpenCL picture? Redmond's been working on its own version of GPGPU, DirectX 11 Compute, which will introduce Compute Shader. Compute Shader, unlike OpenCL, will require DirectX 11-compliant GPUs. Engadget speculates that there will be OpenCL implementations for both Windows and Linux in the future. However, the first implementations of OpenCL for Nvidia GPUs aren't expected until sometime next year.
Update 12-11-08: As reader Penguinboy points out, OpenCL isn't just for PCs. As the Khronos OpenCL website points out:
OpenCL (Open Computing Language) is the first open, royalty-free standard for general-purpose parallel programming of heterogeneous systems. OpenCL provides a uniform programming environment for software developers to write efficient, portable code for high-performance compute servers, desktop computer systems and handheld devices using a diverse mix of multi-core CPUs, GPUs, Cell-type architectures and other parallel processors such as DSPs.
In other words, whether your "computer" is a smartphone, a netbook, a PC, or a supercomputer, OpenCL has the potential to make any computing device smarter and more powerful.
So, what do you think about having a standard for putting your GPU to work when it's time to get some work done? Will OpenCL support make a difference in the next GPU you buy? Hit Comment and tell us your thoughts.
Comments
Comments are closed on this article
![]()
billysundays
December 12, 2008 at 3:25pm
RapidMind stood out for me in the listing of partners. I was recently trying to find out if there was a way to get the "Electric Sheep" screensaver to utilize a GPU. It would be a perfect match. All I found was a demonstration by RapidMind on how its GPGPU solution can be greatly beneficial to software like "Electric Sheep" ("60x performance increase").
Frankly, I find CPUs to be boring, for a lack of a better word. So many of the the mainstream uses of PCs seem to be better suited for GPUs anyway.
![]()
Shalbatana
December 12, 2008 at 8:41am
I'm glad that everyones on the same page now. Now we can see if all those articles MaxPC wrote stating 'wouldn't this be great if they only had 1 api'.... come to fruition.
_______________________________
"There's no time like the future."
![]()
dylanwinn
December 11, 2008 at 4:32pm
I wonder If it would be possible to implement physx and possibly havok acceleration in OpenCL. In theory, this would allow for in game physics to be run on any brand of GPU, as well as the CPU and maybe even a soundcard. Obviously, the real intention is not to standardize physx and havok, but cuda and similar GPU based parallel processing apis. As for microsofts technology, I imagine it will be analogous to directx vs opengl.
![]()
zstadt
December 11, 2008 at 4:08pm
I currently have an 8800GT in my rig. I consider myself a bit of a gamer, but I also use my computer for other things.
I'm confused by all of this though; is OpenCL (and CUDA for that matter) for developers only? If not, how can I, a layman, benefit from using one of them?
![]()
penguinboy
December 11, 2008 at 4:19pm
Most of the things written in CUDA right now are scientific codes. I'm currently researching the benefits of using it to for plasma simulations. But the average person can benefit if non-gaming software is developed for the general populace that takes advantage of all that processing power in the GPU. I think Adobe Crative Suite 4 does. It can also be used for general HD encoding and decoding. I think ATi recently released a free decoder that uses its GPUs.
![]()
Marcus_Soperus
December 11, 2008 at 4:16pm
OpenCL is an API, just like OpenGL and DirectX. While developers must put this new API to work, just as they have other APIs, you and I will see smarter, more powerful devices in the future as a result. Follow the link to see how OpenCL can be used to enhance all levels of computers from smartphones on up to supercomputers.
It's amazing how illogical a business built on binary logic can be.
![]()
penguinboy
December 11, 2008 at 4:01pm
I'll definitely need OpenCL support on my next GPU since I don't have much of a use for it besides running simulations. I know, it's a bit odd to read MaximumPC when I don't game, but I'm still a technophile and I like following the release of new computer technologies; I just use the computing power for number crunching rather than gaming.
I think you guys actually missed half the point of OpenCL. From the Khronos Group, "OpenCL provides a uniform programming environment for software developers to write efficient, portable code for high-performance compute servers, desktop computer systems and handheld devices using a diverse mix of multi-core CPUs, GPUs, Cell-type architectures and other parallel processors such as DSPs." I'm hoping that means write once, run everywhere, but I'll have to wait and see. I would love to be able to write a code once and have it run (with a simple recompile and tweaks because of compiler differences) on all sorts of different supercomputers, whether they contain GPUs, Cell processors, or multi-core processors. I know, other readers don't care much about supercomputers, but what about being able to run the same code on your CPU and GPU?
![]()
Marcus_Soperus
December 11, 2008 at 4:13pm
...about the cross-platform power of OpenCL. The OpenCL page at the Khronos website is a good resource for seeing how OpenCL will help developers create more powerful software for a wide range of computing platforms from smarphones on up.
-----------------------------------------------------------------------------------------
It's amazing how illogical a business built on binary logic can be.
Log in to MaximumPC directly or log in using Facebook
Forgot your username or password?
Click here for help.
















