The Khronos Group finalized the specifications for the OpenCL 2.2 standard that allows developers to handle compute-heavy tasks by leveraging a system's CPU and GPU together. Further, in an effort to encourage more contributions to the standard, the Khronos Group released the full specs and conformance tests on GitHub for the first time. That access to the standard's inner workings should allow devs to see how it might be improved.
OpenCL is supported by everyone from Nvidia and AMD to Apple and Intel. Each company explains the standard in its own way--Nvidia described (opens in new tab) it as a "low-level API for heterogeneous computing that runs on CUDA-powered GPUs"--but the most basic overview comes from Apple, which said (opens in new tab) devs can "use OpenCL to incorporate advanced numerical and data analytics features, perform cutting-edge image and media processing, and deliver accurate physics and AI simulation in games." That flexibility, combined with the rise of dedicated GPUs, makes OpenCL quite popular in many apps.
Here's what the Khronos Group said about version 2.2 of the standard:
By finalizing OpenCL 2.2, Khronos has delivered on its promise to make C++ a first-class kernel language in the OpenCL standard,” said Neil Trevett, OpenCL chair and Khronos president. “The OpenCL working group is now free to continue its work with SYCL, to converge the power of single source parallel C++ programming with standard ISO C++, and to explore new markets and opportunities for OpenCL — such as embedded vision and inferencing. We are also working to converge with, and leverage, the Khronos Vulkan API — merging advance graphics and compute into a single API.
The last section of that statement might be the most interesting. Embedded vision and inferencing--which is when AI applies things it's learned from one data set to another--have become increasingly important to AI-focused companies. (Which is at this point seemingly every major tech company.) Nvidia and Google have engaged in a public battle to say they've developed the best inferencing hardware, and Nvidia's Volta GPU architecture debuted with the Tesla V100, the standout feature of which is a "Tensor Core" meant to help it outperform its predecessors with deep learning applications.
Now it seems the Khronos Group wants OpenCL to help these companies reach their machine learning goals. The group's note about OpenCL converging with the Vulkan API is also interesting. Vulkan is a low-level graphics API that debuted in 2015 and has since been added to game engines like Unity, popular titles like Doom, and everything from the Nintendo Switch console to the latest graphics drivers and utilities from Nvidia and AMD. The Khronos Group said at GDC 2017 that Vulkan's only expected to become more popular as other companies rush to support the API.
Merging OpenCL and Vulkan could make it easier for devs to create even better-performing apps or games. We'll have to keep an eye out as they come closer to convergence. In the meantime, you can check out pretty much everything you need to know about OpenCL 2.2 on GitHub.