AMD Making Progress On HMM-Based SVM Memory Manager For Open-Source Compute
This week AMD engineers published their initial code for the AMDGPU/AMDKFD Linux kernel driver for providing a Heterogeneous Memory Management based Shared Virtual Memory (SVM) memory manager that ultimately will be used by their ROCm compute stack.
Linux's HMM implementation came together over the years and of the interest to many vendors. HMM allows for GPU discrete video memory and other (non-conventional) device memory to be integrated into regular code paths and allowing memory pointers to work across devices / memory address spaces. HMM is a key piece of the Linux handling for heterogeneous computing not only around GPUs but also with FPGAs and DSP in mind, among other possible devices.
NVIDIA has been open with working on their HMM support and interest for Nouveau as well as their proprietary stack. AMD also talked up HMM support while this week saw the initial code drop for their HMM-based SVM memory manager implementation for their AMDKFD compute driver that is part of AMDGPU.
This code is still in early form and has some big items still to be addressed like failing to work when IOMMU is enabled and the performance currently being subpar, but at least it's in a state for initial code review and feedback.
Ultimately this new SVM memory manager will be interfaced with by their ROCm compute stack in user-space to which they already have preliminary code written for interfacing with the memory manager.
Those curious about this new memory management work in its current form can see this mailing list thread with the nearly five thousand lines of new kernel device code.
Linux's HMM implementation came together over the years and of the interest to many vendors. HMM allows for GPU discrete video memory and other (non-conventional) device memory to be integrated into regular code paths and allowing memory pointers to work across devices / memory address spaces. HMM is a key piece of the Linux handling for heterogeneous computing not only around GPUs but also with FPGAs and DSP in mind, among other possible devices.
NVIDIA has been open with working on their HMM support and interest for Nouveau as well as their proprietary stack. AMD also talked up HMM support while this week saw the initial code drop for their HMM-based SVM memory manager implementation for their AMDKFD compute driver that is part of AMDGPU.
This code is still in early form and has some big items still to be addressed like failing to work when IOMMU is enabled and the performance currently being subpar, but at least it's in a state for initial code review and feedback.
Ultimately this new SVM memory manager will be interfaced with by their ROCm compute stack in user-space to which they already have preliminary code written for interfacing with the memory manager.
Those curious about this new memory management work in its current form can see this mailing list thread with the nearly five thousand lines of new kernel device code.
10 Comments