问题
我想使用主机 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 dmar
将dmesg | 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。您可能需要使用每篇文章中提到的虚拟管理器。
以下是参考文献:
通过 OVMF 实现 PCI 直通
这是 2019 年 1 月的一篇最新文章。开放虚拟机固件 (OVMF) 是一个为虚拟机提供 UEFI 支持的项目。如何设置具有 GPU 直通的游戏虚拟机(QEMU、KVM、libvirt 和 VFIO)
这是 2015 年 8 月的一篇旧文章,但可能会有用。使用 VirtualBox 中的 NVidia GPU?
我们网站上 2015 年 12 月的一篇旧帖子,但可能会有用。