Announcement

Collapse
No announcement yet.

HMM Gets New Features/Improvements, Nouveau Support Aligned For Linux 5.1

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • HMM Gets New Features/Improvements, Nouveau Support Aligned For Linux 5.1

    Phoronix: HMM Gets New Features/Improvements, Nouveau Support Aligned For Linux 5.1

    Jerome Glisse of Red Hat has spent the past few years devoted to Heterogeneous Memory Management (HMM) that continues stepping towards taking on bigger roles within the Linux kernel. With the upcoming Linux 5.1 kernel cycle there are slated to be more additions to this code, which is the backbone of allowing the mirroring of process address spaces, system memory to be transparently used by any device process, and other functionality for GPU computing and other modern PCIe devices...

    http://www.phoronix.com/scan.php?pag...1-HMM-Material

  • #2
    Also exciting about the Linux 5.1 plans is that Jerome will try to merge the Nouveau HMM patches for the open-source NVIDIA driver. HMM patches for Nouveau have been around for a while as one of the early open-source users to this code but come the next kernel cycle the work should be merged. The Nouveau work includes shared virtual memory (SVM) and a new ioctl to allow migrating process memory to GPU memory.
    This is really interesting.

    I didn't know about SVM. I looked into it and found this:
    https://software.intel.com/en-us/art...emory-overview

    Presumably this SVM feature of Nouveau is exposed via the OpenCL API.

    The whole intel article above, is good but the opening paragraphs explain it well:
    Note: I think you can read "device" as "graphics card" or "compute card".

    One of the remarkable features of OpenCLâ„¢ 2.0 is shared virtual memory (SVM). This feature enables OpenCL developers to write code with extensive use of pointer-linked data structures like linked lists or trees that are shared between the host and a device side of an OpenCL application. In OpenCL 1.2, the specification doesn't provide any guarantees that a pointer assigned on the host side can be used to access data in the kernel on the device side or vice versa. Thus, data with pointers in OpenCL 1.2 cannot be shared between the sides, and the application should be designed accordingly, for example, with indices used instead of pointers. This is an artifact of a separation of address spaces of the host and the device that is addressed by OpenCL 2.0 SVM.
    OpenCL 2.0 SVM enables the host and device portions of an OpenCL application to seamlessly share pointers and complex pointer-containing data-structures. Moreover, as described in this article, SVM is more than just about shared address space. It also defines memory model consistency guarantees for SVM allocations. This enables the host and the kernel sides to interact with each other using atomics for synchronization, like two distinct cores in a CPU. This is an important addition to OpenCL 2.0's shared address space support and is targeted to fulfill the needs of developers who need tighter synchronization between the host and the device beyond enqueuing commands onto an OpenCL queue and synchronizing through events.
    Red Hat are really working hard on Nouveau. This must be more than just a fun play-around project for them. They are a business. They must have a long term plan for NVIDIA hardware and Nouveau which is justifying all this awesome work.

    It might be that they want old NVIDIA hardware to work well with Nouveau so it can be used for educational purposes. It might be that they want to create a super stable foundation with Nouveau, to attract NVIDIA to provide them documentation and legally-usable firmware for reclocking so they can actually make NVIDIA hardware perform well with Nouveau.

    Comment


    • #3
      Originally posted by cybertraveler View Post
      Red Hat are really working hard on Nouveau. This must be more than just a fun play-around project for them. They are a business.
      yes, they are. nouveau is just example user to push it to kernel, real user is nvidia blob

      Comment


      • #4
        Wasn't Nvidia's excuse for not supporting OpenCL 2.0+ that their hardware couldn't support SVM?

        Comment

        Working...
        X