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


Random Gifts For Programmers
24/11/2024

Not really random. Not even pseudo random, more stuff that caught my attention and that I, for one, would like to be given. And, yes, if I'm not given them, I'd probably buy some for myself.



JetBrains Improves Kubernetes Support In IDE Upgrades
12/11/2024

JetBrains has improved its IDEs with features to suggest the logical structure of code, to streamline the debugging experience for Kubernetes applications, and provide comprehensive cluster-wide Kuber [ ... ]


More News

espbook

 

Comments




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

Last Updated ( Friday, 01 May 2020 )