CentOS虛擬機GPU支持指南
在CentOS虛擬機中使用GPU主要分為兩種場景:虛擬顯卡(軟件加速)和GPU直通(硬件加速)。前者適用于普通圖形需求(如桌面環境),后者適用于高性能計算(如深度學習、圖形渲染),需根據需求選擇合適方案。
虛擬顯卡是虛擬化平臺提供的模擬顯卡(如KVM的virtio-gpu
、VMware的SVGA
),通過軟件模擬實現圖形輸出,無需物理GPU支持,適合日常辦公、網頁瀏覽等輕量級任務。
qemu-guest-agent
和spice-vdagent
,提升圖形性能和交互體驗;sudo yum install -y qemu-guest-agent spice-vdagent
open-vm-tools
,支持自動調整分辨率、剪貼板共享等功能;sudo yum install -y open-vm-tools
lspci | grep -i virtio
(KVM)或lspci | grep -i vmware
(VMware)命令,確認虛擬顯卡已被識別。GPU直通通過虛擬化技術(如KVM的PCI Passthrough)將宿主機的物理GPU直接分配給虛擬機,虛擬機可直接調用GPU硬件資源,實現接近物理機的性能,適合深度學習、科學計算等場景。
virt-manager
圖形工具配置)。/etc/default/grub
文件,在GRUB_CMDLINE_LINUX
行添加:
intel_iommu=on iommu=pt
;amd_iommu=on iommu=pt
。sudo grub2-mkconfig -o /boot/grub2/grub.cfg # CentOS 7
sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg # CentOS 8/Stream
sudo reboot
dmesg | grep -i iommu
,若輸出包含“IOMMU enabled”則表示成功。echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
sudo dracut -f # 重建initramfs
sudo reboot
/etc/modules-load.d/vfio-pci.conf
文件,添加:vfio
vfio_iommu_type1
vfio_pci
保存后重啟,運行lsmod | grep vfio
確認驅動加載。lspci -nnk | grep -i nvidia
獲取GPU的PCI地址(如0000:01:00.0
)和設備ID(如10de:1eb8
),編輯/etc/modprobe.d/vfio.conf
文件,添加:options vfio-pci ids=10de:1eb8
重啟后,將GPU從宿主機解綁并綁定到VFIO驅動:echo "0000:01:00.0" | sudo tee /sys/bus/pci/drivers/vfio-pci/bind
virt-manager
圖形工具,選擇“添加硬件”→“PCI主機設備”,勾選宿主機的GPU設備(如0000:01:00.0
),點擊“完成”。virsh edit <虛擬機名稱>
,在<devices>
標簽內添加:<hostdev mode="subsystem" type="pci" managed="yes">
<driver name="vfio"/>
<source>
<address domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
</source>
</hostdev>
保存后重啟虛擬機。# 添加ELRepo倉庫
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
# 安裝NVIDIA驅動
sudo yum install -y nvidia-driver-latest-dkms
nvidia-smi
,若輸出顯示GPU型號、驅動版本及顯存信息,則表示驅動安裝成功。通過上述配置,CentOS虛擬機可根據需求選擇虛擬顯卡或GPU直通,滿足不同場景的圖形性能要求。