我有一台配备 GTX 1050 GPU 的 Surface Book 2,我想在运行 macOS 虚拟机时使用该显卡。我搜索了很多,但没有找到满意的答案。我不想将 GPU 的控制权交给我的 VM,我只想以与使用 Intel GPU 相同的方式使用它。我尝试在 Nvidia 控制面板中设置 VirtualBox,但它是唯一没有出现的程序,这让我怀疑我是否需要一个 API。
感谢您的帮助!
答案1
这让我怀疑我是否需要 API。
作为 VirtualBox 的最终用户,您不需要 API。
我想在运行 macOS 虚拟机时使用显卡。
您想要执行的操作所需的 VirtualBox PCI Passthrough 支持非常有限,并且具有特定的硬件要求。
PCI 直通模块作为 VirtualBox 扩展包提供,必须单独安装。请参阅第 1.5 节 “安装 VirtualBox 和扩展包”了解更多信息。
本质上,即使主机没有此特定设备的驱动程序,此功能也允许客户机直接使用主机上的物理 PCI 设备。常规 PCI 和某些 PCI Express 卡均受支持。如果 AGP 和某些 PCI Express 卡依赖 GART(图形地址重映射表)单元编程进行纹理管理,则目前不支持它们,因为它执行的页面重映射操作相当复杂,会干扰 IOMMU。此限制可能会在未来版本中取消。
要完全发挥作用,VirtualBox 中的 PCI 直通支持依赖于尚未广泛使用的 IOMMU 硬件单元。如果设备使用总线主控(即它自行执行对操作系统内存的 DMA),则需要 IOMMU,否则此类 DMA 事务可能会写入错误的物理内存地址,因为设备 DMA 引擎是使用设备特定的协议进行编程以执行内存事务的。IOMMU 用作转换单元,使用客户机物理地址的知识将来自设备的物理内存访问请求映射到主机物理地址转换规则。
Intel 的 IOMMU 解决方案被称为“Intel 定向 I/O 虚拟化技术”(VT-d),而 AMD 的解决方案被称为 AMD-Vi。因此,请检查您的主板数据表是否具有适当的技术。即使您的硬件没有 IOMMU,某些 PCI 卡也可能工作(例如串行 PCI 适配器),但如果客户机驱动程序尝试启用卡总线主控,客户机将在启动时显示警告,并且 VM 执行将终止。
我不想将 GPU 的控制权交给我的 VM,我只想以与使用 Intel GPU 相同的方式使用它。
为了实现你的目标,你必须放弃控制,这是事实。