在VMware上运行CUDA程序

24

我编写了一个CUDA程序,现在在Ubuntu虚拟机上进行测试。这么做的原因是我有Windows 7,不想将Ubuntu安装为次操作系统,并且需要使用Linux来进行测试。 我的问题是:虚拟机是否会限制GPU资源?所以,如果我在主操作系统下运行它,会比在虚拟机中运行更快吗?


1
如果在虚拟机下能正常工作,那你就很幸运了。您可以在Windows 7上进行CUDA开发。如果出现问题,如果您正在开发而不是在生产环境中使用,为什么不使用仿真功能呢? - dangerstat
为什么不直接从Ubuntu Live CD启动进行Linux测试呢? - Paul R
如果我从Ubuntu的Live CD启动,每次重新启动都需要安装CUDA工具包!! - scatman
购买一枚4GB的USB闪存盘,将Live Ubuntu安装到其中 = $15。 - Martin Beckett
@Martin 确实 - 这不是什么高深的技术... - Paul R
显示剩余2条评论
5个回答

22
我曾经面临过类似的任务。最终我安装了启用持久模式的Ubuntu系统到一个8GB的闪存驱动器上。
这样我就有4GB的空间来安装CUDA和其他需要的软件。
拥有一个可启动的USB闪存驱动器非常有用。我建议阅读这篇文章
此外,如果你正在寻找其他发行版,这个链接有一些非常有趣的资料。

20

很不幸,虚拟机模拟的是一个图形设备,因此您无法访问真正的GPU。这是由于虚拟化处理多个虚拟机访问同一设备的方式 - 它提供了一个介于它们之间共享真正设备的层。

如果您具有正确的软件和硬件组合,则可以获得对硬件的真正访问权限,请参见SLI Multi-OS网站了解详细信息。

因此,如果您确实无法在Windows中运行您的应用程序,那么您只能选择以下限制:

  1. 不切实际:安装Linux
  2. 不切实际:与Windows并存安装Linux(不是一个选项)
  3. 引导到Live CD,您可以准备一个带有CUDA的磁盘映像,并在每次挂载映像时使用它
  4. 设置(或借用)单独的Linux框架,并远程访问其内容

10

我在 NVIDIA 的 GPU 技术会议上听到了研究员崔晓晖(Oak Ridge 国家实验室)的演讲。除其他内容外,他描述了使用名为 gVirtuS 的东西从虚拟机中访问 GPU。他没有创建 gVirtuS,但将其描述为一个开源的“虚拟 CUDA”驱动程序。请参见以下链接:http://osl.uniparthenope.it/projects/gvirtus/

我没有尝试过 gVirtuS,但听起来似乎可以满足您的需求。


2

从CUDA 3.1开始,其虚拟化功能并不明显,因此唯一可用的方法是直接在目标硬件+软件上运行CUDA程序。


2
使用rCUDA将虚拟GPU添加到您的虚拟机中。

3
截至2012年11月30日,当前稳定版本(v3.2)以及新的rCUDA 4 Windows和Linux发行版的测试版本不兼容。另外,32位和64位版本目前也不兼容。这意味着在Windows主机上运行的Linux虚拟机无法使用rCUDA。 - vo1stv
1
rCUDA似乎不是开源的(网站上有软件请求表格),并且似乎不支持所有的Linux,例如Arch Linux。 - simonzack

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