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


Pg_lakehouse Makes PostgreSQL Quack
08/07/2024

Pg_Lakehouse from ParadeDB is an extension that turns PostgreSQL into the analytical engine of DuckDB. Why is that useful? How do you use it?



Does AI Copy Code - Lawsuit Says No
10/07/2024

Are we worried about AI code assistants? Well some of us were worried and offended enough to take GitHub/ Microsoft and Open AI to court over code copying by GitHub Copilot. But the judge came down on [ ... ]


More News

kotlin book

 

Comments




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

Last Updated ( Friday, 01 May 2020 )