CUDA on VMware CUDA on VMware - is it possible

Is it at all possible to use CUDA in a virtualized environment like VMware Player?
Does anyone have any experience with it?

Only with HOSTEMU, not on the device, as there is no CUDA device inside of VMWare.

Can’t one expose a physical device directly to VMWare – after making the host-OS disown the device (unload the driver…) ?? juss curious…

I’ve never heard of that being possible with VMWare. VMWare emulates all of the hardware with its own set of drivers, and has no awareness of the host system’s hardware. There is nothing CUDA specific about this.

No not really.

For example: Guest OSes running in VMWare can still participate in the host ethernet network. The VMWare’s driver eventually uses the host’s bridging driver and host hardware.

So, Ahh… I see the point now… VMWare should emulate the CUDA hardware for the NVIDIA driver. Aaah…We need special support then. You are right.

And, You cant allow the guest OS to program hardware directly. Because , if the host hardware raises an interrupt, it is the host OS that handles and NOT the VMware application…

So, support would be required in the form of:

  1. VMWare emulating the driver interface of the NVIDIA card.

  2. VMware using a host based driver to replicate to program the host side NVIDIA card.

Passing through PCI-E devices to a virtualized OS would be really hard, and require various kernel level changes. I don’t think you’ll see this any time soon.

Best would be to provide the CUDA based services as a network service on the host (using some RPC or remote object abstraction, if you want), then connect to that from the guest os through ‘host only networking’. This is quite fast, as it loops back internally.

But I don’t really see an application for this anyway.

The closest thing I’ve heard of is PCI passthrough in Xen: http://www.wlug.org.nz/XenPciPassthrough

However, all this does is hide the device from dom0 and expose it to domU. You can’t multiplex the device between virtual instances, so it would have limited utility in this case. It might not even work with the NVIDIA drivers.