0

I have a Dell XPS with an NVIDIA GT540 card and it's with Optimus. The main OS is Windows 7.

I have installed Windows 8 inside VMware Workstation 8, and it works very slowly. Inside NVIDIA Control Panel it tells me that no application is using the GPU. Why?

Why is the VM using the Intel GPU when I have an NVIDIA at my disposal?

UPDATE: well, I installed vmware tools and the performance has improved. But still I sense nVidia is not getting used. :(

UPDATE: And now that I see in the notification area, vmx.exe is indeed using my gpu. :) yipeee!!

  • 2
    I'm fairly sure that virtual machines don't have access to the GPU - but I'm willing to to proved wrong. – ChrisF Feb 29 '12 at 9:08
  • @ChrisF, on some hardware, they theoretically could if the the CPU and hypervisor both supportedVT-d. AFAIK, no desktop VM solution supports this yet though. – Zoredache Feb 29 '12 at 9:11
  • Normally, there is no hardware acceleration for virtual operating systems at all. Your hardware, software and the virtual operating system would need proper support. I don't know about your hardware, VMware Workstation probably supports GPU acceleration, and you need VMware drivers installed in Windows 8, which probably isn't supported by VMware as it's still in development. – Oxwivi Feb 29 '12 at 9:11
  • @Zoredache I thought VMware, Xen, KVM all support VT-d (and the AMD equivalent) extension for paravirtualization and hardware virtualization? Of course that is separate from GPU acceleration which can work with the necessary drivers in the guest OS (albeit slowly). – Oxwivi Feb 29 '12 at 9:15
  • @Oxwivi, I am mostly familiar with Vmware products, and the only version of Vmware that does VT-d is ESXi. I can't speak to Xen/KVM. – Zoredache Feb 29 '12 at 9:21
5

A virtual machine does not get direct access to your hardware. The hypervisor emulates hardware, what hardware that is emulated depends on which hypervisor you are using.

The Vmware Compatibility Guide includes details about exactly what Guest Operating systems are supported. Windows 8 is not on the list.

For supported guest operating systems VMware does provide a set of drivers for officially support Operating systems that greatly improve the performance of this emulation. With Windows 7 the graphics performance is good enough for Aero to work. Windows 8 is not supported, and I would bet is not likely to be supported for a while.

  • so the request for display goes to my intel card(via some complex mechanism, I know)? – prongs Feb 29 '12 at 11:07
  • No, I suspect Vmware is emulating a emulating generic Intel Video card. – Zoredache Feb 29 '12 at 20:37
  • so it's being transferred to my cpu? – prongs Mar 1 '12 at 4:13
2

To my knowledge, most VMs use a special guest driver to emulate graphics; in some cases, passing the host GPU's capabilities via the aforementioned guest driver.

VirtualBox's user manual describes how VirtualBox (in particular) emulates 2D/3D acceleration.

https://www.virtualbox.org/manual/ch04.html#guestadd-video

1

Your virtual machine doesn't have a virtual nVidia card to use. The physical machine has a physical nVidia card, and presumably it's using it. Virtual machines operate on virtual hardware or physical hardware that is virtualized. The video card is not virtualized.

0

DISCLAIMER: I had to remove links due to reputation system. I cann provide further replies with the links I wanted to show (12 at the moment).

Are you using a laptop?

About Windows as a virtualization host: Sorry, I have no idea. Maybe you can have some luck with "XenGT", but I have zero idea

About Linux...

You would be able to use PCI Passthrough at least under Linux, but Optimus is a big show-stopper in this. There's a possibility if you have a video output connected to the Nvidia GPU (some laptops have it), but you'd lose portability in exchange of this feature (and this sucks a lot in a laptop).

There's Intel GVT-d|s|g "vGPU" (Intel insists in calling it Graphics Virtualization Technology because Nvidia used vGPU term in their proprietary solution, but I find vGPU a lot easier to remember) in Linux, this is a nice start. The code got merged in Linux kernel and it seems relevant stuff to vanilla Linux kernel itself too (not 100% sure). The relevant code still didn't get merged to upstream repositories of Qemu and Xen hypervisor (there are Intel forks of Xen and Qemu with GVT-g support, but no news about merging since more than TWO years.

Nvidia has a similar technology, they call it vGPU and is part of NVIDIA GRID. Unfortunately, this technology is very proprietary and it seems to be only offered to servers. I'm not sure if Quadro drivers support something similar and if someone was able to use these drivers on consumer hardware, I hope someone can explain more about this.

There's has been many heroes (one at reddit, other's at Red Hat's vfio-users mailing list trying to make PCI Passthrough over Intel GVT (vGPU), but I didn't see any success stories about it.

I saw people having issues with GVT-g alone on reddit. I saw an early 2017 guide by kraxel and himself mentions at early 2017 about locally displaying vGPU output too.

Anyway, I'll do some more research and after some experiments, I'll write a detailled e-mail to Intel GVT-g mailing list.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.