Site icon 咖啡偶-IT日常

PVE 8.2 RTX 5090 GPU Passthrough (顯卡通透)

PVE 8 加上GPU Passthrough(顯卡通透)可能是5090或主機板太新,一直卡關,因此我有必要紀錄一下如何攻克。

話說我前幾天終於說服公司購買好一點的顯示卡,因為什麼PCI-E 16倍是什麼鬼我都不懂,於是快馬加鞭衝去原價屋找專業店家買主機,先說要買頂規的5090,店家就自動會展開相關配置了,而且額外不收費。

主機板:Z890 Aorus master 
CPU:Inten Core ultra 9 285K
記憶體:256GB
M.2.: 1T
顯卡:ASUS ROG ASTRAL RTX 5090 32G 水冷
power:1300 瓦

收到貨之後,想說主機這麼好,應該要安裝pve多工使用;但之前一直沒試過顯卡通透功能,爬文得知

  1. 主機板要打開vt-d (iommu),以及sr-iov功能
  2. pve 修改支援PCI passthrough,開通vfio-pci功能
    請參考官網作法,顯卡做通透之後,就不能讓pve主機使用(只能用在虛擬主機)。
    PCI passthrough 允許您在虛擬機 (VM) 內使用實體 PCI 裝置 (顯示卡、網際網路卡),但此功能僅限於 KVM 虛擬化環境。如果您對某裝置執行「PCI passthrough」,該裝置將不再可供主機使用。請注意,已通過 PCI passthrough 的虛擬機無法進行遷移。

實際上我安裝pve 8.4.1的時候照著設定,一直不行,後來想說是不是版本太新,因此改用8.3.1也不行,後來再改成8.2.2也不行,我總共測試了這些做法:

  1. Avic.blog
  2. Zen’s blog
  3. ithome的william mou

文章都說只要開通vfio-pci以及iommu就可以了,我照做也開通成功。

lspci -nnk

dmesg | grep -e DMAR -e IOMMU

但實際上新增vm一直無法出現開機bios畫面,一看就知道通透失敗。

甚至我都扒出有些設定新版pve 8 棄用,也改用新的設定 initcall_blacklist=sysfb_init,但一樣GG。

我後來繼續拿8.2.2來測試其他作法(不想再重灌8.4.1),無意間在這裡發現新大陸,裡面提到一個設定要加上去

我測試了也還是失敗,就在此時我突然如到電影盜夢空間(全面啟動)情節,不自覺自己下了一個指令 modinfo -p vfio-pci,系統居然多嘴跟我說還有其他設定要加上企

我把這些設定都加到 /etc/modprobe.d/vfio.conf 裡面( 加完記得要 update-initramfs -u -k all )。

disable_denylist=1 disable_idle_d3=1 enable_sriov=1

再重開vm就成功進入開機畫面了,vm 安裝完ubuntu 24.04,還要安裝 nvidia 驅動測試是否能通透。

我參考了這兩篇

https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/index.html#ubuntu-installation

https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#common-installation-instructions-for-ubuntu

安裝完畢,執行 nvidia-smi,看到心愛的 5090 就安心了。

最後安裝docker(須重開docker),我參考張騰元文章

docker安裝完畢,我讓docker也能使用 nvidia ,請參考 https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

終極目標:安裝 ollama ,讓大語言模型使用顯卡

docker run -d –gpus=all -v ollama:/root/.ollama -p 11434:11434 –name ollama ollama/ollama

至此大功告成。

Exit mobile version