SPIR-V Clover Support Might Still Land For Mesa 19.0, Working Towards Nouveau OpenCL
One of the major open-source GPU compute driver initiatives going the past year has been the Red Hat folks working on adding Nouveau SPIR-V support as part of allowing GPU compute to work for this open-source NVIDIA driver. By longtime Nouveau contributor Pierre Moreau has also been work on adding SPIR-V support to Clover, the Gallium3D OpenCL state tracker.
The Nouveau developer has been adding SPIR-V support to Clover so that this OpenCL state tracker can accept this Khronos intermediate representation as a valid input. The work also allows converting this SPIR-V to LLVM IR so that it can be consumed by Gallium3D drivers already leveraging LLVM IR.
As part of this work he's also updated headers against OpenCL 2.2, cleaning up various bits of the code, and other improvements. Still though Clover is currently only at OpenCL 1.1 support officially, but at least being able to consume the modern SPIR-V intermediate representation. This is a step towards allowing Nouveau to be able to handle OpenCL kernels.
Pierre sent out the 20 latest patches today in their tenth revision to the Mesa mailing list for review. 17 of the 20 patches already received review by other developers but the SPIR-V to LLVM translator and clCreateProgramWithILKHR patches are among the work still left to get signed off. Pierre expressed interest in seeing this code merged for Mesa 19.0, which will be branching at the end of January.
Nouveau has the main potential for OpenCL right now with the old Radeon Clover code not being actively worked on due to AMD's focus on the separate ROCm effort for newer GPUs and Intel seeing its Iris Gallium3D driver developed but they already have a more featureful OpenCL implementation in the form of NEO. Clover though may help out in the future for the likes of VC4/V3D and Freedreno when those developers have time to explore OpenCL compute.
The Nouveau developer has been adding SPIR-V support to Clover so that this OpenCL state tracker can accept this Khronos intermediate representation as a valid input. The work also allows converting this SPIR-V to LLVM IR so that it can be consumed by Gallium3D drivers already leveraging LLVM IR.
As part of this work he's also updated headers against OpenCL 2.2, cleaning up various bits of the code, and other improvements. Still though Clover is currently only at OpenCL 1.1 support officially, but at least being able to consume the modern SPIR-V intermediate representation. This is a step towards allowing Nouveau to be able to handle OpenCL kernels.
Pierre sent out the 20 latest patches today in their tenth revision to the Mesa mailing list for review. 17 of the 20 patches already received review by other developers but the SPIR-V to LLVM translator and clCreateProgramWithILKHR patches are among the work still left to get signed off. Pierre expressed interest in seeing this code merged for Mesa 19.0, which will be branching at the end of January.
Nouveau has the main potential for OpenCL right now with the old Radeon Clover code not being actively worked on due to AMD's focus on the separate ROCm effort for newer GPUs and Intel seeing its Iris Gallium3D driver developed but they already have a more featureful OpenCL implementation in the form of NEO. Clover though may help out in the future for the likes of VC4/V3D and Freedreno when those developers have time to explore OpenCL compute.
6 Comments