Linux kernel is all set to start managing memory effectively to enhance machine learning developments. A solution called Heterogeneous Memory Management in development to enhance GPU results on certain applications.
The Heterogeneous Memory Management (HMM) lets a device driver mirror the address space for a process. The process is managed by the memory management tool. This upliftment will help a GPU or machine learning application directly access the memory of a process without copying anything.
“HMM is a set of helpers to facilitate several aspects of address space sharing and device memory management. Unlike existing sharing mechanism that relies on pinning pages use by a device, HMM relies on mmu_notifier to propagate CPU page table update to device page table,” Red Hat developer and Linux contributor Jérôme Glisse writes, while explaining the HMM process in a mailing announcement.
Setbacks at the initial stage
HMM was initially planned for Linux systems back in 2014. Red Hat and Nvidia have already been involved as the key developers to include HMM in Linux. However, the lack of kernel support was so far the major setback.
Another obstacle in adding HMM to Linux is the lack of video driver support. Nvidia engineers have started been working towards its fix. Also, AMD is now on board to support the open source movement. But hardware features are limited to Nvidia’s processors as page faults for HMM are so far only supported by Nvidia GPUs.
Having said that, the latest development will boost the speed of libraries of OpenCL and CUDA. These performance improvements will heavily benefit machine learning operations.
[…] Linux is amazingly efficient in the way that it utilizes random access memory (RAM). When you have more RAM than needed to run your applications, Linux can leverage the free space to buffer data. This minimizes how frequently you need to read data from slower file storage, thus improving system performance. When your applications takes up more space than available RAM, Linux can leverage swapping, memory-mapping and other tricks to move data out of RAM to file storage. While system performance takes a hit, this ensures that you can continue to run needed applications despite having insufficient RAM. Soon you will even see additional memory management improvements that are designed to improve machine learning performance. […]