PoCL 3.1-RC1 Released With Improved SPIR-V Support For CPU & CUDA Drivers, Vulkan WIP
With PoCL 3.1-RC1 released on Tuesday there is now "much improved" SPIR-V support for both the CPU and CUDA driver targets. Another notable change with PoCL 3.1 is adding support for the recently released LLVM/Clang 15 compiler stack.
PoCL 3.1-RC1 also contains a major rework to its custom device driver, a lot of work on a work-in-progress Vulkan driver, and basic support for cl_khr_command_buffer.
Yes, PoCL is working on a Vulkan driver for allowing OpenCL to run atop the Vulkan API -- there are various other OpenCL-on-Vulkan implementations around like CLVK, using Mesa's Rusticl atop Zink for Vulkan driver consumption, and others. PoCL is working on joining the party too with its own driver implementation for Vulkan.
This incomplete Vulkan driver for PoCL relies on libvulkan and clspv and has been tested against the open-source Mesa Vulkan drivers thus far. The driver currently implements most of the Vulkan 1.2 API while not yet working is OpenCL image support, no caching of command buffers, and other missing elements. See this documentation page for more details on the current PoCL-Vulkan status.
Those wanting to help in testing PoCL 3.1-RC1 can find the source code up on GitHub. Learn more about this portable OpenCL implementation in general at PortableCL.org.