Proxmox VE पर Ubuntu 24.04 VM में Tesla V100 के लिए NVIDIA Driver और CUDA 12.9 इंस्टॉल करना

Proxmox VE पर Ubuntu 24.04 VM में Tesla V100 के लिए NVIDIA Driver और CUDA 12.9 इंस्टॉल करना

6 min read

Proxmox VE / Ubuntu 24.04 / NVIDIA CUDA

Proxmox VE पर Ubuntu 24.04 VM में Tesla V100 के लिए NVIDIA Driver और CUDA 12.9 Install करना #

यह एक guide है Proxmox VE पर एक OVMF virtual machine में Tesla V100 को PCIe passthrough करने और
Ubuntu 24.04 side पर NVIDIA driver और CUDA Toolkit 12.9 install करने के लिए।
इसमें BAR0 is 0M @ 0x0 /
This PCI I/O region assigned to your NVIDIA device is invalid
के लिए workarounds भी शामिल हैं, जो OVMF environments में आम हैं।

Target GPU: Tesla V100
Guest OS: Ubuntu 24.04 LTS
Virtualization: Proxmox VE / KVM
Boot Method: OVMF (UEFI)

इस Article की Prerequisites #

  • Proxmox host side की IOMMU / VFIO settings पहले से complete हैं
  • Guest को GPU passthrough functional है
  • Guest OS Ubuntu 24.04 LTS है
  • यह article एक compute-use VM मानता है

जांची गई Configuration #

Hypervisor
Proxmox VE / KVM
VM BIOS
OVMF (UEFI)
Machine Type
q35
GPU
Tesla V100 PCIe 32GB
Guest OS
Ubuntu 24.04 LTS
CUDA Toolkit
12.9

CUDA 12.9 ही क्यों Use करें #

Tesla V100 एक Volta-generation GPU है। CUDA 13 और उसके बाद से, Volta के लिए offline compilation और
library support हटा दिया गया है, इसलिए V100 development environment को
CUDA 12.x series पर fixed रखना ज्यादा safe है। यह article CUDA Toolkit 12.9 use करता है।

STEP 1

GPU Passthrough के लिए Proxmox Side पर VM Configure करें #

सबसे पहले, GPU passthrough के लिए virtual machine configure करें।
यदि OVMF / q35 / Host PCI settings पहले से complete हैं, तो अगले step पर जाएं।

qm stop 101
qm set 101 --bios ovmf
qm set 101 --machine q35
qm set 101 --hostpci0 65:00,pcie=1
qm start 101

Note: 101 VMID का example है, 65:00 GPU PCI address का example है।
अपने actual environment की values से replace करें।

STEP 2

OVMF Environment में MMIO Aperture Expand करें #

यह सबसे बड़ा pitfall है। OVMF UEFI VMs में, GPU BAR resources अक्सर sufficiently map नहीं होते,
जिससे BAR0 is 0M @ 0x0 या
This PCI I/O region assigned to your NVIDIA device is invalid जैसा error आता है।
ऐसे cases में, X-PciMmio64Mb add करें ताकि
MMIO aperture expand हो सके।

इस setting को add करने से Proxmox की OVMF virtual machines पर
nvidia-smi के properly काम न करने वाला issue वाकई resolve हो गया।

qm stop 101
qm set 101 --args '-fw_cfg name=opt/ovmf/X-PciMmio64Mb,string=262144'
qm start 101

Key Point: Change करने के बाद, सिर्फ guest OS reboot नहीं बल्कि
VM का complete shutdown करके फिर से start करें।

STEP 3

Ubuntu 24.04 पर जरूरी Packages Install करें #

NVIDIA driver और CUDA Toolkit install करने से पहले, kernel headers और build-related tools install करें।

sudo apt update
sudo apt install -y linux-headers-$(uname -r) gcc g++ make wget pciutils

STEP 4

NVIDIA Official Repository Add करें #

Ubuntu 24.04 के लिए NVIDIA का official APT repository add करें।

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update

STEP 5

NVIDIA Driver Install करें #

Installation से पहले driver को 580 series पर fix करें। V100, 580 series द्वारा अभी भी supported है।

sudo apt install -y nvidia-driver-pinning-580
sudo apt install -y cuda-drivers

अगर आपको बिना GUI के compute-only configuration चाहिए, तो अपने use case के अनुसार
minimal libnvidia-compute और nvidia-dkms-based setup पर
switch भी कर सकते हैं, लेकिन पहले cuda-drivers से normal operation verify करना ज्यादा clear रहता है।

STEP 6

CUDA Toolkit 12.9 Fix करके Install करें #

Latest CUDA version track करने से बचने के लिए, metapackage cuda-toolkit-12-9 use करके
12.9 series पर lock करें।

sudo apt install -y cuda-toolkit-12-9

अगर Capacity कम है: Full Toolkit काफी बड़ा है, इसलिए आप
सिर्फ runtime और compiler से शुरू कर सकते हैं।

sudo apt install -y cuda-runtime-12-9 cuda-compiler-12-9
# Add development libraries later if needed
sudo apt install -y cuda-libraries-dev-12-9

STEP 7

PATH Set करें और Reboot करें #

PATH और library path सेट करें ताकि nvcc इस्तेमाल करना आसान हो जाए, फिर reboot करें।

echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
sudo reboot

STEP 8

Operation Verify करें #

Reboot के बाद, verify करें कि GPU visible है, driver properly load होता है,
और CUDA compiler usable है।

source ~/.bashrc
uname -r
lspci | grep -i nvidia
nvidia-smi
nvidia-smi -L
nvcc --version
dmesg -T | grep -E 'NVRM|BAR0|nvidia'

यदि सही तरीके से install हुआ है, तो nvidia-smi Tesla V100 display करेगा,
और nvcc --version CUDA 12.9 display करेगा।

Troubleshooting #

BAR0 is 0M @ 0x0 दिखाई देता है #

यह लगभग निश्चित रूप से OVMF MMIO aperture की कमी है। सबसे पहले,
qm set 101 --args '-fw_cfg name=opt/ovmf/X-PciMmio64Mb,string=262144' apply करें,
VM का complete shutdown करें, और फिर से start करें।

nvidia-smi Driver से Communicate नहीं कर पा रहा #

हो सकता है driver kernel module load न हुआ हो। पहले OVMF MMIO
settings review करें, फिर module status check करें।

lsmod | grep -E 'nvidia|nouveau'
sudo journalctl -k -b | grep -Ei 'nvidia|nouveau|secure|module verification'

Toolkit Installation के दौरान Disk Space खत्म हो जाना #

Full Toolkit बड़ा है, इसलिए limited free space वाले VM पर installation बीच में fail हो सकता है।
ऐसे case में, cache clean करें और safety के लिए minimal package configuration पर switch करें।

df -h /
sudo apt clean
sudo apt autoremove -y
sudo apt --fix-broken install

Summary #

Proxmox VE पर एक Ubuntu 24.04 VM में Tesla V100 पर NVIDIA driver और CUDA Toolkit
install करना अपने आप में मुश्किल नहीं है। लेकिन, OVMF virtual machines पर,
insufficient MMIO aperture की वजह से NVIDIA driver start होने में रुकावट आ सकती है, इसलिए
सेटिंग X-PciMmio64Mb को configure करना एक practical key point बन जाता है।

आगे भी वही configuration बनाते समय, शुरुआत से ही
OVMF / q35 / PCIe और
MMIO aperture expansion को साथ में configure करना सबसे अच्छा है।

संदर्भ जानकारी (Reference Information) #

Disclaimer #

यह article लिखे जाने के समय के verification environment के आधार पर बनाया गया है। हम बताई गई content की
accuracy, completeness, usefulness, या specific environments में operation की कोई guarantee नहीं देते।
बताई गई procedures और behavior, OS, kernel आदि, साथ ही GPU, firmware, BIOS/UEFI जैसे components के अलावा
Proxmox VE, NVIDIA driver आदि, और CUDA Toolkit की version differences या update status के अनुसार अलग हो सकते हैं।

  • इस article की procedures में GPU passthrough जैसे कार्य, kernel module installation, और startup configuration में बदलाव शामिल हैं।
  • Implementation से पहले, backup, snapshot, और maintenance plans तैयार करें और test environment में अच्छी तरह verify करें।
  • इस article की content use करने से होने वाले किसी भी defect, downtime, आदि या failure, data loss जैसी अन्य नुकसान के लिए हम जिम्मेदार नहीं हैं।
  • Production environments में implementation user के discretion और responsibility पर है।
  • उल्लेखित product names, service names, और company names अपनी-अपनी companies के trademarks या registered trademarks हैं।
Updated on 2026 वर्ष 6 माह 10 दिन

What are your feelings

  • Happy
  • Normal
  • Sad