原文链接:
- https://www.server-world.info/en/note?os=CentOS_7&p=kvm&f=10
- https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF
网上很多配置显卡直通的教程竟然要付费,让我很不爽,所以直接决定在 Google 上找一篇可用的,翻译一下。就当做个贡献了。
本文目标:配置虚拟机的GPU直通。配置完之后,就可以在虚拟机里面使用GPU了,用于机器学习/深度学习。
前置条件
显卡直通依赖于一些虚拟化技术, 可能在你的机器上不可用, 必须先检查以下条件:
- 首先CPU必须支持硬件虚拟化(for KVM)和IOMMU(for 直通)
- 兼容的 Intel CPUs 列表 (Intel VT-x and Intel VT-d). 可以理解为 Intel VT-x 是CPU的虚拟化,VT-d 是 I/O 设备的虚拟化,两个东西不一样。
- Bulldozer 及更高版本(包括 Zen)的所有 AMD CPU 都应该兼容。
- 主板必须支持 IOMMU
- 芯片组和 BIOS 必须都支持 IOMMU。很难直接看出来是否支持,但是有一个比较完整的列表供查询:Xen Wiki 和 Wikipedia:List of IOMMU-supporting hardware
- GPU ROM 必须支持 UEFI。2012 年以后的 GPU 几乎都支持。
比较方便的检查方法就是在BIOS设置中找到并打开 VT-d (Intel) 或者 IOMMU (AMD)。如果没有这些选项,那就是不支持。
第一步 在KMV主机上启动IOMMU
# 首先编辑文件 $ vim /etc/default/grub # 第6行: 添加 intel_iommu=on (如果是AMD CPU, 添加 [amd_iommu=on]) # 还应该添加参数 iommu=pt, 阻止 Linux 接触不能透传的设备 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="rd.l