我写了一个cuda程序,我在ubuntu上测试它作为虚拟机。这个的原因是我有Windows 7,我不想安装ubuntu作为辅助操作系统,我需要使用Linux操作系统进行测试。 我的问题是:虚拟机会限制gpu资源吗?如果我在主操作系统下运行它而不是在虚拟机上运行它,那么我的cuda代码会更快吗?
答案 0 :(得分:19)
不幸的是,虚拟机会模拟图形设备,因此您将无法访问真正的GPU。这是因为虚拟化处理多个虚拟机访问同一设备的方式 - 它在两者之间提供了一个层来共享真实设备。
可以真正访问硬件,但只有拥有正确的软件和硬件组合,请参阅SLI Multi-OS site了解详细信息。
因此,您可能对虚拟化路线不满意 - 如果您真的无法在Windows中运行您的应用,那么您将受限于以下内容:
答案 1 :(得分:18)
我曾经遇到过类似的任务。我最终做的是在启用了持久模式的8GB拇指驱动器上安装Ubuntu。
这给了我4GB的安装CUDA以及我需要的一切。
拥有可启动的USB记忆棒非常有用。我建议阅读this。
此外,如果您正在寻找其他发行版,this link还有一些非常有趣的内容。
答案 2 :(得分:10)
我刚听到一位名叫崔晓辉(橡树岭国家实验室)的研究员在NVIDIA的GPU技术大会上发表演讲。除此之外,他描述了使用名为gVirtuS的东西从虚拟机访问GPU。他没有创建gVirtuS,但将其描述为开源“虚拟cuda”驱动程序。请参阅以下链接: http://osl.uniparthenope.it/projects/gvirtus/
我没有尝试过gVirtuS,但听起来它可能会做你想要的。
答案 3 :(得分:2)
从CUDA 3.1开始,它的虚拟化功能并不生动,因此唯一可用的方法是直接在目标HW + SW上运行CUDA程序
答案 4 :(得分:2)
使用rCUDA向虚拟机添加虚拟GPU。