PoCL 5.0 Release with Independent Implementation of the OpenCL Standard

The release of the PoCL 5.0 project (Portable Computing Language OpenCL) has been published, enhancing the implementation of the OpenCL standard, independent of graphics accelerator manufacturers, allowing various backends to execute 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:

  • A new 'Remote' backend has been implemented, designed for organizing distributed computing by offloading the processing of OpenCL commands to other hosts in the network where the pocld background process is running.
  • The CUDA driver has implemented additional features and extensions of OpenCL 3.0, such as atomic operations, limited-scope variables, subgroups intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier, and sub_group_ballot.
  • Support for CPU based on RISC-V architecture has been enhanced. PoCL has been tested on the Starfive VisionFive 2 board running the Ubuntu 23.10 environment with LLVM 17 and GCC 13.2.
  • The extension cl_ext_float_atomics has been implemented with support for FP32 and FP64.
  • The implementation of the cl_khr_command_buffer extension has been updated to version 0.9.4.
  • An experimental AlmaIF backend has been proposed for FPGA.
  • The incomplete support for SPIR 1.x/2.0 shader intermediate representation has been removed. SPIR-V has been declared as the recommended intermediate shader language.
  • Support for Clang/LLVM 17.0 has been added. Support for Clang/LLVM 10-13 has been deprecated.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster