借助最新的 Game Ready 驱动程序,NVIDIA 已启用对 Windows 虚拟机的 GPU 直通测试版支持 GeForce 图形处理器. 在驱动程序 465.89 之前,只有 Quadro NVIDIA 卡支持 GPU 直通。 对于 Linux 用户,这项技术将允许在您的 VM 中玩仅限 Windows 的游戏; 或者,如果您是一名开发人员,您可以更轻松地从一台机器上同时测试 Windows 和 Linux 代码,从而加速开发。
借助最新的 Game Ready 驱动程序,NVIDIA 已启用对 Windows 虚拟机的 GPU 直通测试版支持 GeForce 图形处理器. 在驱动程序 465.89 之前,只有 Quadro NVIDIA 卡支持 GPU 直通。 对于 Linux 用户,这项技术将允许在您的 VM 中玩仅限 Windows 的游戏; 或者,如果您是一名开发人员,您可以更轻松地从一台机器上同时测试 Windows 和 Linux 代码,从而加速开发。
GPU passthrough 已经使用了很长时间,并且有办法在 GeForce 显卡上启用它; 但是,它从未得到官方支持。 从技术上讲,该技术在 GeForce 的硅芯片中一直可用,但在驱动程序中未启用,导致 Windows 虚拟机上流行的“错误 43”。 很长一段时间以来,使用软件破解都可以在消费类 GeForce 卡和 vGPU 功能上启用 GPU 直通。 有关 vGPU 的更多信息,请参阅本文。
NVIDIA Game Ready 驱动程序 465.89
今年 30 月 465.89 日,NVIDIA 发布了新的 Game Ready 驱动程序 30。 该驱动程序支持全新的视频游戏,并修复了许多其他游戏和应用程序中存在的未决问题。 但是,在游戏技术下可以找到关于此新版本的一些特别令人兴奋的内容。 在此,宣布了三个重要功能:GeForce RTX 3.0 系列的可调整大小的 BAR、对 OpenCL XNUMX 的支持以及对 GeForce GPU 虚拟化的 Beta 支持。
可调整大小的 BAR
可调整大小的 BAR 允许 CPU 一次访问所有 PCIe 设备的内存,而不是以前每个周期 256MB 的限制。 Smart Access Memory,SAM(AMD 的技术术语)于去年由该公司宣布并已实施。
OpenCL 3.0
添加了对 OpenCL 3.0 的支持,OpenCL 的最新主要版本保持与 OpenCL 1.2 的向后兼容性。 NVIDIA OpenCL 3.0 继续支持现有的 OpenCL 1.2 功能以及 NVIDIA OpenCL 1.2 驱动程序已经支持的 Khronos 和供应商扩展。
Beta 支持 GeForce GPU 上的虚拟化。
此外,从这个驱动程序开始,NVIDIA 已经在所有基于开普勒架构的 GeForce 显卡和 Windows 虚拟机的更新版本上启用了 GPU 直通(不是 vGPU,也就是 GPU 共享的 SR-IOV)。 这是我们在本文中关注的技术。 尽管可调整大小的 BAR 是新一代 RTX 和游戏玩家最期待的功能之一,但 GeForce GPU 上的虚拟化是“HomeLabers”和 Linux 用户最期待的新增功能。
对 GeForce 的 Windows 虚拟机测试版支持
如果您主要是 Linux 用户,您现在可以在 Windows 虚拟机 (VM) 上启用 GeForce GPU 直通。 NVIDIA GPU 直通仅保留用于企业或工作站级 GPU。 该公司不允许 GeForce 客户将此技术用于在其消费级计算机中运行的 Windows VM。 然而,许多客户实际上将 GeForce 卡用作工作站 GPU。
在消费卡上,芯片从来都不是 GPU 直通的问题; 是软件(驱动程序)将用户拒之门外。 以前,要使用 GPU 直通,用户必须花费大量资金购买 NVIDIA Tesla 或 Quadro 卡。 对 GeForce 的 GPU 直通测试版支持对于那些希望在虚拟机中运行 Windows 游戏同时维护其 Linux(物理)主机并使用 GeForce 显卡的用户来说是一个有意义的胜利。
该技术的主要目标是希望多任务 GPU 要求高的应用程序的 Linux 用户。 在一些 GeForce 用例中,此功能是有益的,例如:
- 希望运行 Linux 主机并能够启动 Windows 虚拟机 (VM) 来玩游戏的 GeForce 客户
- 希望在一台机器上测试 Windows 和 Linux 代码的游戏开发人员
R465 或更高版本的驱动程序支持 GeForce 虚拟化(测试版)。 它在 Windows 上此驱动程序支持的所有 GeForce/TITAN GPU 上启用(Kepler 和更高版本的台式机;Maxwell 和更高版本的笔记本电脑)。 Windows 10 是此 GeForce 虚拟化设置唯一支持的来宾操作系统。
使用 GeForce GPU Passthrough,您无法利用主机操作系统使用的相同 GPU 进行虚拟化。 Linux 主机操作系统需要一个 GPU,Windows 虚拟机需要一个 GPU。 此外,请务必记住 GPU 直通仅支持一个虚拟机。 GeForce 不支持多个 VM 的 vGPU (SR-IOV) 或共享 GPU 直通。 假设你想让各种 VM 直接访问单个 GPU,或者希望 GPU 将虚拟功能分配给多个虚拟机。 在这种情况下,您将需要使用工作站或企业 GPU。
GPU 直通错误:代码 43
如果您曾尝试从 Linux 机器运行 Windows 虚拟机,在 Game Ready 驱动程序 465.89 之前,来宾操作系统中的驱动程序将返回流行的“代码 43”。 当 GeForce 驱动程序检测到操作系统实际上正在 VM 上运行时,此错误仅出现在 Windows(来宾)操作系统中。 GeForce GPU 对虚拟化的支持意味着您不再需要隐藏您的 VM; 可以安装驱动程序,并且此错误代码应该消失了。
值得一提的是,NVIDIA 故意为 GeForce 显卡设计了这个错误代码。 它没有体现在公司的企业级显卡 Tesla 和 Quadro GPU 上。 原因是 NVIDIA 当然需要将消费者与企业级细分市场分开。 一些企业功能对消费类(性能较低)视频卡没有多大意义,但启用其中一些功能会导致 NVIDIA 企业(昂贵)卡的销售损失惨重。
GPU 直通与 vGPU
许多用户仍然对 GPU Passthrough 和 NVIDIA 提供的技术能力感到困惑。 重要的是重新审视 GeForce GPU 上的虚拟化是什么,什么不是。 对于许多 GPU 爱好者来说,GPU 直通这个术语听起来很容易理解; 然而,它通常与 NVIDIA 虚拟 GPU (vGPU) 混淆。
GPU Passthrough 和 vGPU 都是长期用于企业虚拟化解决方案的技术,例如 VMware ESXi 和 思杰XenServer. 以及 Tesla 和 Quadro GPU。 在VMware ESXi中,GPU Passthrough被称为虚拟专用图形加速(vDGA),vGPU被称为虚拟共享图形加速(vSGA)。 vGPU 允许跨多个虚拟桌面共享企业级 GPU。
VMware 提供了第三个选项,称为虚拟共享直通图形加速。 这项技术允许 GPU 与多个用户共享,而不是只专注于一个用户。 与vGPU(VMware中的vSGA)不同的是,它没有使用专有的VMware 3D驱动程序,并且支持显卡的大部分功能。 请记住,使用 GeForce 卡上的 GPU Passthrough,您无法让多个虚拟机直接访问单个 GPU,GPU 也无法将虚拟功能分配给多个虚拟机。
虚拟桌面基础设施 (VDI) 是使用这些 GPU 技术的最佳示例和场景。 VDI 解决方案通过快速创建数百个在单个强大的服务器或集群上运行的 VM 克隆来利用虚拟化。 大多数时候,vGPU 是需要在短时间内充分发挥 GPU 潜力的用户的最佳选择。 但是,vGPU 可能会造成瓶颈,具体取决于使用的应用程序以及这些应用程序需要从 GPU 获得的资源。 vGPU 通常用于知识工作者,偶尔也用于高级用户。 如今,在不承认 vGPU 的情况下规划 VDI 解决方案被认为是一种疏忽行为。
Nvidia vGPU 被黑用于 GeForce 卡
即使在最新的 NVIDIA 驱动程序中启用了 GPU 直通,GeForce 用户仍然无法(正式)在多个虚拟桌面之间共享 GPU。 对于 vGPU,您需要使用 NVIDIA Tesla、Quadro 或 RTX 企业级 GPU。 所以,你不能在这个问题上欺骗 NVIDIA,是吗?
几个月前,有消息称可以解锁消费级 GPU 的 vGPU 功能。 该工具支持将 GeForce 和 Quadro GPU 与 NVIDIA vGPU 软件配合使用。 NVIDIA vGPU 通常只支持少数 Tesla GPU,但由于某些 GeForce 和 Quadro GPU 与 Tesla 共享相同的物理芯片,这只是这些 GPU 的软件限制。 此工具旨在消除此限制。
该工具和说明可在 https://github.com/DualCoder/vgpu_unlock.
总结
NVIDIA 最终决定删除他们在 GeForce 卡上任意设置的块。 在 NVIDIA 发布驱动程序 465.89 之前,当来宾操作系统检测到虚拟机时,该驱动程序在 Windows 和 Linux 中被禁用。 启用虚拟化后,Linux 主机 PC 上的 GeForce 客户现在可以在虚拟 Windows 来宾操作系统上启用 GeForce GPU 直通。
从技术上讲,对 GeForce GPU 虚拟化的支持不是测试版; 但更像是 NVIDIA 只是勾选一个框来解锁一个已经存在了很长时间的功能。 然而,GPU Passthrough 仍然仅限于单个 GPU 实例,这意味着只有虚拟机才能独占访问显卡。
至于 vGPU,不幸的是,除非你完全进入企业,否则 NVIDIA 仍然不支持与多个虚拟机共享 GPU,就像 CPU 制造商所做的那样。 如果用户需要更多的虚拟机访问同一个 GPU,那么将需要 Tesla 或 Quadro 显卡。 但这可能会随着 GPU 直通而发生变化。 目前,可以使用软件 hack 来试用 vGPU 功能,但当然,它的支持不是官方的。
参与 StorageReview
电子报 | YouTube | 播客 iTunes/Spotify | Instagram | Twitter | Facebook | RSS订阅