OpenCL programming language adopted
Version 1.0 of the specification for OpenCL (Open Computing Language) is ready. The Khronos Group, an industry consortium that is also responsible for OpenGL, has ratified and issued the new programming interface for heterogeneous parallel computers. OpenCL is intended to enable the programming of applications and functions that run on different processors which are compatible with OpenCL. According to the specification, OpenCL uses a subset of ISO C99 with expansions for parallelisation.
OpenCL is aimed in particular at opening up the enormous performance potential of graphics processors (GPUs) for general-purpose applications (GPGPU), not just for 2D and 3D graphics acceleration. The OpenCL specification also explicitly mentions other processors and coprocessors, such as the Cell Broadband Engine (Cell/BE) and digital signal processors (DSPs). The Cell Broadband Engine developers, IBM and Sony, and the DSP market leader, Texas Instruments, were involved in drafting the OpenCL specification.
Many Apple, Intel, AMD and Nvidia developers have contributed to OpenCL. Apple has already announced OpenCL as a one of the innovations in the coming Snow Leopard version of Mac OS X. The GPU manufacturers AMD and Nvidia also intend to support OpenCL. Nvidia says OpenCL applications run seamlessly on graphics cards that are integrated into the system via a driver suitable for CUDA, which means practically all GPUs produced by Nvidia in the last two years – as long as they are suitable for DirectX 10 – including mobile graphic chips with proprietary drivers used by notebook-manufacturers.
AMD also plans to support OpenCL with a coming version of the free ATI Stream SDK. This is currently available as a beta, version 1.2.1 for 32 and 64-bit versions of Linux – Red Hat 5.1, SLES 10 SP1 and Windows – XP and Vista, but is currently not adapted for OpenCL. An alpha version of the mathematical function libraries, AMD Core Math Library (ACML), is available on request. AMD is also cooperating with the compiler specialists at The Portland Group (PGI). AMD's press release on its support for OpenCL in the ATI Stream SDK is somewhat vague though; it promises version 1.4 of the SDK "in the first quarter" of 2009, but no version suitable for OpenCL until "the first half" of 2009.
Intel has only made vague mentions of OpenCL so far, and is planning its own programming language for throughput computing, C/C++, referred to for short as Ct. This will enable the potential of the coming Larrabee graphics processing chip to be exploited, and later, from 2010, that of the coming Advanced Vector Extensions (AVX), with the 32-nm Sandy Bridge chips.
To what extent Microsoft's compute shaders planned for Direct3D 11 will compete with OpenCL is difficult to assess. Perhaps with Microsoft operating systems there will be a similar relationship to that existing between Direct3D and OpenGL today: Windows software mainly goes for Direct3D, but all GPU drivers include support for OpenGL.
OpenCL is also aimed at supercomputers. The current leader on the Top500 list, the IBM Roadrunner, is already a heterogeneous HPC system consisting of x64 AMD processors and PowerXCell 8i chips.