Proxmox GPU Passthrough with GTX 1050 Ti
這篇文章完整記錄在 Proxmox VE PVE 上,將 NVIDIA GTX 1050 Ti 透過 PCI Passthrough 直通給 VM,並在 VM 內成功啟用 NVIDIA Driver + CUDA 的實務流程。
內容以實際踩過的路為基礎,目標是「可重現、可維護、一次成功」。
架構與前提
- Host:Proxmox VE
- GPU:NVIDIA GeForce GTX 1050 Ti Pascal
- VM:Linux Ubuntu Server
- 用途:CUDA、AI、Docker GPU
限制說明:
- GTX 1050 Ti 無 SR-IOV,一張卡只能給一台 VM
- Passthrough 後,Host 無法再使用該 GPU
一 啟用 IOMMU
BIOS 設定
AMD 平台請確認:
- SVM Enabled
- IOMMU Enabled
GRUB 設定
編輯
/etc/default/grub
設定
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
更新並重開
update-grub
reboot
驗證
dmesg | grep -e IOMMU -e AMD-Vi
看到 IOMMU detected 即成功。
二 綁定 GPU 到 vfio-pci
找出 GPU PCI ID
lspci -nn | grep -E "VGA|Audio"
範例輸出
08:00.0 VGA compatible controller NVIDIA GTX 1050 Ti [10de:1c82]
08:00.1 Audio device NVIDIA HDMI Audio [10de:0fb9]
設定 vfio
/etc/modprobe.d/vfio.conf
內容
options vfio-pci ids=10de:1c82,10de:0fb9 disable_vga=1
Blacklist NVIDIA Driver on Host
/etc/modprobe.d/blacklist-nvidia.conf
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
更新 initramfs
update-initramfs -u -k all
reboot
驗證
lspci -nnk -d 10de:
必須看到
Kernel driver in use: vfio-pci
三 VM 設定
基本設定
- Machine:q35
- BIOS:OVMF UEFI
- Display:none
加入 PCI Device
Add PCI Device
- Device:08:00.0
- 勾選
- All Functions
- Primary GPU
- PCI-Express
不要加入 AMD 主機板音效裝置。
四 Console 行為說明
設定 Primary GPU + Display none 後:
- noVNC 無法使用
- SPICE 無法使用
- Failed to run vncproxy 為正常現象
顯示輸出只會走實體 GPU。
Linux CLI VM 可使用:
- SSH
- xterm.js Serial Console
五 VM 內安裝 NVIDIA Driver
建議版本
GTX 1050 Ti 建議使用
- nvidia-driver-535
原因:
- Pascal 完整支援
- 與 CUDA 12.x 相容
- 穩定性最佳
安裝
sudo apt update
sudo apt install -y nvidia-driver-535
sudo reboot
驗證
nvidia-smi
看到 GPU 即成功。

六 CUDA Runtime 與 Toolkit 差異
nvidia-smi 顯示的 CUDA Version 代表:
- CUDA runtime 可用
但不代表:
- nvcc 已安裝
nvcc 屬於 CUDA Toolkit。
七 安裝 CUDA Toolkit(官方版本)
如果要安裝 Container 版本可以忽略
如果要安裝 Container 版本可以忽略
如果要安裝 Container 版本可以忽略Kubernetes 可以使用 helm 安裝 GPU-Operator (https://docs.rke2.io/add-ons/gpu_operators?GPUoperator=v25.10.x)
不要使用
apt install nvidia-cuda-toolkit
該版本過舊,容易造成版本衝突。
加入官方 Repo
Ubuntu 22.04 範例
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
安裝 Toolkit
sudo apt install -y cuda-toolkit-12-2
環境變數
echo 'export PATH=/usr/local/cuda-12.2/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
驗證
nvcc --version
/usr/local/cuda-12.2/extras/demo_suite/deviceQuery
看到 Result PASS 即完成。
八 成功狀態總結
完成後系統應具備:
- Proxmox GPU Passthrough
- NVIDIA Driver 535
- CUDA Runtime 12.2
- CUDA Toolkit 12.2
可直接使用於:
- PyTorch
- TensorFlow
- Docker GPU
- FFmpeg NVENC
九 常見問題
Failed to run vncproxy
正常行為,代表 GPU 已接管顯示。
nvcc not found
代表 Toolkit 未安裝,runtime 仍可用。
為什麼 driver 是 non-free
代表授權不符合自由軟體定義,並非收費或不安全。
結語
GTX 1050 Ti 雖然是舊卡,但在 Passthrough + CUDA 場景下仍具備極高 CP 值。
這套流程已在實際環境完整驗證,可作為內部 GPU VM 標準範本使用。