POCL 6.0 Launches Independent OpenCL Implementation

The latest release of the project POCL 6.0 (Portable Computing Language OpenCl) has been published, which focuses on developing the implementation of the OpenCl standard. This implementation is independent of graphic accelerator manufacturers and allows the utilization of various backends to execute OpenCL shaders across different types of graphic and central processors. The project’s code can be accessed under the MIT license and is compatible with platforms such as X86_64, MIPS32, ARM V7, AMD HSA APU, NVIDIA GPU, and various specialized asip (Application-specific Institution Processor) and TTA processors with the architecture of vliw.

The implementation of the OpenCL kernels compile is based on LLVM, with Clang serving as the front-line for OpenCl C. The OpenCl compiler can generate combined functions that utilize multiple hardware resources for parallelization of code execution, such as VLIW, supercarality, SIMD, SIMT, multi-stroke, and multi-plane, to ensure proper tolerance and performance. There is support for ICD drivers and backends to facilitate work through CPU, asip (tce/tta), GPU based on hsa architecture, and NVIDIA GPU (via libcuda).

In the new versions of POCL 6.0:

  • Added support by Clang/LLVM 18.0, with termination of support for LLVM 10, 11, 12, and 13.
  • Introduced a new CPU-TBB backend for parallelizing operations and managing tasks using the onetbb library by Intel.
  • Enhanced support for parallel programming Openmp in the CPU backend, added the ClGetDeviceandhostTimer() method, and experimental extensions of CL_POCL_SVM_RECT, CL_POCL_SVM, and CL_POCL_Command_Buffer_HOST_BUFFER.
  • In the Remote backend, designed for distributed calculations, support for CG SVM
/Reports, release notes, official announcements.