[HN Gopher] LibVF.IO: Add support for GPU Virtual Machine (GVM) ___________________________________________________________________ LibVF.IO: Add support for GPU Virtual Machine (GVM) Author : ArcVRArthur Score : 68 points Date : 2022-08-24 17:40 UTC (5 hours ago) (HTM) web link (arccompute.com) (TXT) w3m dump (arccompute.com) | stuaxo wrote: | Can I use this to with an AMD APU, like the graphics on a Ryzen ? | ArcVRArthur wrote: | Unfortunately there is limited support on AMD. I would like to | try to make it better though! | | https://openmdev.io/index.php/GPU_Support | MuffinFlavored wrote: | 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? | ArcVRArthur wrote: | If they would consider helping with the things I mention | here we'd do our best to support them! | | https://news.ycombinator.com/item?id=32585950 | ArcVRArthur wrote: | 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. | gorkish wrote: | To be honest with you I am extremely excited by what you are | working towards, but utterly beyond confusion when it comes to | the GPU virtualization landscape. The walls that vendors have | built in this area in their attempt to artificially segment | "consumer" and "professional" are shameful. NVidia in | particular has been reprehensible. I wish more people cared. | Thank you! | ArcVRArthur wrote: | Thanks for your kind words! We're all virtualization users | ourselves so I definitely get what you mean - we started this | project because we wanted to help people to get access to the | magic at home using the hardware they already have! I will | say though that Nvidia has done a lot towards improving their | support for open source. While it might be a bit of an | uncommon take in my view many of the folks who probably are | most passionate about bringing exciting GPU technology to the | world work at Nvidia. :) | DennisAleynikov wrote: | Gigachad Arthur | MuffinFlavored wrote: | https://github.com/Arc-Compute/LibVF.IO | | https://docs.linux-gvm.org/ | | For anybody else interested | habobobo wrote: | Is it possible to use this for a remote gpu solution somehow? | ArcVRArthur wrote: | That depends on the driver implementation and what exactly the | features are that you are looking for. In general if you're | using virtualization tools like KVM/Xen you can configure a | computer to make virtual machines that can be accessed remotely | (for example you would likely want to configure the network to | provide your machine with an IP address). You can use GVM for | GPU accelerating various programs like those that use DirectX, | Vulkan, and OpenGL so if that meets your needs from a remote | machine and you have the necessary resources (networking | resources such as IP addresses, time and know-how to configure | such a setup) then I would say yes. | lostmsu wrote: | What does it do? Does it let one pass a virtual GPU to the guest | without complete PCI-passthrough? E.g. will I be able to share | host GPU between the host system and guests? | ArcVRArthur wrote: | Ya, that's exactly correct. :) | Melatonic wrote: | What about one GPU with multiple VM? | | Annoying t hing right now is that you have to pony up for the | fancy nvidia cards plus insane nvidia licensing for their | multiGPU virtualized cards. AMD at least makes you only pay | for the hardware but its still super pricey. | ArcVRArthur wrote: | Ya, you can use multiple VMs. Here is a video I took of a | laptop with LibVF.IO and an early pre-release version of | GVM installed - at the start of the video you can see a | fullscreen Windows VM and then I back out and open another | compartmentalized 'app VM' (browser): | | https://streamable.com/gd45bh | | Both VMs are actually based on Windows (one simply doesn't | have explorer.exe running) and each has it's own virtual | GPU attached. | | This laptop has a Nvidia graphics processor inside but it | also works with laptops that have an Xe Intel graphics | processor. I'm hoping at some point it will work well on | AMD too. | kbumsik wrote: | Sounds very interesting! Do VMs work with a display | session (Xorg) too? | | Some GPU-enabled applications require an X server with a | physical HDMI/Displayport attached. | amelius wrote: | How secure is that? Are users of a GPU completely isolated from | eachother? Will there be side-channel attacks possible? | amarshall wrote: | It's mostly up to the specific hardware and its host-side | drivers. I'd say that GPU compute security is a very under- | studied area compared with CPU compute. | synergy20 wrote: | GPU can not even run its own OS basically, it's a parallel co- | processor, when-should/how-could I use it as a VM? | ArcVRArthur wrote: | According to https://docs.linux-gvm.org/ | | "GVM ... may be used in combination with KVM or other platform | hypervisors such as Xen* to provide a complete virtualization | solution via both central processing (CPU) and graphics | processing (GPU) hardware acceleration." | fulafel wrote: | Most current GPUs could, even with the public programming info. | The limitations in interrupt handling would eat into either | functionality or performance somewhat I think. | maldev wrote: | This is pretty cool, one of the killer features that windows has | had with Hyper-V that is really creaming QEMU/KVM. You could | probably try getting some support from a vendor like Red Hat, as | something like this in the Linux Kernel is a huge | datacenter/cloud hosting feature that directly impacts their | bottom line. | ArcVRArthur wrote: | I would love to work with folks like the people at RedHat! | We're working on some new tools in C (GPLv2) which we think | will make it easier to work with existing kernel/driver | maintainers. We'll announce some of those things early next | month and right after we'll be at QubesOS Summit & KVM Forum. I | hope we get the opportunity to talk to some of the RedHat | folks! :) | csdreamer7 wrote: | Do you have a contact where Red Hat people can reach you? | (Not in the VM/Graphics space, but I can try to reach out to | the right people.) | ArcVRArthur wrote: | For sure! They can reach me at arthur@arccompute.io | | I'll also be attending KVM Forum this year so I'd love to | chat with folks there as well! :) | rcarmo wrote: | I really want this to work on AMD hardware. | ArcVRArthur wrote: | 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. | montecarl wrote: | I run Linux for software development, but I need to also run | Autodesk Fusion 360, which doesn't run on Linux. So I run it in a | VirtualBox virtual machine. It works poorly as it sometimes | doesn't render correctly and the performance is bad. I know that | if I did some research and bought a second GPU that I could maybe | get PCI-passthrough working, but I find that obnoxious and | wasteful. | | Can I use LibVF.IO/GVM to get better performance (and perhaps | proper rendering) on a VM in Linux? Or is there a different | solution I should be looking into? | ArcVRArthur wrote: | Ya, LibVF.IO & GVM are built for things like this! For example | I have a friend who uses it for various Adobe programs which | also don't work well on Linux. | amarshall wrote: | It depends if your GPU is supported, and such support is mostly | beholden to the hardware before anything else. Currently it's | largely limited to: for Nvidia, most Maxwell, Pascal, & Turing | cards; for AMD, very few obsolete cards; for Intel, gen 6-9 | iGPUs. | yissp wrote: | Is this similar to the virglrenderer project? | https://gitlab.freedesktop.org/virgl/virglrenderer | ArcVRArthur wrote: | It is slightly different - this runs an unmodified GPU driver | in the guest (no para-virtualization) and in our observations | our performance is close to native which I believe is a fair | improvement over the overhead of Virgl. Also there's | availability of more APIs - for example DirectX, Vulkan, and | OpenGL work with GVM guests. I don't think all of those work | with Virgl. We make use of various different assistance modes | (either hardware or software I/O virtualization/resource | sharing) via VFIO-Mdev (VFIO Mediated Device), or via SR-IOV | (Single Root IO Virtualization), or SIOV (Scalable IO | Virtualization). | | I made this web page to try consolidate some information from | various folks who have contributed a lot in this area of open | source to show how it works (there are some novel additions | we've made as well based on our own work with GVM): | | https://openmdev.io/index.php/Virtual_IO_Internals | [deleted] | punkpeye wrote: | What are the practical use cases for this? | SXX wrote: | 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. | ArcVRArthur wrote: | 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. | ArcVRArthur wrote: | 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 | lvass wrote: | 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. | ArcVRArthur wrote: | Thanks!! We'll do our best to keep improving things for | everyone. Hopefully security by compartmentalization folks | benefit from our work as well. I'll be going to QubesOS | Summit so hopefully there will be more good conversations | there. :) | digitallyfree wrote: | 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. ___________________________________________________________________ (page generated 2022-08-24 23:00 UTC)