Version 0.7 of POCL, the Portable OpenCL implementation targeting OpenCL 1.2 compliance, has been officially released.
Portable OpenCL aims to be open-source, very portable, and improving performance through compiler optimizations and reducing target-dependent manual optimizations. Portable OpenCL was released in 2011
and released last August was Portable OpenCL 0.6
that began to implement the OpenCL 1.2 specification. POCL is built around the LLVM compiler infrastructure.
Portable OpenCL 0.7 introduces support for LLVM 3.2 (the latest LLVM release from last month), support for generating the work group functions using simple/parallel loop structures, fixes for POCL on PowerPC32/PowerPC64/ARMv7, and initial Cell SPU support. The Cell SPU back-end is still very experimental and meant as an example of a heterogeneous POCL device driver, though with LLVM 3.2 the Cell back-end was dropped.
In terms of the OpenCL 1.2 support, Portable OpenCL 0.7 doesn't yet implement the full specification and there are known bugs. However, POCL 0.7 is ready for wider-scale testing and is passing OpenCL tests from ViennaCL, Rodinia, Parboil, and the OpenCL Programming Guide samples as well as those from the AMD APP SDK.
The Portable OpenCL 0.7 release announcement can be found on the LLVM mailing list
. The POCL project is hosted on SourceForge
Interestingly, the development of the Portable OpenCL 0.7 release was sponsored by Nokia, namely the Radio Implementation Research Team from Nokia Research Center.