PVE 配置显卡直通指南:本地部署 AI 大模型基础环境
本文将详细介绍如何在虚拟化平台 Proxmox Virtual Environment(PVE)中配置显卡直通,将宿主机上的物理显卡直接分配给 AI 虚拟机使用。通过此方案,可以充分利用 GPU 算力运行本地大语言模型(LLM),避免云端调用的延迟与成本。
在 Proxmox VE 虚拟化环境中配置 NVIDIA 显卡直通的具体步骤,包括宿主机 IOMMU 开启、VFIO 模块加载、内核参数调整以及虚拟机内显卡驱动的安装与验证。通过该方案可实现物理显卡资源直接分配给 AI 计算任务,为本地运行大语言模型提供必要的硬件加速支持,并包含常见故障排查建议。

本文将详细介绍如何在虚拟化平台 Proxmox Virtual Environment(PVE)中配置显卡直通,将宿主机上的物理显卡直接分配给 AI 虚拟机使用。通过此方案,可以充分利用 GPU 算力运行本地大语言模型(LLM),避免云端调用的延迟与成本。
Intel VT-x、Intel VT-d (或 AMD-Vi) 以及 Above 4G Decoding注意:本文以 NVIDIA P104-100 为例,配置逻辑适用于大多数消费级及专业级 NVIDIA 显卡。AMD 显卡直通原理类似,但驱动配置有所不同。
在 PVE 宿主机上完成底层配置是直通成功的关键,主要涉及 IOMMU 开启、VFIO 模块加载及驱动屏蔽。
IOMMU(Input-Output Memory Management Unit)允许操作系统管理设备的 DMA 访问,是实现设备隔离和直通的基础。
编辑 Grub 配置文件
使用 root 权限编辑 /etc/default/grub:
vi /etc/default/grub
修改启动参数
找到 GRUB_CMDLINE_LINUX_DEFAULT 行,添加以下参数:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream"
参数说明:
intel_iommu=on:启用 Intel IOMMU 支持。iommu=pt:Performance mode,提高性能并防止 Linux 错误地直通不支持的设备。initcall_blacklist=sysfb_init:禁用系统帧缓冲初始化,避免冲突(替代旧版的video=efifb:off,vesafb:off)。pcie_acs_override=downstream:强制覆盖 PCIe ACS 能力,便于拆分 IOMMU 组,使更多设备可被单独直通。
*注:若使用 AMD CPU,请将 intel_iommu=on 替换为 amd_iommu=on。
更新 GRUB 配置
update-grub
执行后应显示生成 grub 配置文件成功。
加载 VFIO 内核模块 确保 VFIO 相关模块在启动时自动加载:
echo vfio >> /etc/modules
echo vfio_pci >> /etc/modules
echo vfio_iommu_type1 >> /etc/modules
# PVE 8.0+ 通常不需要手动添加 vfio_virqfd
重启系统
reboot
验证 IOMMU 状态 重启后检查日志确认 IOMMU 已启用:
dmesg | grep -E "DMAR|IOMMU"
预期输出包含 DMAR: IOMMU enabled。
验证 VFIO 模块
dmesg | grep -i vfio
预期输出包含 VFIO - User Level meta-driver version: 0.3。
验证中断重映射
dmesg | grep 'remapping'
若看到 Enabled IRQ remapping 则说明中断重映射正常。部分老旧主板即使 BIOS 开启 X2APIC 也可能报错,此时需参考 2.3 节配置。
为了防止宿主机占用显卡,必须在直通前屏蔽其默认驱动。
创建黑名单文件
vi /etc/modprobe.d/blacklist.conf
添加屏蔽规则 根据显卡品牌选择对应内容:
# NVIDIA 显卡屏蔽
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
blacklist nvidia_drm
# AMD 显卡屏蔽(如需)
# blacklist amdgpu
# blacklist radeon
保存后执行 update-initramfs -k all -u 更新镜像。
某些硬件环境下,IOMMU 可能无法完美处理所有中断请求,导致直通失败。可添加以下配置允许不安全中断:
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
为防止虚拟机异常导致宿主机崩溃,可调整 KVM 参数:
echo "options kvm ignore_msrs=1 report_ignored_msrs=0" > /etc/modprobe.d/kvm.conf
ignore_msrs:忽略未处理的 MSR 写入。report_ignored_msrs:不报告此类异常。update-initramfs -k all -u
reboot
创建 Ubuntu 虚拟机 在 PVE 界面新建 VM,分配足够的 CPU 核心和内存(建议至少 4 核 8G)。
添加 PCI 设备
虚拟机启动后,需要安装 NVIDIA 专有驱动才能识别显卡。
进入 Ubuntu 虚拟机终端,更新源并安装必要工具:
sudo apt update
sudo apt install build-essential dkms linux-headers-$(uname -r)
推荐使用官方 .run 文件或 PPA 源。以下以官方驱动为例:
下载驱动 前往 NVIDIA 官网下载对应版本的 Linux 驱动包(如 550.xx 版本)。
停止图形界面服务
sudo systemctl stop gdm3 # 或使用 lightdm
安装驱动
chmod +x NVIDIA-Linux-x86_64-550.54.15.run
sudo ./NVIDIA-Linux-x86_64-550.54.15.run --no-opengl-files
注意:安装过程中若提示保留当前配置,选择 No;若询问是否注册内核模块,选择 Yes。
重启虚拟机
sudo reboot
驱动安装完成后,执行以下命令检查:
nvidia-smi
若能看到显卡型号(如 P104-100)、显存大小及驱动版本,说明直通成功。
示例输出:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.15 Driver Version: 550.54.15 CUDA Version: 12.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA P104-100 On | 00000000:00:10.0 Off | N/A |
| 72% 35C P8 6W / 180W | 2MiB / 8192MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
若需运行 LLM,建议进一步测试 PyTorch 是否识别到 GPU:
import torch
print(torch.cuda.is_available())
print(torch.cuda.get_device_name(0))
若输出 True 及显卡名称,则环境配置完全就绪。
dmesg 是否有 vfio-pci 绑定成功的日志。pcie_acs_override 参数为 downstream,multifunction。/etc/modprobe.d/blacklist.conf 是否正确生效。通过上述步骤,我们成功在 PVE 平台上实现了 NVIDIA 显卡的直通,为本地 AI 大模型推理提供了硬件加速基础。该方案不仅降低了算力成本,还保证了数据隐私安全。后续可根据实际需求进一步优化网络配置、存储挂载及容器化部署(如 Docker + Kubernetes),构建更完善的私有化 AI 基础设施。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online