AMD releases open-source GIM driver aimed at GPU virtualization, support for mainstream Radeon GPUs coming later

AMD
(Image credit: AMD)
7

In continued efforts to open-source its software stack, AMD has made its GIM driver open-source for developers, according to Phoronix. The driver is used for virtualization with AMD's Instinct accelerators, but could be coming to Radeon desktop GPUs in the future, according to an AMD roadmap.

The AMD GPU-IOV (GIM) driver enables the various functions needed to ensure full virtualization support for the host GPU.

Latest Videos FromTom's Hardware
Aaron Klotz
Contributing Writer

Aaron Klotz is a contributing writer for Tom’s Hardware, covering news related to computer hardware such as CPUs, and graphics cards.

  • TJ Hooker
    If this pans out for consumer cards, it could be pretty handy for any Linux users with AMD GPUs who have GPU-intensive apps (like games) that don't work well under Linux. AFAIK the functionality being discussed here would let you get the near-native performance of doing full GPU-passthrough into a Windows VM, without the usual drawback of having to give the VM exclusive access to the GPU (meaning you have no display from the host unless you have a 2nd GPU).
    Reply
  • palladin9479
    People need to comprehend how huge this is. Currently the only way to do GPU virtualization is to buy very expensive datacenter GPU's then load the driver within the hypervisor. It's not that desktop GPU's can't do virtualization, it's that there is no driver that supports it since both were closed source blackbox. Now with AMD open sourcing their driver that will make cheap virtualization possible.
    Reply
  • DS426
    Awesome! Good call, AMD. The sooner they can support and publish the documentation going all the way down to the consumer GPU's, the better.
    Reply
  • palladin9479
    Deleted member 2824971 said:
    I'm not sure I follow.
    PCI pass-through and GPU virtualization are entirely different things. PCI pass-through just passes a physical port into a VM. GPU virtualization is when you do GPU HW acceleration inside VMs by using a host GPU. Currently this is only possible with expensive data center GPUs because there is no hypervisor driver for consumers GPUs that supports this.

    We have hundreds of VDI desktops with virtualizated GPUs by putting a bunch of A100s in our APEX stack.
    Reply
  • palladin9479
    Deleted member 2824971 said:
    Perhaps you can enlighten us on how this works in your environment and what exactly the VMs get to see in terms of virtual hardware?

    In the case of the A40s each VM is a Windows desktop complete with full DX11 3D acceleration. This is used to provide acceleration to a host of applications that are designed to run on real GPUs.

    https://www.nvidia.com/en-us/drivers/vgpu-software-driver/
    Inside vmware we installed the nvidia vGPU drivers then configured Horizon to spin the desktops with the appropriate Windows vGPU driver.

    Currently the only vGPU drivers that exist are for data center GPUs. Installing a commodity 4080 or 9070 XT into a server won't matter because there is no hypervisor vGPU driver nor a guest vGPU driver that could use it. AMD releasing theirs open source means the FOSS community can find ways to incorporate commodity AMD GPUs into it allowing for cheap desktop virtualization.

    I had to look up our system RQ and I believe we are using A40 cards. They are the server headless add in GPUs. Here's is the documentation for driver support.

    https://docs.nvidia.com/vgpu/13.0/grid-vgpu-release-notes-vmware-vsphere/index.html
    Reply
  • TJ Hooker
    palladin9479 said:
    PCI pass-through and GPU virtualization are entirely different things. PCI pass-through just passes a physical port into a VM. GPU virtualization is when you do GPU HW acceleration inside VMs by using a host GPU. Currently this is only possible with expensive data center GPUs because there is no hypervisor driver for consumers GPUs that supports this.
    palladin9479 said:
    Currently the only vGPU drivers that exist are for data center GPUs. Installing a commodity 4080 or 9070 XT into a server won't matter because there is no hypervisor vGPU driver nor a guest vGPU driver that could use it. AMD releasing theirs open source means the FOSS community can find ways to incorporate commodity AMD GPUs into it allowing for cheap desktop virtualization.
    PCIe passthrough gets you GPU HW acceleration within the VM, on regular hardware with regular drivers. E.g. for my RX 6600, I pass it through to the VM, then install the regular AMD desktop graphics drivers from within the guest OS. Running ubuntu with the standard amdgpu driver on the host.
    Reply
  • palladin9479
    TJ Hooker said:
    PCIe passthrough gets you GPU HW acceleration within the VM, on regular hardware with regular drivers. E.g. for my RX 6600, I pass it through to the VM, then install the regular AMD desktop graphics drivers from within the guest OS. Running ubuntu with the standard amdgpu driver on the host.

    vGPU is not PCI pass through, it's quite literally virtualized GPU's inside guest OS's instead of the emulated SVGA video card that normally gets made. This means you can run multiple desktop OS's with GPU's running at full speed. Or you can run a regular desktop OS and have something like VMWare or VirtualBox and have a vGPU inside that runs on your host GPU at full speed.
    Reply