AMD releases open-source GIM driver aimed at GPU virtualization, support for mainstream Radeon GPUs coming later
Tiny Corp's prodding has paid off.
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.
Currently, the GIM driver is compatible exclusively with the Instinct MI300X running on Ubuntu 22.04 LTS and using ROCm 6.4.
There is no information on when compatibility will expand or when AMD's open-source GIM driver will make its way into the mainline Linux kernel. The only detail given on the GIM driver's future is the upcoming support for Radeon desktop GPUs.
Regardless, it's a start. AMD is pushing forward with its open-sourcing plans for its software stack, something it has only seriously started doing this month. This push was initially started back in February when performance computing provider Hot Aisle lit a fire under AMD to start focusing on developers and making its hardware more accessible to AI devs.
This led to AMD finally broadening its AMD developer credit program, and giving devs a chance to try AMD's MI300X and Dell hardware for free.
Later, AMD started focusing on making its software open-source after AI hardware company Tiny Corp started pushing AMD to do so. Tiny Corp was having trouble adapting AMD's datacenter GPUs to its "TinyBox" servers, noting the GPUs were not behaving as they should. Having open-source software, firmware, and drivers would have enabled the server manufacturer to rectify these issues and customize AMD's datacenter GPUs to suit their needs.
The GIM driver is one of AMD's first drivers to be made open-source. The company has also confirmed it is making its Micro Engine Scheduler (MES) open-source, but documentation and source code for that won't be released until late May.
Follow Tom's Hardware on Google News to get our up-to-date news, analysis, and reviews in your feeds. Make sure to click the Follow button.
Get Tom's Hardware's best news and in-depth reviews, straight to your inbox.
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 Reply
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.Deleted member 2824971 said:I'm not sure I follow.
We have hundreds of VDI desktops with virtualizated GPUs by putting a bunch of A100s in our APEX stack. -
palladin9479 ReplyDeleted 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 -
TJ Hooker Replypalladin9479 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.
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.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. -
palladin9479 ReplyTJ 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.