OpenCL and Vulkan to be merged into single API

Posted on Friday, May 19 2017 @ 6:00 CEST by Thomas De Maesschalck
Khronos logo
A statement tucked away in a recent press release about OpenCL 2.2 reveals the Khronos Group is planning to merge OpenCL and Vulkan into a single API for compute and graphics.

A timetable isn't provided but Khronos said it will use Vulkan as the basis for the next-generation of explicit compute APIs. PC Perspective talks about the benefits of this, they say it makes sense to push OpenCL into Vulkan as it seems like the path of least resistance:
The second reason for going in that direction is the actual structure of the APIs. When Mantle was announced, it looked a lot like an API that wrapped OpenCL with a graphics-specific layer. Also, Vulkan isn’t specifically limited to GPUs in its implementation.

Aside: When you create a device queue, you can query the driver to see what type of device it identifies as by reading its VkPhysicalDeviceType. Currently, as of Vulkan 1.0.49, the options are Other, Integrated GPU, Discrete GPU, Virtual GPU, and CPU. While this is just a clue, to make it easier to select a device for a given task, and isn’t useful to determine what the device is capable of, it should illustrate that other devices, like FPGAs, could support some subset of the API. It’s just up to the developer to check for features before they’re used, and target it at the devices they expect.

If you were to go in the other direction, you would need to wedge graphics tasks into OpenCL. You would be creating Vulkan all over again. From my perspective, pushing OpenCL into Vulkan seems like the path of least resistance.


About the Author

Thomas De Maesschalck

Thomas has been messing with computer since early childhood and firmly believes the Internet is the best thing since sliced bread. Enjoys playing with new tech, is fascinated by science, and passionate about financial markets. When not behind a computer, he can be found with running shoes on or lifting heavy weights in the weight room.



Loading Comments