Release of PoCL 3.0 with an independent implementation of the OpenCL 3.0 standard

The release of the PoCL 3.0 (Portable Computing Language OpenCL) project has been presented, which develops an implementation of the OpenCL standard that is independent of graphics accelerator manufacturers and allows using various backends to execute OpenCL cores on different types of graphics and central processors. The project code is distributed under the MIT license. Work is supported on platforms X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU and various specialized ASIP (Application-Specific Instruction-set Processor) and TTA-processors (Transport Triggered Architecture) with VLIW architecture.

The OpenCL core compiler implementation is based on LLVM, and Clang is used as a front-end for OpenCL C. To ensure proper portability and performance, the OpenCL kernel compiler can generate combined functions that can use various hardware resources to parallelize code execution, such as VLIW, superscalar, SIMD, SIMT, multicore, and multithreading. There is support for ICD drivers (Installable Client Driver). There are backends to support work through CPU, ASIP (TCE/TTA), GPU based on HSA architecture and NVIDIA GPU (via libcuda).

In the new version:

  • Implemented the minimum set of features required to support the OpenCL 3.0 specification. OpenCL 3.0 support is currently only available in the CPU-based backend with LLVM 14 (other backends and older versions of LLVM provide support for OpenCL 1.2).
  • Added support for Clang/LLVM 14.
  • Improved tracing and visualization.
  • Added support for generating specialized groups of functions and including them in executable files with OpenCL kernels.

Source: opennet.ru

Add a comment