让 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
- Intel:
- 更新 GRUB 并重启宿主机。
- 编辑宿主机系统的 GRUB 配置(如
- 隔离 GPU:
- 通过
lspci命令找到你的独立 GPU 和设备 ID(例如10de:1b06和10de:10ef,分别是设备 ID 和厂商 ID)。
- 通过
- 配置虚拟机:
- 关闭 Ubuntu 虚拟机。
- 在 VMware Workstation 中,打开虚拟机的
.vmx配置文件(或使用虚拟化编辑器)。 - 在虚拟机设置 -> 硬件 -> 添加 -> PCI 设备,然后选择你的物理 GPU。
- 在虚拟机内安装驱动:
- 启动 Ubuntu 虚拟机。
- 如果直通的是 NVIDIA 显卡:去 NVIDIA 官网下载并安装官方驱动。注意:可能需要添加
kernel 参数 nomodeset或使用特定脚本绕过 Error 43(现在新版驱动和 VMware 对 Error 43 的兼容性有所改善)。

