There's a new open-source OpenCL
project called "Portable OpenCL" that takes advantage of LLVM and this morning marks its first public announcement.
Carlos Sánchez de La Lama announced Portable OpenCL on the LLVM development list
. The Portable OpenCL project is self-described as "an open source implementation of the OpenCL standard which can be easily adapted for new targets. One of the goals of the project is improving performance portability of OpenCL programs, avoiding the need for target-dependent manual optimizations. A "native" target is included, which allows running OpenCL kernels on the host (CPU)."
LLVM/Clang is commonly used by various OpenCL implementations and for Portable OpenCL it's used to "statically replicate the workitems and generate a bytecode of the actual code to be run, taking into account the WI synchronization (barriers)." The Portable OpenCL project is still a work-in-progress but has been under development going back to early 2011 (at least according to the project's code revision history).
The Portable OpenCL project is hosted on Launchpad.net
. The ability to run OpenCL kernels on the CPU via an open-source stack is interesting. Previously it's been possible to do that through Intel's OpenCL SDK on Linux and the AMD Stream SDK. There's also been the ongoing work for OpenCL in open-source GPU drivers via Gallium3D and the Clover state tracker, which made some success this summer
via Google's Summer of Code.