Red Hat engineer Karol Herbst who continues persevering with the Rusticl Rust-based OpenCL driver for Mesa has an exciting late Christmas present on the way… He’s been hacking on Shared Virtual Memory (SVM) support for Rusticl that works across GPU vendor drivers/hardware.
Karol Herbst posted to Mastodon on Friday:
“Soo.. I think I’ve implemented SVM in rusticl properly and the supported drivers are iris (Intel), radeonsi (AMD) and llvmpipe (CPU).
This also means you can have a context with Intel and AMD GPUs in them and SVM works properly across them all.
Which also means this is the first OpenCL implementation supporting SVM across vendors? Are there any others?
Just need to clean up that mess and merge it tho.”
As of writing the Mesa merge request has yet to be opened, but in any event the SVM prospects for Rusticl are very exciting and especially that can work across GPUs/drivers.
Shared Virtual Memory with OpenCL allows for sharing between the host and device side of an OpenCL application with pointers and pointer-containing data structures now working seamlessly. SVM was a mandate with OpenCL 2.0 and originally one of the pain points for the NVIDIA driver stack. In addition to the shared virtual address space there are a number of other features opened up by SVM support around atomics / synchronization and more.
Exciting to see this SVM support coming for Rusticl and we’ll see if it manages to land in time for the Mesa 25.0 release this quarter.