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.


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. 


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.


Google Introduces JPEG Coding Library

Google has introduced Jpegli, an advanced JPEG coding library that maintains high backward compatibility while offering enhanced capabilities and a 35% compression ratio improvement at high quality co [ ... ]

JetBrains Launches IDE Services

JetBrains has launched a new product suite for enterprises. JetBrains IDE Services is designed for use by large organizations with the aim of boosting developer productivity at scale.

More News

raspberry pi books



or email your comment to:

Last Updated ( Friday, 01 May 2020 )