LIBCLC: An OpenCL C Library Implementation

Posted by Michael Larabel on October 19, 2011

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.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Intel Haswell HD Graphics 4600 vs. AMD Radeon Graphics On Linux
  2. Intel Haswell HD Graphics 4600 Performance On Ubuntu Linux
  3. Intel Core i7 4770K "Haswell" Benchmarks On Ubuntu Linux
  4. The First Experience Of Intel Haswell On Linux
Latest Software Articles
  1. Optimized Binaries Provide Great Benefits For Intel Haswell
  2. 11-Way Linux, BSD Platform Comparison
  3. SNA Acceleration Works Great For Intel Core i7 Haswell
  4. The Linux Evolution For Intel Haswell's Performance
Latest Linux News
  1. KDE's KWin Made Lots Of Progress In 4.11
  2. Ubuntu Announces Carrier Advisory Group
  3. Qt 5.1 Release Candidate 1 Has Arrived
  4. In-Fighting Continues Over Mir On Non-Unity Ubuntu
  5. Subversion 1.8 Presents New Features
  6. LLVM 3.3 Officially Released
  7. LLVM/Clang Now Uses Loop Vectorizer At New Levels
  8. Intel GPU Driver Tries To Rip Out FBDEV Support
  9. Coreboot Doing AMD USB 3.0, Q35 QEMU Emulation
  10. VP9 Codec Now Enabled By Default In Chrome
  11. openSUSE 13.1 M2 Plays On PulseAudio 4.0
Latest Forum Talk
  1. The Wayland Situation: Facts About X vs. Wayland
  2. In-Fighting Continues Over Mir On Non-Unity Ubuntu
  3. Intel GPU Driver Tries To Rip Out FBDEV Support
  4. Ubuntu Announces Carrier Advisory Group
  5. Intel Haswell HD Graphics 4600 vs. AMD Radeon...
  6. Planetary Annihilation Plans To Come To Linux
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite