Status of KVM with KVMGT (for shared & almost-native GPU perf inside VMs)?
Linux - Virtualization and CloudThis forum is for the discussion of all topics relating to Linux Virtualization and Linux Cloud platforms. Xen, KVM, OpenVZ, VirtualBox, VMware, Linux-VServer and all other Linux Virtualization platforms are welcome. OpenStack, CloudStack, ownCloud, Cloud Foundry, Eucalyptus, Nimbus, OpenNebula and all other Linux Cloud platforms are welcome. Note that questions relating solely to non-Linux OS's should be asked in the General forum.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Perhaps most visible to end users with this first Linux 4.1 Intel i915 DRM pull is the vGPU support for client-side XenGT. This is the client-side support for Intel's technology of exposing the Intel GPU for graphics and compute to virtualized guests via mediated passthrough of the Intel HD/Iris Graphics.
The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability. Though we only support Xen on Intel Processor Graphics so far, the core logic can be easily ported to other hypervisors.
Googling a bit I found this presentation dated Oct.2014 stating...
Quote:
KVMGT is the open source implementation of Intel ® GVT-g for KVM
...and I've found this post dated Feb.2015 asking infos about KVMGT and Windows guests.
Questions:
1)
Am I understanding it correctly? "KVMGT" (or whatever acronym is correct) makes it possible to run with the KVM hypervisor a VM that can run a native GPU driver/module and therefore get near-native performance AND use the same GPU that the host is using (no dedicated GPU for the VM)?
2)
What's the correct name? KVMGT? GVT-g?
3)
Are there any HW, BIOS, GPU requirements?
4)
Current status? Can I use it?
It would be a major event to be able to use a single GPU to run everything (host & VMs), but maybe I'm misunderstanding the whole concept
Dunno about the current status, but the point of the *GT project is to be able to schedule GPU calls for VMs the same way CPU calls are scheduled. So if a VM requires a CPU cycle, it lets the hypervisor take care of which CPU core actually performs it, the same idea should apply here with GPUs. The good thing here, is, just like with CPUs, we should be able to overcommit and maximize the use of GPUs. The downside is that this will probably mean real GPU scheduling (for in-VM rendering or number crunching), and not gaming (and I might be wrong here). I suspect that this will also mean you will not be able to schedule the console-attached video card along with the dedicated GPUs.
Currently, if you need GPU passthrough, you can use vfio, if works great with the industrial grade NVIDIA cards, like the GRID K2 which I'm using.
Here are partial answers to your questions, in slightly revised order:
2) The correct name is "Intel Graphics Virtualization Technology g" or "Intel GVT-g" or "iGVT-g" for short. KVMGT and XenGT are implementations of iGVT-g. You can find more information here: https://01.org/igvt-g
1) Yes, the goal of iGVT-g is to allow VMs to access, and share all the resources of, the host's GPU. My understanding is that a VM using iGVT-g will have somewhere between 80 or 90% of native performance, as opposed to the almost 99% of native performance achievable with VFIO passthrough to a separate GPU. But the beauty of iGVT-g is that the host and VM can share a single integrated GPU, which makes it great for use on a laptop that only has integrated graphics. Here's an example of an Ubuntu host with XenGT running two Windows VMs, each of which has has access to the host's GPU: https://www.youtube.com/watch?v=V2i8HCcAnY8
3) At present, iGVT-g only supports Intel Processor Graphics built into 4th generation Intel Core processors. Support for 5th generation (and later) Intel Core processors is expected, but support for earlier processors seems less likely. See https://github.com/01org/KVMGT-kernel/issues/15
4) Both XenGT and KVMGT are currently experimental, and if you want to try either, you'll need to compile and install modified versions of various software. Hopefully, this situation will change in the future, but probably not for at least several more months. Between the two, XenGT development is closer to being finished. (I wish that weren't the case, because although Xen is great for servers, I would prefer to use KVM on my laptop.) If you want to give XenGT a try, you can learn more about how to install it here: https://github.com/01org/XenGT-Previ...ide_2015Q1.pdf Note that, to the best of my knowledge, the preceding links to the most current instructions for XenGT. But updated instructions will likely be posted at a later date, so you'll probably want to remain on the lookout for updates.
Last edited by GizmoChicken; 07-04-2015 at 11:16 PM.
Just as a reference for myself: here the list of the Intel GPU generations.
I think that the Wiki article to which you link lists Intel GPU "generations" in a different context than I meant. To find "4th generation Intel Core processors" in the context that I meant, you should have a look here: http://ark.intel.com/ But in any case, like I said before, iGVT-g is still experimental, so there are no guarantees that any particular processor will work at this point.
I think that the Wiki article to which you link lists Intel GPU "generations" in a different context than I meant. To find "4th generation Intel Core processors" in the context that I meant, you should have a look here: http://ark.intel.com/ But in any case, like I said before, iGVT-g is still experimental, so there are no guarantees that any particular processor will work at this point.
Sh**, you're right.
So, bah, I wasn't able to find a neat list of GPU names and their associated generation number (or CPU ID).
Here an example of a page on Intel's site which states the generation number (once you manage to know the codename of the GPU - can potentially be shown by the command "lspci"): http://ark.intel.com/products/codena...4/Haswell#@All
Last edited by Pearlseattle; 07-07-2015 at 05:04 PM.
An updated version of XenGT has been released that "can support both Intel 4th generation Core CPU(code name: Haswell) and Intel 5th generation Core CPU (code name: Broadwell), while the limitation of the latter include..." See https://lists.01.org/pipermail/igvt-...ly/000005.html
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.