虚拟机/超级管理程序中的CUDA / OpenCL

27

有人知道任何允许直接访问CUDA/OpenCL或实现CUDA/OpenCL抽象的虚拟化解决方案吗?

更新:感谢那些评论的人。虽然经典的“桌面”虚拟化很好,但我怀疑像Xen这样的解决方案更接近。


1
非常怀疑 - 即使是具有OpenGL硬件加速的VirtualBox也不行。 - Martin Beckett
1
这还不可能,但最终会实现:在2008年11月,VMWare收购了Tungsten Graphics,这是领先的开源3D驱动程序和相关内容(如跨平台Gallium驱动程序基础设施)的公司开发者。从那时起,他们开始为gallium开发OpenCL状态跟踪器,并发布了虚拟GPU的gallium后端。整个堆栈准备投入生产还需要一段时间,但大部分所需的组件已经开始并正在积极开发中。 - user57368
保留此问题的开放状态,因为它可能会更改。 - Bolster
你可能想要澄清一下,尽管这很明显,你对通过虚拟化在GPU上使用CUDA/OpenCL感兴趣。今天,你可以在虚拟机中使用OpenCL CPU计算设备。 - James
5个回答

11
您可以使用Xen VGA直通技术在虚拟机中完全访问和控制您的图形卡。您可以在此处找到更多有关此技术的信息:http://vfio.blogspot.com/(请查找VFIO GPU How To系列1至5部分)。
我曾经尝试过几次,安装不太容易,但它可以提供非常好的结果(几乎与本地一样)。这里是我进行双VGA直通实验的视频,使用了Xen:http://www.youtube.com/watch?v=Gtmwnx-k2qg 我没有测试过OpenCL或CUDA,但我相信它们应该可以工作。

1
目前CUDA与Xen不兼容。 - talonmies
1
刚刚测试了NVIDIA的“Design Garage”演示,使用上述设置和CUDA,一切正常。 - alarouche
这是哪个发行版?Redhat的所有版本的Xen内核都无法与CUDA兼容。 - talonmies
1
这是一个从源代码编译的带有Xen 4.1的Ubuntu 10.10 Dom0内核。正如我在回答中所说,让VGA直通工作起来并不简单。 - alarouche
它支持SLI吗?我能在虚拟机监视器级别上将两张卡SLI在一起,以便VM看到一张卡吗? - John Thompson
显示剩余2条评论

10

很高兴在一年多之后,我终于可以期待这个了!我会把它算作一个答案。 - Bolster
3
但是18个月后,消费者信用卡上仍然没有这方面的迹象。 - steve cook

3

VirtualBox有PCI-passthrough功能,允许您在虚拟机中使用CUDA或OpenCL。


1
仅限于 Linux 主机。 - steve cook
我试图使用vboxmanage modifyvm命令启用pci-passthrough,但是出现了“VBoxManage: error: Unknown option: --pciattach”错误。有任何想法吗? - Arockia
@Arockia 我猜测nvidia驱动程序注意到它正在虚拟机上运行并引发了错误。一些虚拟化管理程序可以欺骗它以认为它在正常硬件上运行,不确定VirtualBox是否具有此类功能,可能没有。至于错误,您正在尝试执行不受您的VirtualBox支持的操作。不确定此PCI附加是否与版本有关,但如果我是您,我会检查一下。 - inf3rno

-3
免责声明:vGPU是我正在进行的项目之一...
如果您想通过CUDA或OpenCL API访问GPU,我建议您查看http://www.zillians.com/vgpu 仅仅在GPU上实现SR-IOV是行不通的,不仅因为硬件缺乏支持,而且在虚拟化GPU资源下使用的可行性也存在问题。简单来说,您能在机箱中放入多少个GPU?并将它们分享给每个虚拟机实例,这将大大降低性能,并对PCI-E交换机产生巨大的带宽需求...这有意义吗?
这就是为什么亚马逊EC2只提供专用GPU实例的原因,也是我们选择实施VGPU以使GPU成为共享和可扩展的计算单元的原因。

最近有关于这个项目的工作进展吗? - fche
看起来像是一个已经停止开发的项目... - steve cook

-5

Parallels Workstation Extreme。


支持GPU OpenCL吗? - Sergei Krivonos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接