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!!

5
  • 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, 2012 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, 2012 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, 2012 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, 2012 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, 2012 at 9:21

4 Answers 4

6

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.

3
  • so the request for display goes to my intel card(via some complex mechanism, I know)?
    – prongs
    Feb 29, 2012 at 11:07
  • No, I suspect Vmware is emulating a emulating generic Intel Video card.
    – Zoredache
    Feb 29, 2012 at 20:37
  • so it's being transferred to my cpu?
    – prongs
    Mar 1, 2012 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.

3

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .