Nvidia Presents First OpenCL Driver for Linux

Oct 05, 2009

Nvidia has announced its first OpenCL-capable driver. Not only that: Linux users will get it at the same time as the Windows package, which complies with OpenCL's platform-independent concept.

The Open Computing Language initially developed by Apple is a platform- and manufacturer-independent language for graphics chips that goes beyond graphics. OpenCL is now available for Windows and Linux after its initial offering with Mac OS X 10.6. Nvidia is the first to present an OpenCL-capable driver, with ATI probably soon to follow. Prerequisite is a CUDA-enabled Nvidia GPU from at least the Geforce 8000 series. Nvidia, apart from the OpenGL-capable Linux driver in version 190.29, also offers an OpenGL SDK for all platforms, sample code and an OpenGL Visual Profiler to help optimize programs. The Nvidia developer website includes downloads.

Although Apple was instrumental in its development, responsibility for OpenCL lies with the Khronos Group, whose server is unfortunately currently not available because of demand following the Nvidia announcement. Next to Apple, AMD/ATI and Nvidia, 30 other firms belong to the group, among them IBM, Intel, ARM, Freescale, Texas Instruments, STM, S3, 3DLABS, QNX, Qualcomm, Nokia, Samsun and Toshiba, as well as some popular gamers like Activision Blizzard and Electronic Arts.

There is now finally a standard that programmers can rely upon to run on heterogeneous platforms and graphics chips. It should give a big boost to the use of graphics chips for application acceleration. Previously programmers had to depend on proprietary technology such as Nvidia's Compute Unified Device Architecture (CUDA) and AMD/ATI's FireStream or use OpenGL or the DirectX Shader (GPGPU). In the latter case, because the GPU shader was primarily developed for graphics, realization of normal computer processing via Shader was rather tedious, with often less than optimum results, depending on algorithm and implementation, in that it didn't use the full processing potential of the graphics chip. OpenCL should change all that. It should be easy to program and spare programmers the tedious job of optimizing the code to the particulars of the graphics chip. A short primer on OpenCL can be found on Apple's homepage.

Because few programmers and software firms were willing to write tedious code that runs on a specific graphics chip only, the introduction of OpenCL is a breath of fresh air. As it is, the market for graphics chips is distributed as 49.7% Intel, 31.1% Nvidia, 17.1% AMD/ATI and 2.1% other. OpenCL runs not only on graphics chips (Intel has also recently announced OpenCL support for its upcoming Larabee), but also on normal CPUs, DSPs and the Cell processor found in the fastest supercomputers and Playstation 3. In the end, or so the theory goes, almost all hardware should run on OpenCL.

The processing power of modern graphics chips already lends itself quite well to computational tasks, among them for video and audio encoding, video effect, raytracing, cryptography, physics and liquids simulation, 2D graphics filter computations, sound synthesis and audio effects.

OpenCL is truly a benefit for Linux, as are OpenGL for graphics and OpenAL for sound: code is simply portable between these worlds and requires no adjustment. Meanwhile Microsoft has been somewhat asleep at the wheel, with its proprietary alternative to OpenCL, DirectX Compute Shader, released end of July with DirectX 11 SP2 for its only moderately popular Windows Vista. The developer community's attention is clearly directed more toward OpenCL.

Related content

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More