Live data from Hacker News

LibVF.IO: Add support for GPU Virtual Machine (GVM)

arccompute.com

21–30 of 57 posts

Re: LibVF.IO: Add support for GPU Virtual Machine (GVM)

#21

What are the practical use cases for this?

Practical use would be rather niche. For instance easy splitting resources of single GPU between multiple VMs if you want to run isolated instances of ML software. Or if you're need to run automated tests for your game across different OS. Or tests for any software that use GPU acceleration.

In reality most users of VFIO passthrough use it for gaming or creating multiseat systems. I guess it's will be true for vGPU feature too.

Re: LibVF.IO: Add support for GPU Virtual Machine (GVM)

#22

What are the practical use cases for this?

For my use I tend to run a high performing Windows VM (very good with most games and other GPU accelerated programs - even chrome/adobe these days uses the GPU) inside Linux.

This can also be used for various high assurance use cases such as OpenXT / QubesOS (security by compartmentalization). For example a laptop computer being used by an automotive company for CAD to keep their information safe from other programs on the system (like a browser in another VM) the prying eyes of competitors. I made a video of that here:

https://news.ycombinator.com/item?id=32585333

We have also been working on something called "LIME Is Mediated Emulation" which is a Win64 binary compatibility layer similar to WINE but using vGPUs. You can read about that here:

https://openmdev.io/index.php/LIME_Is_Mediated_Emulation

Re: LibVF.IO: Add support for GPU Virtual Machine (GVM)

#24
post #21

What are the practical use cases for this?

Practical use would be rather niche. For instance easy splitting resources of single GPU between multiple VMs if you want to run isolated instances of ML software. Or if you're need to run automated tests for your game across different OS. Or tests for any software that use GPU acceleration. In reality most users of VFIO passthrough use it for gaming or creating multiseat systems. I guess it's will be true for vGPU f…

There are also some benefits in load balancing GPUs. For instance processes can be controlled with controlled groups (cgroups) and niceness/thread affinity to make sure scheduling / resource allocation is done equitably between processes on the system. Using GVM and 'app VMs' it is possible to do similar things with the GPU (restrict GPU processes to a user configurable slice of the GPU so it cannot deny service to other processes on the system which are also using the GPU):

https://openmdev.io/index.php/Mdev-GPU#fbLen

Since this type of load balancing was originally used in the datacenter where virtual machine multi-tenancy was the use case the Quality of Service (QoS) functions here are fairly robust.

Re: LibVF.IO: Add support for GPU Virtual Machine (GVM)

#25
post #23

I really want this to work on AMD hardware.

I hope I can work with them some time to improve support! I outlined a few things they would need to do to help support GVM using the amdgpu driver on this page:

https://openmdev.io/index.php/AMDGPU

Ideally some folks who know about amdgpu might consider helping our open source community by adding similar information to that page to the information we added on the Nvidia Open Kernel Modules page:

https://openmdev.io/index.php/OpenRM

If that could be done then we would do our best to add in AMD support to GVM.

Re: LibVF.IO: Add support for GPU Virtual Machine (GVM)

#26

What are the practical use cases for this?

For my use I tend to run a high performing Windows VM (very good with most games and other GPU accelerated programs - even chrome/adobe these days uses the GPU) inside Linux. This can also be used for various high assurance use cases such as OpenXT / QubesOS (security by compartmentalization). For example a laptop computer being used by an automotive company for CAD to keep their information safe from other programs…

This is beautiful, you're doing the Lord's work. I absolutely loathe the current situation of MAC security being so complicated on desktops combined with graphical performance issues in compartmentalization. And surely a lot of folks are also stuck on a certain OS because GPU performance in VMs is terrible. This is very much needed.

Re: LibVF.IO: Add support for GPU Virtual Machine (GVM)

#27

What are the practical use cases for this?

While less for general consumer use (honestly most consumers don't use CPU virtualiztion either), this has strong potential in VDI applications. Today with CPU virtualization available everywhere one inexpensive machine can host many VMs all sharing common processing power. If GPU virtualization gains traction this could mean we could be doing the same with GPUs but in an open manner (currently vGPUs are only avaliable in expensive datacenter GPUs and the tech is proprietary). Personally I would like to go with full VDI at home if inexpensive vGPU tech was available - though I guess I'm not the average home user.

Re: LibVF.IO: Add support for GPU Virtual Machine (GVM)

#29

Hey, I'm the co-creator of LibVF.IO and the GVM project. I'd love to hear what you think about our latest release where we added support for GVM components in LibVF.IO. Side note: We also added in support for Libvirt by allowing users to install standalone GVM components via ./scripts/install-standalone-gvm-components.sh.

https://github.com/Arc-Compute/LibVF.IO

https://docs.linux-gvm.org/

For anybody else interested

Re: LibVF.IO: Add support for GPU Virtual Machine (GVM)

#30
post #20

Can I use this to with an AMD APU, like the graphics on a Ryzen ?

Unfortunately there is limited support on AMD. I would like to try to make it better though! https://openmdev.io/index.php/GPU_Support

What's one of the biggest things AMD could go to help you turn this into a reality? Just... documentation? Source code examples?

Which... I'm assuming they'll never do?

Post reply on HN