OpenCL 3 Takes Step Back
Written by Kay Ewbank   
Friday, 01 May 2020

The Khronos Group has announced OpenCL 3.0, the latest version of its open framework for programming GPUs and other compute accelerators.

OpenCL was originally developed by Apple, and aimed to create a common API for parallel programming. It has been used for a wide range of purposes from embedded processors and DSPs up to powerful GPUs. Its popularity is not as high as it used to be, though. Apple has moved to its own Metal API, and Nvidia uses its own CUDA API.

opencl

Perhaps in view of this, the main changes to the latest release are to remove features in the hope the new version will be more widely adopted.

Khronos says that:

"to cater to a widening diversity of OpenCL devices, OpenCL 3.0 makes all functionality beyond version 1.2 optional."

All OpenCL 1.2 applications will continue to run unchanged on any OpenCL 3.0 device. All OpenCL 2.X features are coherently defined in the new unified specification, and current OpenCL 2.X implementations that upgrade to OpenCL 3.0 can continue to ship with their existing functionality with full backwards compatibility. All OpenCL 2.X API features can be queried, and OpenCL C 3.0 adds macros for querying optional language features. What this means is that vendors will no longer have to support every OpenCL feature, so if there are some features that aren't relevant for their platform, they can just ignore them.

Khronos says it is 'realigning the OpenCL roadmap  to enable developer-requested functionality to be broadly deployed by hardware vendors". OpenCL 3.also integrates subgroup functionality into the core specification, ships with a new OpenCL C 3.0 language specification, uses a new unified specification format, and introduces extensions for asynchronous data copies to enable a new class of embedded processors.

For C++ kernel development, the OpenCL Working Group has moved from the original OpenCL C++ kernel language, defined in OpenCL 2.2, to the ‘C++ for OpenCL’ community, open-source project supported by Clang. C++ for OpenCL provides compatibility with OpenCL C, enables developers to use most C++17 features in OpenCL kernels, and is compatible with any OpenCL 2.X or OpenCL 3.0 implementation that supports SPIR-V™ ingestion. 

opencl

More Information

Open CL 

Related Articles

Updates to OpenGL and OpenCL

Apple Drops OpenGL and OpenCL

OpenGL And ES Updated

OpenGL Faster Than DirectX - Or Is It?

Open CL in Action (book review) 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


Stack Overflow On Google Cloud
06/03/2024

Stack Overflow and Google Cloud have announced a partnership to deliver new gen AI-powered capabilities to developers through the Stack Overflow platform, Google Cloud Console, and Gemini for Google C [ ... ]



Call For Code 2024 Focuses On Generative AI
01/03/2024

This year's Call for Code challenge has been launched with a theme of the use of generative AI technology for solutions that aim to improve equitable access to resources and opportunities for historic [ ... ]


More News

raspberry pi books

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Friday, 01 May 2020 )