CUDA / OpenCL within a Virtual Machine / Hypervisor [closed]
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
开发者_开发技巧 Improve this questionAnyone know of any virtualisation solutions that either allow CUDA/OpenCL access directly or implement CUDA/OpenCL abstraction.
UPDATE: Thank you those who commented. While classical 'desktop' virtualization would be nice, I suspect the likes of Xen would be closer to the mark.
You can use Xen VGA passthrough to have full access and control over your graphic card inside a VM. You can find more information about this here: http://vfio.blogspot.com/ (look for VFIO GPU How To series parts 1-5).
I did it a few times, it's not very easy to setup, but it gives very good results (almost native). Here is a video of an experimentation I made that shows a dual VGA passthrough using Xen: http://www.youtube.com/watch?v=Gtmwnx-k2qg
I haven't tested OpenCL or CUDA, but I'm pretty sure it would work.
NVIDIA announced GPU virtualization on the new Kepler cards this summer at GTC.
http://www.nvidia.com/object/vgx-boards.html
http://www.gputechconf.com/page/home.html
They not only announced it, they demonstrated it live
VirtualBox has PCI-passthrough, which allows you to use CUDA or OpenCL inside a Virtual Machine.
Disclaimer: vGPU is one of the projects that I was working on...
If you want to access GPU through CUDA or OpenCL APIs, I suggest you to take a look at http://www.zillians.com/vgpu
By simply implementing SR-IOV on GPU is not going to work not only because of the lack of support in hardware but also the feasibility of using virtualized GPU resources under hypervisor. Simple question: how many GPUs can you fit into your chassis? and share them for each VM instance, which will much degrade the performance and have huge bandwidth requirements on the PCI-E switch...does that make any sense?
That's why Amazon EC2 only provides dedicated GPU instances and also the reason we choose to implement VGPU to make GPU a shared and scalable computing unit.
Parallels Workstation Extreme.
精彩评论