The OS manages all the process VAS. Migrating pages from a physical location to another while maintaining coherency cannot bypass the OS in any way.Not natively, which is what I meant when I said application process. In the case of a Vega APU it should be able to access the memory controller on it's own to migrate pages. No different than a CPU core accessing memory. OS support shouldn't be required, but probably helps. The Nvidia solution required the CUDA runtime, which isn't that different from having the application page in memory as required. Not that different from letting the driver handle memory management. The exception, to my understanding, was the Power8 with NVLink which could handle the operation in hardware. Software vs hardware solutions to the same problem.
Nvidia's solution (apparently) is not as simple as "requiring CUDA runtime". It likely involves an extra level of indirection through the GPU's own 49-bit VAS, which setup mirroring pages from the host VAS dynamically upon page fault in the low 48-bit VAS with the hardware assistance (page fault handling, page migration engine, etc). It cannot work efficiently without GPU hardware support, and the so-called OS support is to enable it for all OS-managed memory. On Linux, apparently it would be enabled through HMM.
AMD is unlikely to have a radically different approach.
Last edited: