打造 All in One 主机之为 Proxmox VE 配置 GPU 直通

最近在 TX1310 M3 上的 Proxmox VE 虚拟机里安装了 Immich,导入照片以后发现它有机器学习功能,然而默认模型只支持英文搜索并且准确度比较差+ CPU 学习的效率非常低,再加上 TX1310 M3 的电源只有 250W 想在上面插显卡的话就只有 GTX 1650、RTX 3050 之类 70W 左右的显卡可以选了。那不如就把吃灰了好久的台式机(Ryzen 5700x + RTX3080)拿出来用一用好啦。

但如果我的台式机只用来跑 immich 的机器学习,那岂不是性能非常浪费?于是就想到了能不能用台式机打造一台 All in One 的机器来替换掉 TX1310 M3 呢?这样不仅性能更好了,需要的时候还能拿来打一打游戏w

本教程使用的机器配置为:
虚拟化平台:Proxmox VE 8.2 (由 7.4 升级上去的,在搭载 Nvidia 显卡且无核显的情况下直接装 8.2 会卡启动,需要先安装 7.4 并屏蔽 Nvidia 驱动后再升级至 8.2)
主板:ASRock B550 Pro4 (BIOS: 3.40)
CPU:AMD Ryzen 7 5700X
GPU:ASUS TUF Gaming GeForce RTX 3080

开始前的准备工作

在开始前可以考虑升级一下 BIOS 以避免发生某些玄学问题(x
首先按 F2 进入 BIOS 设置中,在 Advanced–>AMD CBS–>NBIO Common Options 中开启 IOMMU 功能(Intel 用户请启用 VT-d 功能)

保存后启动至 Proxmox VE 控制台,并进入 Shell 页面

查询 GPU 设备的 ID

输入以下命令来查询 GPU 设备的 PCI 地址

lspci -nnv | grep VGA

显示应该类似于下面这样,04:00 即为我们要寻找的 PCI 地址

04:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102 [GeForce RTX 3080] [10de:2206] (rev a1) (prog-if 00 [VGA controller])

由于上一条命令只显示了 GPU 设备组中的一部分功能,接下来我们来看看这个设备组都有哪些功能

lspci -s 04:00

从下面返回的信息中我们可以看到该 GPU 设备组包含了两个功能,分别为 04:00.0 的 VGA 设备和 04:00.1 的 Audio 设备

04:00.0 VGA compatible controller: NVIDIA Corporation GA102 [GeForce RTX 3080] (rev a1)
04:00.1 Audio device: NVIDIA Corporation GA102 High Definition Audio Controller (rev a1)

接下来我们用下面的命令来获取一下这些设备的 ID

lspci -s 04:00 -n

我这边返回了以下的值,可以看到 VGA 设备和 Audio 设备的 ID 分别为 10de:220610de:1aef

04:00.0 0300: 10de:2206 (rev a1)
04:00.1 0403: 10de:1aef (rev a1)

编辑 grub 配置文件

在上一步中我们找到了 GPU 对应的 ID 信息:10de:2206,10de:1aef

接下来我们来修改一下 grub 配置文件

nano /etc/default/grub

找到 GRUB_CMDLINE_LINUX_DEFAULT 这一行,默认应该为

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

将这一行修改为以下内容,(Intel 用户需要在 quiet 后加入 intel_iommu=on 参数)
然后将 vfio-pci.ids= 后的值替换为在上一步中 GPU 所对应的 ID
**请注意,对于 B550 主板默认的 IOMMU 分组问题(很多设备被放在了同一个组中),可以通过在 quiet 后加入 pcie_acs_override=downstream,multifunction 启用 Alex Williamson’s ACS override patch 来缓解。这将强制启用 IOMMU 分组以便进行 PCIe 直通。但有可能会消弱设备间的隔离增加被 DMA 攻击风险,并且由于不完全的隔离还有可能会由于设备间的干扰导致数据损坏,尤其是对于存储设备来说这可能是致命的。

如果你有生产需要则建议更换 X570 等高阶主板(
是的我换了!从 B550 Pro4 换到了 X570S PG Riptide!默认的 IOMMU 分组信息我放在文章末尾了,有需要的可以参考

GRUB_CMDLINE_LINUX_DEFAULT="quiet video=efifb:off video=vesa:off vfio-pci.ids=10de:2206,10de:1aef vfio_iommu_type1.allow_unsafe_interrupts=1 kvm.ignore_msrs=1 modprobe.blacklist=radeon,nouveau,nvidia,nvidiafb,nvidia-gpu"

以下是未启用 ACS override patch 时的分组状态,可以看到 IOMMU Group 0 里居然包含了那么多设备,而且显卡所在的 IOMMU Group 2 里也包含了桥设备,如果只有一块显卡并且不直通IOMMU Group 0 中的设备时这样并没有问题,如果有更多设备需要直通进虚拟机时可能会遇到一些问题(

IOMMU Group 0:
        00:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
        00:01.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
        01:00.0 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] 500 Series Chipset USB 3.1 XHCI Controller [1022:43ee]
        01:00.1 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] 500 Series Chipset SATA Controller [1022:43eb]
        01:00.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 500 Series Chipset Switch Upstream Port [1022:43e9]
        02:08.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:43ea]
        03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
IOMMU Group 1:
        00:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 2:
        00:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
        00:03.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
        04:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102 [GeForce RTX 3080] [10de:2206] (rev a1)
        04:00.1 Audio device [0403]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
IOMMU Group 3:
        00:04.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 4:
        00:05.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 5:
        00:07.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 6:
        00:07.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 7:
        00:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 8:
        00:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 9:
        00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 61)
        00:14.3 ISA bridge [0601]: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge [1022:790e] (rev 51)
IOMMU Group 10:
        00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 0 [1022:1440]
        00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 1 [1022:1441]
        00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 2 [1022:1442]
        00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 3 [1022:1443]
        00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 4 [1022:1444]
        00:18.5 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 5 [1022:1445]
        00:18.6 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 6 [1022:1446]
        00:18.7 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 7 [1022:1447]
IOMMU Group 11:
        05:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function [1022:148a]
IOMMU Group 12:
        06:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
IOMMU Group 13:
        06:00.1 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Cryptographic Coprocessor PSPCPP [1022:1486]
IOMMU Group 14:
        06:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller [1022:149c]
IOMMU Group 15:
        06:00.4 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse HD Audio Controller [1022:1487]

以下是启用了 ACS override patch 时的分组状态,可以看到设备都被分到了独立的 IOMMU Group 中(但是代价是什么呢?我不知道)

IOMMU Group 0:
        00:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 1:
        00:01.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
IOMMU Group 2:
        00:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 3:
        00:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 4:
        00:03.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
IOMMU Group 5:
        00:04.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 6:
        00:05.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 7:
        00:07.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 8:
        00:07.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 9:
        00:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 10:
        00:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 11:
        00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 61)
        00:14.3 ISA bridge [0601]: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge [1022:790e] (rev 51)
IOMMU Group 12:
        00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 0 [1022:1440]
        00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 1 [1022:1441]
        00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 2 [1022:1442]
        00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 3 [1022:1443]
        00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 4 [1022:1444]
        00:18.5 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 5 [1022:1445]
        00:18.6 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 6 [1022:1446]
        00:18.7 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 7 [1022:1447]
IOMMU Group 13:
        01:00.0 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] 500 Series Chipset USB 3.1 XHCI Controller [1022:43ee]
IOMMU Group 14:
        01:00.1 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] 500 Series Chipset SATA Controller [1022:43eb]
IOMMU Group 15:
        01:00.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 500 Series Chipset Switch Upstream Port [1022:43e9]
IOMMU Group 16:
        02:08.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:43ea]
IOMMU Group 17:
        03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
IOMMU Group 18:
        04:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102 [GeForce RTX 3080] [10de:2206] (rev a1)
IOMMU Group 19:
        04:00.1 Audio device [0403]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
IOMMU Group 20:
        05:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function [1022:148a]
IOMMU Group 21:
        06:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
IOMMU Group 22:
        06:00.1 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Cryptographic Coprocessor PSPCPP [1022:1486]
IOMMU Group 23:
        06:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller [1022:149c]
IOMMU Group 24:
        06:00.4 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse HD Audio Controller [1022:1487]

保存后更新一下 GRUB

update-grub

添加vfio模块

接下来我们需要添加一些 vfio 模块以允许 PCI 直通

nano /etc/modules

将一下内容添加到文件末尾

# Modules required for PCI passthrough
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

保存,然后更新一下所做的更改

update-initramfs -u -k all

完成后重启一下 Proxmox VE

检查 IOMMU 状态

重启完成后我们来检查一下 IOMMU 是否已启用

dmesg | grep -e DMAR -e IOMMU

对于 AMD 用户你应该会看到如下输出(Wiki 上说还应该有 DMAR: IOMMU enabled 这一输出,但不知道为什么我没有,然而也是成功的)

[    0.000000] Warning: PCIe ACS overrides enabled; This may allow non-IOMMU protected peer-to-peer DMA
[    0.596793] pci 0000:00:00.2: AMD-Vi: IOMMU performance counters supported
[    0.604661] perf/amd_iommu: Detected AMD IOMMU #0 (2 banks, 4 counters/bank).

接下来检查一下 GPU 是否位于单独的 IOMMU Group 中,如果像 编辑 grub 配置文件 中未启用 ACS override patch 时显卡所在的 IOMMU Group 2 中含有其它桥设备,则在下一步的设置中不可以选择 All Functions 选项。

#!/bin/bash
shopt -s nullglob
for g in $(find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V); do
    echo "IOMMU Group ${g##*/}:"
    for d in $g/devices/*; do
        echo -e "\t$(lspci -nns ${d##*/})"
    done;
done;

为 Windows 11 设置 GPU 直通

注意!如果需要在 Windows 11 虚拟机中游玩带有 Easy Anti-Cheat 组件的游戏(例如 VRChat, Apex Legends 等)的话,则需要一些额外操作来通过 EAC 检测,请先浏览这篇文章:(还在写(( )

先来说说 GPU 直通在 Windows 上的一些注意事项

  • 需要将该虚拟机的 Display 设置为 none 以便直通 GPU 能正常工作(建议在安装完 Windows 并安装好显卡驱动后再设置为 none,要不然可能由于驱动问题会无显示输出)
  • 显示器必须连接到 GPU 的物理输出接口上,否则 Windows 可能无法正确初始化 GPU(也可以使用 HDMI 诱骗器等来让 Windows 以为你连接了显示器)
  • 建议配置好远程桌面以避免无法显示的问题

登入 Proxmox Web 控制台并选择你要将 GPU 直通进的 Windows 虚拟机,确保 BIOS 为 OVMF,Machine 为 q35。然后在 Hardware 配置中点击上方的 Add 并选择 PCI Device

接下来选择 Raw Device 将要直通的 GPU 添加进去

勾选 Advanced 并选中 PCI-Express
如果你的 GPU 所在的分组像上面 未启用 ACS override patch 时的分组状态 那样除了显卡自己的两个设备外还有其它桥设备等的话,则不要勾选 All Functions
Primary GPU 选项则需要确认显示器有画面了以后再打勾,并将 Display 从 Default 更改为 none(也许保持 Default 也行?反正都 Primary GPU 了(

接下来再将显卡的音频控制器添加进去
如果你 GPU 所在的 IOMMU 分组很干净的话,则可以在上一步中选择 All Functions,这样就不需要添加音频控制器进去了

同样勾选 PCI-Express 选项,注意不要勾选 Primary GPU!这是音频设备!

完成后的应为如下

确认显示器有画面的话可以将 Display 更改为 none,如果没有则需要先在 Console 或远程桌面中操作机器安装好驱动

关于 ACS override patch 相关风险的一些讨论

IOMMU Groups, inside and out – VFIO tips and tricks
Is ACS override really that unsafe? – reddit
Is there way to validate if AMD B550 chipset actually support ACS? – reddit
Why do IOMMU groups change? – reddit

关于 B550 芯片组的 IOMMU 问题的一些讨论

简单来讲就是 X570 芯片组由 AMD 设计/制造,会比由第三方公司设计/制造的 B550 芯片组拥有更好的 IOMMU 分组,几乎每个 PCIe 插槽甚至板载设备都会被正确隔离到单独的组里

 I need help setting up double gpu passthrough – Proxmox Forums
AMD-Vi IO_PAGE_FAULT (iommu issue) – Proxmox Forums

买了 ASRock X570S PG Riptide,给大家看看默认的 IOMMU 分组状态!X570 的分组真的非常漂亮呢!

IOMMU Group 0:
        00:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 1:
        00:01.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
IOMMU Group 2:
        00:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 3:
        00:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 4:
        00:03.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge [1022:1483]
IOMMU Group 5:
        00:04.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 6:
        00:05.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 7:
        00:07.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 8:
        00:07.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 9:
        00:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge [1022:1482]
IOMMU Group 10:
        00:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B] [1022:1484]
IOMMU Group 11:
        00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 61)
        00:14.3 ISA bridge [0601]: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge [1022:790e] (rev 51)
IOMMU Group 12:
        00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 0 [1022:1440]
        00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 1 [1022:1441]
        00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 2 [1022:1442]
        00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 3 [1022:1443]
        00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 4 [1022:1444]
        00:18.5 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 5 [1022:1445]
        00:18.6 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 6 [1022:1446]
        00:18.7 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 7 [1022:1447]
IOMMU Group 13:
        01:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Matisse Switch Upstream [1022:57ad]
IOMMU Group 14:
        02:07.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge [1022:57a3]
IOMMU Group 15:
        02:08.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge [1022:57a4]
        04:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
        04:00.1 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller [1022:149c]
        04:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller [1022:149c]
IOMMU Group 16:
        02:09.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge [1022:57a4]
        05:00.0 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7901] (rev 51)
IOMMU Group 17:
        02:0a.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge [1022:57a4]
        06:00.0 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7901] (rev 51)
IOMMU Group 18:
        03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. Killer E3000 2.5GbE Controller [10ec:3000] (rev 06)
IOMMU Group 19:
        07:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102 [GeForce RTX 3080] [10de:2206] (rev a1)
        07:00.1 Audio device [0403]: NVIDIA Corporation GA102 High Definition Audio Controller [10de:1aef] (rev a1)
IOMMU Group 20:
        08:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function [1022:148a]
IOMMU Group 21:
        09:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP [1022:1485]
IOMMU Group 22:
        09:00.1 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Cryptographic Coprocessor PSPCPP [1022:1486]
IOMMU Group 23:
        09:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller [1022:149c]
IOMMU Group 24:
        09:00.4 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse HD Audio Controller [1022:1487]

参考资料

PCI Passthrough – Proxmox WIKI
Proxmox GPU Passthrough to VM – 3os
OVMF による PCI パススルー – ArchWiki

如果你觉得这篇文章有帮助,欢迎使用下面的链接在 OFUSE 上给千夏打赏

通过 OFUSE 给千夏打赏

“打造 All in One 主机之为 Proxmox VE 配置 GPU 直通”的3个回复

  1. 日本人です。
    あなたのおかげで無事proxmox ve でAPEXを起動させることができました
    ありがとうございます。
    ですが残念なことにAPEXだけ10FPSまで低下する問題が起きています。

    さらに奇妙なことにOW2、Tomb Raider、BeamNG.drive、Euro Truck Simulator2
    などのゲームは全て100FPS以上出ます。

    可能であれば助言をもらえないでしょうか?

    よろしくお願いいたします

    1. コメント・ご支援ありがとうございます。

      APEXだけFPSが著しく低下するのは、確かに不思議ですね。
      ぜひ一緒に検証させていただきたいところなのですが、残念ながらメンタル面の不調によりゲーミングPCを売却してしまい、現在は検証できる環境がございません。
      一応当時の環境では、APEXをはじめRainbow Six Siege、Hell Let Loose、World of Warshipsなどのゲームはすべて問題なく動作していました。
      GPUやCPU、RAM、ドライバー、バージョン、設定などの変数が多すぎるため、これらを一つずつ見直すなど地道に試していくしかないかもしれませんね……。
      念の為APEXの時のCPU・GPU使用率と他のゲームの時に差があるかどうか調べることをお勧めいたします。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注