Right on schedule, the Khronos Group has released the first version of the OpenCL specification. The 1.0 spec has been ratified by a large number of companies, including AMD, Apple, Broadcom, Intel, Motorola, Nokia, Nvidia, and many others. Since this is a public release, developers can grab the spec itself and documentation right now through this page.
If you've been tuning out the constant flow of stream computing news lately, OpenCL stands for Open Computing Language, and Khronos defines it as "the first open, royalty-free standard for cross-platform, parallel programming of modern processors found in personal computers, servers and handheld/embedded devices." Here's a more detailed rundown:
OpenCL enables software developers to take full advantage of a diverse mix of multi-core CPUs, Graphics Processing Units (GPUs), Cell-type architectures and other parallel processors such as Digital Signal Processors (DSPs). OpenCL consists of an API for coordinating parallel computation and a programming language for specifying those computations. Specifically, the OpenCL standard defines:
- a subset of the C99 programming language with extensions for parallelism;
- an API for coordinating data and task-based parallel computation across a wide range of heterogeneous processors;
- numerical requirements based on the Institute of Electrical and Electronics Engineers' IEEE 754 standard;
- efficient interoperability with OpenGL, OpenGL ES and other graphics APIs.
OpenCL will likely spur growth in the number of consumer apps that use GPUs for general-purpose computing, since developers should be able to avoid proprietary APIs and just use OpenCL to write software that runs on both AMD and Nvidia GPUs (and presumably Intel discrete GPUs when those come out, too).
As a matter of fact, both AMD and Nvidia have announced imminent support for the new spec. AMD says its engineers have already gotten OpenCL code up and running in-house, and it plans to offer a "developer version" of the ATI Stream development toolkit with OpenCL 1.0 support in the first half of next year. The company also intends to provide a "transition path" for developers who currently use its Brook+ language.
Nvidia boasts that its CUDA architecture "was designed to natively support all parallel computing interfaces and will seamlessly run OpenCL." That means GeForce 8-series and newer GPUs should support the new language, although Nvidia doesn't say when developers will be able to harness that capability. Considering Nvidia got one of its VPs to be chair of the OpenCL working group, though, that might not take very long.
Finally, the OpenCL 1.0 release announcement wouldn't be complete without a shout-out to Apple. The iPod maker's Senior VP of Software Engineering, Bertrand Serlet, points out that Apple developed OpenCL and will use it in Mac OS X 10.6 (a.k.a. Snow Leopard). OpenCL will allow the upcoming operating system to "harness an amazing amount of computing power previously available only to graphics applications," Serlet says.
|be quiet!'s Silent Base 800 case reviewed||6|
|MSI Aegis Ti wraps up SLIed GTX 1080s in an aggressive shell||34|
|Deals of the week: a Dell G-Sync monitor for $470 and more||12|
|Radeon Software Crimson Edition 16.7.3 serves up the bugfixes||5|
|AMD reveals the full specs of the Radeon RX 460 and RX 470||68|
|Nvidia will pay GeForce GTX 970 owners $30 over memory snafu||53|
|Gigabyte's GeForce GTX 1080 Xtreme Gaming graphics card reviewed||38|
|Microsoft's free Windows 10 upgrade offer ends tomorrow||117|
|ASRock H110M-STX mobo puts the 5x5 platform in builders' hands||15|
|Now you can install Crysis directly on the video card!||+65|