OpenCL-Over-Vulkan Could Be Here Soon

Written by Michael Larabel in Vulkan on 21 June 2017 at 09:59 AM EDT. 10 Comments
VULKAN
Khronos members have been working on code that could allow OpenCL code to be converted for execution by Vulkan drivers.

Coming out publicly on the LLVM developers' list while continuing to discuss SPIR-V support in LLVM, is a currently internal and not yet open-source project by Khronos stakeholders in allowing for "OpenCL over Vulkan". This isn't directly what was talked about with Vulkan potentially succeeding OpenCL in the future but rather is a software project for allowing OpenCL code to be executed directly by Vulkan drivers.

I noticed in this mailing list series these interesting comments, "Khronos members are already working on writing backend for llvm that retarget SPIR-V, for example, taking LLVM-IR compiled from OpenCL and targeting this at something that can accept Vulkan." When the ARM developer was asked about such code, he replied, "The OpenCL over Vulkan work I mentioned is not yet open sourced but I believe the intention is to do so "soon"."

It will be interesting to see what all this entails and its capabilities -- e.g. if it will have full OpenCL 2.1+ support, etc. As an open-source project this could be a big win for many out there -- especially if the emitted Vulkan/SPIR-V support will work with RADV and ANV drivers. Radeon's Clover OpenCL driver is unmaintained and only supports OpenCL ~1.1 while their newer ROCm stack supports OpenCL 1.2 but with OpenCL 2.0 runtime support. While the ROCm OpenCL stack was recently open-sourced, it's not yet all mainlined in the respective trees and not widely available on most Linux distributions. It will probably be months before this ROCm OpenCL stack is more common on conventional Linux desktops. Intel's Beignet OpenCL supports OpenCL 2.0 but isn't shipped by default on many distributions. If this OpenCL-over-Vulkan is in good shape, it could be a good boost for OpenCL adoption. Via GSoC this summer is also work on a CPU-based Vulkan software renderer that in turn if that succeeds to could potentially allow for a nice open-source OpenCL implementation on the CPU via Vulkan and an alternative to POCL.

Interesting times ahead.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week