使用 VirtualBox 中的主机 CUDA?

使用 VirtualBox 中的主机 CUDA?

问题

我想使用主机 dGPU 通过 Oracle VM VirtualBox 版本 5.2.22 中的 Ubuntu 16.04 客户机使用其 CUDA 核心训练一些神经网络。可以这样做吗?

主机设置:

Windows 10.0.17763.195 (1809) Pro x64
Intel i7-6700HQ (Intel HD Graphics 530)
NVIDIA GeForce GTX 960M (CUDA Cores 640) via PCI Express x16 Gen3, DirectX v12.0 (FL 11.0)
Virtualization is Supported, Enabled via UFEI and OS

来宾设置:

Ubuntu 16.04
Chipset PIIX3 with Enabled I/O APIC
Processor has enabled PAE/NX
VT-X and AMD-V are Supported, Enabled
Nested Paging, Enabled
3D Acceleration Enabled
Extension Pack is installed

在此处输入图片描述

注:以前的有人问过如何在 VirtualBox 中使用 Windows 7 主机的 Nvidia GPU 进行游戏。这个问题是关于不同的设置和目的,而且太旧了,今天已经没有用了。另一个问题询问有关在 VirtualBox 中使用显卡的问题,但这也是一个老问题。

答案1

经过大量挖掘,目前这是可能的,但仅限于有限的配置、特定的主机操作系统和企业软件的使用。

Windows Server 2016 及更高版本,但带有 Hyper-V

  • 这只是可能的使用 Windows Server 作为主机和虚拟机管理程序。如上文所述,使用 Windows 10 Pro 作为主机时不可用。

Ubuntu 18.04 及以上版本,带有 Virtualbox

  • PCI 直通是必需的,但它在 VirtualBox 6.1 中已被删除:https://www.virtualbox.org/wiki/Changelog-6.1
  • 根据 virtualbox 的说法,客户机和主机都必须有一个已编译 IOMMU 支持(包括 DMA 重映射)的 Linux 内核文档. 在最新版本的 Ubuntu 中,这是默认完成的。
  • 该命令find /sys | grep dmardmesg | grep IOMMU告诉您内核是否已编译 IOMMU 支持。DMAR: IOMMU enabled正是您正在寻找的。

Windows 10 Pro,但配有 VMware Workstation Pro 15 或 VMware ESXi

  • VMware允许了解 GPU 直通或与客户 VM 系统共享的几种方法。同样,必须在主机上启用 VT-d 或 AMD IOMMU。

答案2

这在 Linux 下似乎是可能的,并且有详细的说明。

您的 CPU 支持所需的 VT-d 功能,希望您的(未指定的)主板也支持。您还有两个图形适配器,因此可以将其中一个交给 VM(请记住,您的另一个 GPU 相当有限)。

您需要测试有关该主题的各种文章,因为我没有该主题的环境。虽然教程中没有提到,但虚拟机的芯片组似乎需要是 ICH9。您可能需要使用每篇文章中提到的虚拟管理器。

以下是参考文献:

答案3

如果显卡不是系统中的主要显卡,您可以考虑使用 PCI 直通到 VM,这样客户操作系统就可以直接访问它。不幸的是,VBox 似乎不支持此功能(阅读这里),不知道其他桌面虚拟化软件是否也支持。

无论如何,如果您的显卡也被主机操作系统使用,那么您就无法执行 PCI 直通。

更新

似乎其他桌面虚拟化软件也不支持 PCI 直通(我发现的帖子似乎足够新)

  • Windows 10 中的 Hyper-V:阅读这里
  • VMware 工作站:阅读这里

相关内容