欢迎光临
我们一直在努力

VMware Ubuntu 虚拟机使用宿主机 GPU 资源的两种方案

让 VMware Ubuntu 虚拟机使用宿主机 GPU 资源,主要有两种主流方案,它们的实现难度、性能和适用场景完全不同。


方案一:GPU 直通 (GPU Passthrough) – 高性能方案

这是性能最好、最接近原生硬件的方案。它的原理是将宿主机的整个物理 GPU 直接“穿透”给虚拟机独占使用。虚拟机将完全控制这块 GPU,就像它直接插在虚拟机的物理主板上一样。

  • 优点: 性能损失极小(通常 <5%),几乎可以发挥 GPU 的全部能力。适合机器学习、3D 渲染、科学计算和高性能游戏。
  • 缺点:
    • 独占性: 一旦直通给虚拟机,宿主机本身将无法再使用该 GPU(黑屏或无法驱动)。因此通常需要两块显卡:一块用于宿主机(例如 Intel 核显),另一块用于直通(例如 NVIDIA 独立显卡)。
    • 配置复杂: 需要在 BIOS 和操作系统层面进行较多设置。
    • 硬件和软件要求苛刻: 需要 CPU、主板、GPU 硬件本身支持 IOMMU(Intel 叫 VT-d,AMD 叫 AMD-V)功能,并且需要在 VMware 专业版(Workstation Pro 或 ESXi)上操作。
必要条件检查
  • VMware 版本: 必须是 VMware Workstation Pro 或 VMware Fusion Pro。Player 版本不支持此功能。
  • CPU 和主板: 必须支持 IOMMU(Intel VT-d 或 AMD AMD-V)。请在 BIOS/UEFI 设置中确保该功能已开启。
  • GPU: 理论上支持直通,但 NVIDIA 消费级显卡(GeForce 系列)在非 ESXi 环境下直通时可能会遇到驱动问题(著名的 Error 43)。AMD 显卡通常对直通更友好。
  • 操作系统: 建议使用 Linux 作为宿主机系统,Windows 宿主机做直通更复杂。
  • 配置步骤概要 (以 Linux 宿主机 + Workstation Pro 为例)

    这是一个高度简化的流程,具体步骤因硬件和系统而异。

  • 在宿主机上启用 IOMMU:

    • 编辑宿主机系统的 GRUB 配置(如 /etc/default/grub)。
    • 在 GRUB_CMDLINE_LINUX 行添加引导参数:
      • Intel: intel_iommu=on iommu=pt
      • AMD: amd_iommu=on iommu=pt
    • 更新 GRUB 并重启宿主机。
  • 隔离 GPU:

    • 通过 lspci 命令找到你的独立 GPU 和设备 ID(例如 10de:1b06 和 10de:10ef,分别是设备ID和厂商ID)。
    • 编辑 /etc/modprobe.d/vfio.conf 文件,强制让 vfio-pci 驱动接管你的显卡:options vfio-pci ids=10de:1b06,10de:10ef
  • 配置虚拟机:

    • 关闭 Ubuntu 虚拟机。
    • 在 VMware Workstation 中,打开虚拟机的 .vmx 配置文件(或使用虚拟化编辑器)。
    • 添加以下行,将 PCI 设备暴露给虚拟机:pciHole.start = "536870912"
      pciPassthru0.msiEnabled = "FALSE"
      pciPassthru.use64bitMMIO = "TRUE"

    • 在虚拟机设置 -> 硬件 -> 添加 -> PCI 设备,然后选择你的物理 GPU。
  • 在虚拟机内安装驱动:

    • 启动 Ubuntu 虚拟机。
    • 如果直通的是 NVIDIA 显卡: 去 NVIDIA 官网下载并安装官方驱动。注意:可能需要添加 kernel参数 nomodeset 或使用特定脚本绕过 Error 43(现在新版驱动和VMware对Error 43的兼容性有所改善)。
    • 如果直通的是 AMD 显卡: 安装 amdgpu 驱动。
  • 完成以上步骤后,虚拟机就应该能识别并使用直通的 GPU 了。可以使用 nvidia-smi 或 lspci | grep VGA 命令验证。


    方案二:VMware 虚拟 GPU (vGPU) – 简易共享方案

    这种方案利用 VMware 自带的3D 加速功能,将宿主机的 GPU 能力虚拟化后共享给虚拟机使用。它不是一个完整的物理设备,而是一个虚拟的、功能有限的显卡。

    • 优点:
      • 配置简单: 只需在虚拟机设置中勾选即可。
      • 无需独占: 宿主机和多个虚拟机可以同时共享使用同一块 GPU。
      • 兼容性好: 对宿主机硬件无特殊要求,Workstation Player 和 Pro 版都支持。
    • 缺点:
      • 性能较低: 有较大的性能损失,不适合重度图形计算。
      • 功能受限: 虚拟的 GPU 型号是固定的(如 VMware SVGA 3D),无法完全发挥物理 GPU 的所有特性(如 CUDA 核心、RT Core 等)。对于机器学习训练,基本不可用。
    配置步骤 (非常简单)
  • 确保宿主机已安装正确的 GPU 驱动: 无论是 NVIDIA 还是 AMD,请确保宿主机系统本身已经安装了最新的官方显卡驱动。
  • 配置虚拟机:
    • 关闭 Ubuntu 虚拟机。
    • 右键虚拟机 -> 设置 -> 显示器。
    • 在右侧的“加速 3D 图形”选项中,打勾✔。
    • 你可以根据需要调整为此虚拟机分配的显存大小(例如 2GB)。
  • 在虚拟机内安装 VMware Tools:
    • 这是关键一步。VMware Tools 中包含了优化后的 vmwgfx 显示驱动。
    • 在 Ubuntu 虚拟机中,通常系统会提示你安装,或者你可以通过菜单栏的 虚拟机 -> 安装 VMware Tools 来手动安装。
    • 安装后重启虚拟机。
  • 验证:
    • 在 Ubuntu 虚拟机中,打开终端,输入 lspci | grep -i vga。你应该能看到一个 VMware SVGA 3D 设备。
    • 你可以使用 glxinfo | grep -i vendor 来查看 OpenGL 的供应商信息,它应该显示是 VMware。
    • 你也可以在“系统设置”->“关于”中看到图形信息不再是 llvmpipe(软件渲染),而是 VMware 的显卡。

  • 总结与选择建议

    特性GPU 直通 (Passthrough)VMware 虚拟 GPU (3D Acceleration)
    性能 极高,接近原生 较低,有较大损耗
    复杂度 非常高,需深入配置 非常简单,勾选即可
    硬件要求 苛刻(VT-d/AMD-V, 多显卡) 无特殊要求
    GPU 独占 是,宿主机无法使用 否,宿主机和多个VM共享
    适用场景 机器学习/AI训练、专业渲染、游戏 桌面特效、轻度3D应用、普通游戏
    所需软件 VMware Workstation/Fusion Pro VMware Workstation/Fusion/Player

    如何选择?

    • 如果你的目标是在 Ubuntu 虚拟机里跑 TensorFlow/PyTorch 进行 AI 训练,或者进行大型 3D 渲染,那么你必须选择方案一(GPU 直通),并确保你的硬件满足要求。
    • 如果你的目标仅仅是让 Ubuntu 桌面更流畅,或者运行一些有简单 3D 效果的应用程序(如 Gazebo 仿真),那么方案二(启用 3D 加速) 完全足够,且省时省力。
    赞(0)
    未经允许不得转载:171主机测评 » VMware Ubuntu 虚拟机使用宿主机 GPU 资源的两种方案
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址