NVIDIA Posts Patches For SVM Atomics Support With Open-Source Nouveau
NVIDIA has in the past posted Nouveau patches pertaining to Shared Virtual Memory (SVM) and Heterogeneous Memory Management (HMM). Their proprietary driver has been implementing bits of HMM and other new Linux kernel interfaces while with NVIDIA providing relevant pieces to Nouveau allows for demonstrating an open-source "client" / user of new code for satisfying upstream requirements. But Red Hat has also been actively working on improving the OpenCL/compute support for Nouveau too for some interesting reasons. So long story short, in the area of GPU compute is where NVIDIA has -- and continued -- volleying open-source patches.
The new patches out of NVIDIA on Monday is for allowing atomic memory operations on OpenCL Shared Virtual Memory. This relies upon atomic page table entries (PTE) support from the GPU and introducing new pin/unmap support for HMM.
NVIDIA has tested the SVM atomics support with the Nouveau Mesa code by having a simple OpenCL program that checks the results of atomic GPU operations on a buffer while writing to that buffer from the CPU.
There still are some items left to be buttoned up with this SVM atomics code for Nouveau but the current Linux kernel code can be found via the kernel mailing list.