背景

家里机房有台 Dell R730,想利用起来跑本地大模型和视频生成。显卡选了两张 Tesla P40(24GB 显存一张,二手便宜量大),通过 PCIe 直通(VFIO)给虚拟机里的 AI 环境专用,不和宿主机抢资源。

硬件清单

  • 主机:Dell R730(双路 E5,内存足够)
  • 显卡:Tesla P40 × 2(24GB GDDR5,Pascal 架构)
  • 配件:PCIe 4.0 riser 延长线(解决机箱内走线和间距问题)
  • 虚拟化:Proxmox VE(PVE)
  • 虚拟机:aiserver(Ubuntu 26.04)

为什么选 P40

  • 24GB 大显存,跑 7B-32B 量化模型够用
  • 二手价格极低,性价比高
  • PCIe 3.0 x16,直通后性能损失小
  • 缺点:Pascal 架构,没有 Tensor Core,不支持 FP8,推理靠 FP16

物理安装

R730 内部空间有限,两张全高全长显卡加上供电和走线,直接插主板容易打架。用 PCIe riser 延长线把显卡引导到合适位置,注意:

  • 延长线要选 PCIe 4.0 规格向下兼容
  • 固定牢固,避免震动导致接触不良
  • 供电线单独走,不要和数据线捆一起

PVE 直通配置

1. 加载 VFIO 模块

编辑 /etc/modules,加入:

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

2. GRUB 开启 IOMMU

编辑 /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

更新 grub 后重启:

update-grub && reboot

3. 屏蔽开源驱动

把 P40 的 PCI ID 加入黑名单,避免宿主机加载 nouveau/nvidia:

echo "options vfio-pci ids=10de:1b38,10de:1b38" >> /etc/modprobe.d/vfio.conf
update-initramfs -u

4. 虚拟机挂载 GPU

在 VM 配置文件里把两张 PCI 设备加进去:

machine: q35
hostpci0: 0000:01:00,pcie=1
hostpci1: 0000:02:00,pcie=1

验证

启动 VM 后,在系统里执行:

lspci | grep -i nvidia

应该看到两张 NVIDIA Corporation Device。然后装 NVIDIA 驱动,nvidia-smi 能识别两张 P40:

nvidia-smi

ECC 的小坑

P40 默认 ECC 开启,开启 ECC 后可用显存会少一部分(大约 1.5GB),所以 GPU1 显示可用显存比 GPU0 略小。这是正常现象,不是硬件故障。

小结

直通完成后,宿主机 PVE 只负责虚拟化和网络,两张 P40 完整交给虚拟机用。下一步就是在虚拟机里装 Ollama 和 OpenWebUI 跑大模型。

Last modification:November 10, 2026
如果觉得我的文章对你有用,请随意赞赏