The OpenCL 3.0 specification has been introduced

The Khronos Group, which is responsible for developing specifications for the OpenGL, Vulkan, and OpenCL families, announced on the completion of the development of the OpenCL 3.0 specifications, which define the API and language extensions in C for organizing cross-platform parallel computations using multicore CPUs, GPUs, FPGAs, DSPs, and other specialized chips, ranging from those used in supercomputers and cloud servers to chips found in mobile devices and embedded systems. The OpenCL standard is completely open and does not require any licensing fees. Companies such as IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments, and Toshiba have participated in the development of the standard.

At this stage, the specification has been assigned a provisional status, allowing for enhancements based on the feedback submitted via GitHub. Once the comments have been taken into account, the specification will receive final status and the final test suite for checking the compatibility of existing implementations will be published.

The OpenCL 3.0 specification has been introduced

The most notable Features OpenCL 3.0:

  • The OpenCL 3.0 API now encompasses all versions of OpenCL (1.2, 2.x), without providing separate specifications for each version. OpenCL 3.0 allows for the core functionality to be extended through the integration of additional specifications that will layer in the form of options, without blocking the monolithic nature of OpenCL 1.2/2.x.
  • Only the functionality corresponding to OpenCL 1.2 is mandatory, while all the features proposed in the OpenCL 2.x specifications are considered optional. This approach will simplify the creation of specialized implementations compatible with OpenCL 3.0 and broaden the range of devices on which OpenCL 3.0 can be used. For example, manufacturers can implement support for OpenCL 3.0 without implementing separate capabilities from OpenCL 2.x. A query-checking system has been added in OpenCL 3.0 to assess support for individual API elements, along with special macros.
  • The unification with previously released specifications simplifies the translation of applications to OpenCL 3.0. OpenCL 1.2 applications will work on OpenCL 3.0 compliant devices without changes. OpenCL 2.x applications also will not require code modifications, but if the OpenCL 3.0 environment provides the necessary functionality (to ensure portability for future OpenCL 2.x applications, it is recommended to add checks to assess the support for the features used from OpenCL 2.x). Driver developers with OpenCL implementations will be able to easily upgrade their products to OpenCL 3.0 by only adding handling for API call queries and gradually enhancing functionality over time.
  • The OpenCL 3.0 specification aligns with the environment, extensions, and specifications of the universal intermediate representation SPIR-V, which is also utilized in the Vulkan API. Support for SPIR-V 1.3 has been incorporated into OpenCL 3.0 as an optional feature. Through the use of intermediate representation SPIR-V support for subgroup operations has been added for compute kernels.
    The OpenCL 3.0 specification has been introduced
  • Support has been added for an extension for performing asynchronous DMA operations, supported in DSP-like chips with direct memory access. Asynchronous DMA allows for the use of DMA transactions to transfer data between global and local memory in an asynchronous manner, parallel to ongoing computations or other data transfer operations.
  • The specification for parallel programming extensions for the C language has been updated to version 3.0, and the development of OpenCL language extensions for C++ has been halted in favor of the 'C++ for OpenCL' project. C++ for OpenCL is a compiler based on Clang/LLVM and translates kernels into C++ and OpenCL C into the SPIR-V intermediate representation or low-level machine code. Through translation to SPIR-V, the assembly of C++ applications using the SYCL template library, which simplifies the creation of parallel applications, is also organized.

    The OpenCL 3.0 specification has been introduced
  • For translating OpenCL through the Vulkan API, a compiler has been proposed clspv, which transforms OpenCL kernels into Vulkan SPIR-V representation, and a layer clvk to ensure the functioning of the OpenCL API over Vulkan.

    The OpenCL 3.0 specification has been introduced

Source: opennet.ru

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