The release of the PoCL 3.1 project (Portable Computing Language OpenCL) has been announced, which develops an implementation of the OpenCL standard that is independent of graphics accelerator manufacturers and allows the use of various backends for executing OpenCL kernels on different types of graphics and central processors. The project code is distributed under the MIT license. It supports operation on X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU platforms, and various specialized ASIP (Application-Specific Instruction-set Processor) and TTA processors (Transport Triggered Architecture) with VLIW architecture.
The implementation of the OpenCL kernel compiler is based on LLVM, and Clang is used as the frontend for OpenCL C. To ensure adequate portability and performance, the OpenCL kernel compiler can generate combined functions that can utilize various hardware resources for parallelizing code execution, such as VLIW, superscalar, SIMD, SIMT, multicores, and multithreading. ICD drivers (Installable Client Driver) are supported. There are backends to enable operation via CPU, ASIP (TCE/TTA), HSA architecture-based GPUs, and NVIDIA GPUs (through libcuda).
In the new version:
- Support for Clang/LLVM 15.0 has been added.
- Significantly improved support for intermediate representation of SPIR-V shaders for drivers using CPU and CUDA.
- The driver for specialized hardware (CL_DEVICE_TYPE_ACCELERATOR) and custom devices (CL_DEVICE_TYPE_CUSTOM) that do not support online compilation has been significantly reworked. The accel and ttasim drivers have been merged into a new AlmaIF driver.
- Work on the Vulkan graphics API driver continues.
- A basic implementation of the cl_khr_command_buffer extension has been proposed, allowing a sequence of OpenCL commands to be recorded for execution in a single call.
Source: opennet.ru
