OpenCL 3.0 Bringing Greater Flexibility, Async DMA Extensions
OpenCL 3.0 is being released today in provisional form. OpenCL 3.0 is making OpenCL 2.x functionality now optional to make it better suited for a range of devices plus there is new functionality introduced like subgroups, extensions for asynchronous data copies, and more.
We have known since 2018 that OpenCL-Next would be catered towards a diverse ecosystem and more modular. With OpenCL 3.0 that indeed has happened. OpenCL 3.0 makes optional all functionality past OpenCL 1.2. In other words, OpenCL 1.2 applications can run unchanged on OpenCL 3.0 devices and all CL 2.x functionality can be queried for given language features. The minimum viable porting of an OpenCL 1.2 driver to OpenCL 3.0 basically amounts to reporting the new version and handling queries to report new functionality as missing along with some minor entry point changes.
With making CL2 changes optional, this will work out well for embedded use-cases and other new accelerators coming to market. Additionally, it will allow NVIDIA to finally support the modern OpenCL specification with their proprietary driver. NVIDIA hadn't supported OpenCL 2.x in their driver in full due to not supporting SVM as needed by the OpenCL spec, but now that it's optional, that roadblock is avoided.
With making OpenCL 2.x features optional in OpenCL 3.0 and allowing it all to be queried by the client code, The Khronos Group is really looking to position OpenCL 3.0 to be applicable across the ecosystem from not only CPUs and GPUs but FPGAs, DSPs, AI/tensor hardware, and other custom accelerators.
In addition to subgroups and async DMA / data copies extensions, SPIR-V 1.3 is also brought into core with OpenCL 3.0. Areas still being explored for OpenCL are greater Vulkan interop, recordable command buffers, machine learning primitives, device topology improvements, and other possible extensions.
The next post-3.0 OpenCL will work on incorporating the pervasive functionality into core and allow for flexible profiles and a possible layered profile approach.
Look for more OpenCL 3.0 information to become available this morning on Khronos.org.
If you enjoyed this article consider joining Phoronix Premium to view this site ad-free, multi-page articles on a single page, and other benefits. PayPal or Stripe tips are also graciously accepted. Thanks for your support.