Final specifications for OpenCL 3.0 have been published.

The Khronos Group, which is responsible for developing specifications for the OpenGL, Vulkan, and OpenCL families, announced has published the final specifications OpenCL 3.0, which define the API and language extensions for organizing cross-platform parallel computations using multi-core 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 fully open and does not require licensing fees.

Simultaneously has been published an open OpenCL SDK with tools, examples, documentation, header files, C++ bindings, and C libraries for developing applications compatible with OpenCL 3.0. Additionally, it has been presented an initial implementation of OpenCL 3.0 based on the Clang compiler, which is currently under review for patches to be included in the main LLVM body. Companies such as IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments, and Toshiba participated in the standard's development.

Final specifications for OpenCL 3.0 have been published.

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.
    Final specifications for OpenCL 3.0 have been published.
  • 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.

    Final specifications for OpenCL 3.0 have been published.
  • 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.

    Final specifications for OpenCL 3.0 have been published.

Source: opennet.ru

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