Shared Virtual Memory Lands In Mesa Gallium3D's "Clover" OpenCL Implementation

Written by Michael Larabel in Mesa on 15 April 2020 at 03:00 PM EDT. 9 Comments
After being in code review the past half-year, support for Shared Virtual Memory (SVM) within Gallium3D's "Clover" OpenCL state tracker was just merged for Mesa 20.1.

Shared Virtual Memory is one of the requirements of OpenCL 2.0 and allows for sharing pointers and other data structures more seamlessly between the host and GPU/device. This shared address space / virtual memory between the host and device also provides for better memory model consistency, among other improvements.

Red Hat's Karol Herbst has been working on this Clover SVM support as part of the Red Hat effort on improving the open-source NVIDIA GPU compute capabilities with Mesa. Funny enough, the lack of Shared Virtual Memory support by NVIDIA's proprietary graphics driver has been one of the reasons it's been left behind at OpenCL 1.2.

The Clover SVM support was merged today as a step forward for this Mesa OpenGL implementation. However, Clover does not yet have full OpenCL 2.0 capabilities and the usual caveats apply that this is focused on the Nouveau driver stack, AMD no longer supports Clover for their driver stack, and even on Nouveau the compute performance at this point will be rather limited until the big re-clocking obstacle is sorted out for Maxwell and later GPUs.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of 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 automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via

Popular News This Week