It was just two days ago that the Portable OpenCL project was announced
, but today there's another open-source OpenCL project that takes advantage of LLVM/Clang: libclc, an OpenCL C library implementation.
This library provides a reference OpenCL C library implementation that's BSD-licensed and implements the library requirements of the OpenCL 1.1 specification. The library is meant to be used with LLVM's Clang OpenCL front-end, which isn't a problem with most of the open-source and proprietary OpenCL drivers utilizing this compiler.
From the project's announcement
to LLVM developers, "libclc is designed to be portable and extensible. To this end, it provides generic implementations of most library requirements, allowing the target to override the generic implementation at the granularity of individual functions."
The project creator, Peter Collingbourne, additionally writes:
An example of such a host library is NVIDIA's OpenCL host library for PTX -- the intention is to at some point provide a mechanism for using the NVIDIA implementation of OpenCL with Clang, libclc and LLVM's PTX backend instead of NVIDIA's own OpenCL compiler. Another example would be POCL's host library, and the POCL developers have expressed an interest in using libclc as their OpenCL C library instead of developing their own.
I will hope to find time over the next few weeks to add libclc support to the Clang driver.
At least things are finally beginning to heat-up for OpenCL in the Linux and open-source worlds. 2012 should be an interesting year, assuming the open-source GPU drivers manage to get OpenCL working properly in a modest manner over Gallium3D. There's still at least one related announcement expected before year's end