是否可以拥有不同的开发 VM 环境并访问显卡?

问题描述

我想在笔记本电脑上做什么:

  1. 使用 Visual Studio(CUDA、TensorRT...)在 Windows 上开发和运行
  2. 在 Linux(CUDA、TensorRT...)上开发和运行
  3. 编辑视频、photoshop、...的环境
  4. 玩游戏
  5. 通用环境(网络浏览器、Outlook、word 等)
  6. 测试应用程序的环境
  7. 可能连接了一些外部 GPU 以从我的笔记本电脑的显卡上卸载工作(cuda,...)。由于我是新手,我还没有进行足够的研究来了解如何做到这一点。但是,这在我的计划中。

我所做的和研究的:

  • 首先,我使用 VirtualBox 在我的主机 Windows 操作系统中为 #1 和 #2 创建了 VM 环境,但我无法在 VM 内运行,因为它不提供对显卡的访问。即使是这样,我仍然需要以某种方式切换到不同的环境,例如,当我想玩游戏时。
  • 如果我想要玩游戏的环境,我可能需要虚拟机管理程序类型 1?但是,在这种情况下,我需要第二台笔记本电脑才能访问它,对吗?

这甚至可以在一台笔记本电脑上完成吗(我有强大的笔记本电脑,有足够的 RAM 和 SSD)

解决方法

图形卡 (GPU) 是 PCI 设备,因此它们可以通过 PCI Passthrough 传递给 VM。在直通期间,主机无法访问设备。热插拔可用于将显卡重新连接到不同的 VM 或主机,而无需重新启动。

我不知道 Windows 主机是否支持 GPU 直通(也许您需要 Windows Server),但 Linux 主机和 Windows 来宾似乎可以工作。

如果您有第二个 GPU 保持连接到主机或另一台计算机以在 GPU 直通(例如通过 SSH)期间控制主机,则设置会更容易。