Projects / Portable Computing Language (pocl)

Portable Computing Language (pocl)

Portable Computing Language (pocl) aims to become an efficient implementation of the OpenCL standard. In addition to producing an easily-portable Open Source implementation, another major goal of the project is improving performance portability of OpenCL programs with compiler optimizations, reducing the need for target-dependent manual optimizations. At the core of pocl is a set of LLVM passes used to statically parallelize multiple work items with the kernel compiler, even in the presence of work group barriers. This enables parallelization of the fine-grained static concurrency in the work groups in multiple ways (SIMD, VLIW, superscalar, etc.). The code base is modularized to allow easy adding of new "device drivers" in the host-device layer. A generic multithreaded "target driver" is included. It allows running OpenCL applications on a host which supports the pthread library with multithreading at the work group granularity.

Tags
Licenses
Operating Systems
Implementation

Recent releases

  •  29 Jan 2014 10:37

    Release Notes: This release improves host/target CPU detection and targeted code generation, implements a kernel compiler by default by LLVM API calls instead of scripts, improves handling of CL Images, and adds several kernel compiler improvements.

    •  12 Aug 2013 16:18

      Release Notes: This release adds support for LLVM/Clang 3.3, employs inner loop parallelization in the kernel compiler, uses Vecmathlib for inlineable efficient math library implementations, contains plenty of bugfixes, and provides several new OpenCL API implementations.

      •  09 Jan 2013 13:05

        Release Notes: This release adds support for LLVM 3.2, generates the work group functions using simple (parallel) loop structures, and adds fixes to make the pocl work on ppc32, ppc64, and armv7. Initial Cell SPU support has also been added (very experimental!) as an example of an heterogeneous pocl device driver.

        •  17 Aug 2012 11:38

          Release Notes: Even though the OpenCL 1.2 standard is not yet implemented fully and contains known bugs, pocl is now considered ready for wider testing. It compiles and runs successfully most of the Rodinia benchmark, all of the ViennaCL test cases, and most of the OpenCL Programming Guide samples.

          Screenshot

          Project Spotlight

          OpenStack4j

          A Fluent OpenStack client API for Java.

          Screenshot

          Project Spotlight

          TurnKey TWiki Appliance

          A TWiki appliance that is easy to use and lightweight.