所有第 5 代或之后(10代为最后支持GVT-g的版本)的 Intel Core 以及 Xeon E3 v4 CPU 都支持Intel 的图形虚拟化技术。该技术套件的一种变体(称为 GVT-g)允许您将英特尔集成 GPU“拆分”为多个虚拟 GPU。使用此功能,您不仅可以为多个虚拟机添加硬件加速。它还允许您保留来自管理程序的视频输出,因为它始终可以访问 iGPU 的一部分。
在 Proxmox 上启用 PCI 直通和 GVT
第 1 步
通过 SSH 登录到您的 Proxmox 节点或通过 Web gui 打开一个 shell。
第 2 步
使用文本编辑器打开您的 GRUB 配置文件(对于 systemd-boot,请参阅Proxmox PCI passthrough 指南)。
nano /etc/default/grub
第 3 步
找到以 开头的行GRUB_CMDLINE_LINUX_DEFAULT
第 4 步:
将intel_iommu=on
和添加i915.enable_gvt=1
到列表参数,例如:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_gvt=1"`
第 5 步:
保存更改的配置,然后更新 GRUB。
update-grub
步骤 6:
重启 Proxmox 节点。
第 7 步:
重启后,通过 SSH 登录或再次通过 web gui 打开 shell。
第 8 步:
验证您的更改。如果此命令没有产生任何输出,则说明出现问题。
dmesg | grep -e DMAR -e IOMMU
第 9 步:
使用文本编辑器将以下模块添加到/etc/modules
# Modules required for PCI passthrough
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
# Modules required for Intel GVT
kvmgt
exngt
vfio-mdev
第 10 步:
保存更改并重新启动。
将中介/虚拟 GPU 添加到虚拟机
第 11 步
节点重新启动后,再次打开命令行(SSH/web shell)。
第 12 步:
找到 iGPU 的 PCI 地址。
lspci -nnv | grep VGA
这应该会产生类似于以下内容的输出:
00:02.0 VGA compatible controller [0300]: Intel Corporation UHD Graphics 620 (Whiskey Lake) [8086:3ea0] (rev 02) (prog-if 00 [VGA controller])
这里,iGPU 的 PCI 地址是00:02.0。记下那个地址。
第 13 步:
打开 web gui 并导航到Hardware要添加 vGPU 的 VM 选项卡。
第 14 步:
单击Add设备列表上方的 ,然后选择PCI Device
第 15 步:
打开Device下拉菜单并选择 iGPU,您可以使用它的 PCI 地址找到它。请注意,此列表对 PCI 地址使用不同的格式,00:02.0列为0000:00:02.0.
第 16 步:
选择所需的MDev Type. 列出的分辨率仅指 VM 中的最大屏幕分辨率。它们对硬件转码功能没有影响
在硬件转码方面,我真的找不到“更大i915-GTVg_V5_4
和更小i915-GTVg_V5_8
类型之间的性能差异。除非您打算同时使用该i915-GTVg_V5_8
类型的两个实例,否则我只会使用i915-GTVg_V5_4