ได้การ์ดจอมือสอง NVIDIA Quadro P600 มาในงบเพียง 900 บาท จะนำมาใช้รันงาน AI ขนาดเล็ก

ในบล็อกนี้ จะไม่ใช้วิธี GPU Passthrough เพื่อเชื่อมต่อกับ VM แต่จะเลือกใช้งานผ่าน Container (CT) บน Proxmox แทน เพราะวิธีนี้สะดวกกว่าและสามารถแชร์การ์ดจอให้ หลาย CT ใช้งานพร้อมกัน ได้ง่ายกว่า

ตรวจสอบว่าระบบเห็นการ์ดจอ แล้วหรือยัง lspci | grep NVIDIA

01:00.0 VGA compatible controller: NVIDIA Corporation GP107GL [Quadro P600] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP107GL High Definition Audio Controller (rev a1)

ติดตั้งเครื่องมือที่จำเป็นสำหรับคอมไพล์ไดรเวอร์ NVIDIA

apt install -y dkms build-essential pve-headers-$(uname -r)

ติดตั้ง NVIDIA Driver สำหรับ Linux x64

👉 download driver

wget https://us.download.nvidia.com/XFree86/Linux-x86_64/580.82.09/NVIDIA-Linux-x86_64-580.82.09.run
chmod +x NVIDIA-Linux-x86_64-580.82.09.run
./NVIDIA-Linux-x86_64-580.82.09.run --dkms

หลังจากติดตั้งไดรเวอร์เสร็จแล้ว

ตรวจสอบว่าโมดูล NVIDIA ถูกติดตั้งและเชื่อมกับ DKMS สำเร็จหรือไม่ dkms status

nvidia/580.82.09, 6.14.11-4-pve, x86_64: installed

ตรวจสอบรายละเอียดของการ์ดจอ NVIDIA nvidia-smi

+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.82.09              Driver Version: 580.82.09      CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| 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  Quadro P600                    On  |   00000000:01:00.0 Off |                  N/A |
| 34%   42C    P8            N/A  /  N/A  |       0MiB /   2048MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

แชร์ GPU ให้ Container (CT) โดยการเช็ค ls -l /dev/nvidia*

crw-rw-rw- 1 root root 195,   0 Nov  2 12:03 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 Nov  2 12:03 /dev/nvidiactl
crw-rw-rw- 1 root root 510,   0 Nov  2 12:03 /dev/nvidia-uvm
crw-rw-rw- 1 root root 510,   1 Nov  2 12:03 /dev/nvidia-uvm-tools

/dev/nvidia-caps:
total 0
cr-------- 1 root root 235, 1 Nov  2 12:03 nvidia-cap1
cr--r--r-- 1 root root 235, 2 Nov  2 12:03 nvidia-cap2

แก้ไขไฟล์ config CT nano /etc/pve/lxc/<CT_ID>.conf จากนั้น pct reboot <CT_ID>

dev1: /dev/nvidia0 
dev2: /dev/nvidiactl 
dev3: /dev/nvidia-uvm 
dev4: /dev/nvidia-uvm-tools 
dev5: /dev/nvidia-caps/nvidia-cap1
dev6: /dev/nvidia-caps/nvidia-cap2

โยนไฟล์ NVIDIA Driver (ที่โหลดไว้บน host) ไปยัง CT

pct push <CT_ID> NVIDIA-Linux-x86_64-580.82.09.run /home/teera/NVIDIA-Linux-x86_64-580.82.09.run

เข้าไปยัง CT pct enter <CT_ID> เพื่อติดตั้ง NVIDIA Driver

chmod +x NVIDIA-Linux-x86_64-580.82.09.run
sudo ./NVIDIA-Linux-x86_64-580.82.09.run -no-kernel-modules

หลังติดตั้งเสร็จ เช็คสถานะบน CT nvidia-smi


💡 Tips:

หากมีการอัปเดต Kernel ควรติดตั้ง header ใหม่และให้ DKMS คอมไพล์โมดูลอัตโนมัติ

apt install pve-headers-$(uname -r) && dkms autoinstall

เพื่อให้ GPU พร้อมใช้งานทุกครั้งที่บูตเครื่อง set crontab ให้รันคำสั่งเปิดโหมด Persistence Mode

# auto run nvidia-smi at boot
@reboot /usr/bin/nvidia-smi -pm 1