OpenCL-Over-Vulkan Could Be Here Soon
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.
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.
10 Comments