Ubuntu 24.04
Sponsored Link

KVM : GPU Passthrough2024/05/10

 

वर्चुअल मशीनों के लिए GPU पासथ्रू कॉन्फ़िगर करें।

इस कॉन्फ़िगरेशन के द्वारा, वर्चुअल मशीनों पर GPU का उपयोग करना और GPU कंप्यूटिंग चलाना संभव है।

कॉन्फ़िगरेशन से पहले, पहले BIOS सेटिंग पर VT-d (Intel) या AMD IOMMU (AMD) सक्षम करें।

[1] KVM होस्ट पर IOMMU सुविधा सक्षम करें।
# ग्राफिक कार्ड का PCI पहचान नंबर और [vendor-ID:device-ID] दिखाएं
# PCI नंबर ⇒ यह नीचे [01:00.*] से मेल खाता है
# vendor-ID:device-ID ⇒ यह नीचे [10de:***] से मेल खाता है

root@dlp:~#
lspci -nn | grep -i nvidia

81:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104 [GeForce RTX 3060] [10de:2487] (rev a1)
81:00.1 Audio device [0403]: NVIDIA Corporation GA104 High Definition Audio Controller [10de:228b] (rev a1)

root@dlp:~#
vi /etc/default/grub
# पंक्ति 11: जोड़ें
# AMD CPU के लिए, [amd_iommu=on] सेट करें
# Intel CPU के लिए, [intel_iommu=on] सेट करें
# [vfio-pci.ids==***] के लिए, [vendor-ID:device-ID] सेट करें

GRUB_CMDLINE_LINUX="
intel_iommu=on iommu=pt vfio-pci.ids=10de:2487,10de:228b
"
root@dlp:~#
update-grub

root@dlp:~#
echo 'vfio-pci' > /etc/modules-load.d/vfio-pci.conf

root@dlp:~#
reboot
# पुष्टि करें कि IOMMU सक्षम है

root@dlp:~#
dmesg | grep -E "DMAR|IOMMU"

[    0.010922] ACPI: DMAR 0x000000007A5C3130 000108 (v01 ALASKA A M I    00000001 INTL 20091013)
[    0.010958] ACPI: Reserving DMAR table memory at [mem 0x7a5c3130-0x7a5c3237]
[    0.401716] DMAR: IOMMU enabled
[    0.916024] DMAR: Host address width 46
[    0.916026] DMAR: DRHD base: 0x000000fbffc000 flags: 0x0
[    0.916041] DMAR: dmar0: reg_base_addr fbffc000 ver 1:0 cap d2078c106f0466 ecap f020df
[    0.916046] DMAR: DRHD base: 0x000000c7ffc000 flags: 0x1
[    0.916052] DMAR: dmar1: reg_base_addr c7ffc000 ver 1:0 cap d2078c106f0466 ecap f020df
[    0.916056] DMAR: RMRR base: 0x0000007dbcf000 end: 0x0000007dbddfff
[    0.916060] DMAR: ATSR flags: 0x0
[    0.916064] DMAR: RHSA base: 0x000000c7ffc000 proximity domain: 0x0
[    0.916067] DMAR: RHSA base: 0x000000fbffc000 proximity domain: 0x1
[    0.916072] DMAR-IR: IOAPIC id 10 under DRHD base  0xfbffc000 IOMMU 0
[    0.916076] DMAR-IR: IOAPIC id 8 under DRHD base  0xc7ffc000 IOMMU 1
[    0.916079] DMAR-IR: IOAPIC id 9 under DRHD base  0xc7ffc000 IOMMU 1
[    0.916082] DMAR-IR: HPET id 0 under DRHD base 0xc7ffc000
[    0.916085] DMAR-IR: x2apic is disabled because BIOS sets x2apic opt out bit.
[    0.916086] DMAR-IR: Use 'intremap=no_x2apic_optout' to override the BIOS setting.
[    0.916979] DMAR-IR: Enabled IRQ remapping in xapic mode
[    1.299542] DMAR: No SATC found
[    1.299546] DMAR: dmar0: Using Queued invalidation
[    1.299553] DMAR: dmar1: Using Queued invalidation
[    1.312667] DMAR: Intel(R) Virtualization Technology for Directed I/O

# पुष्टि करें कि vfio_pci सक्षम है

root@dlp:~#
dmesg | grep -i vfio

[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-6.8.0-31-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv ro intel_iommu=on iommu=pt vfio-pci.ids=10de:2487,10de:228b
[    0.395931] Kernel command line: BOOT_IMAGE=/vmlinuz-6.8.0-31-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv ro intel_iommu=on iommu=pt vfio-pci.ids=10de:2487,10de:228b
[    4.612664] VFIO - User Level meta-driver version: 0.3
[    4.625530] vfio-pci 0000:81:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=io+mem:owns=none
[    4.625878] vfio_pci: add [10de:2487[ffffffff:ffffffff]] class 0x000000/00000000
[    4.650349] vfio_pci: add [10de:228b[ffffffff:ffffffff]] class 0x000000/00000000
[2] ठीक है। उदाहरण के लिए, GPU के साथ Ubuntu 24.04 वर्चुअल मशीन बनाएं।
[--host-device] के लिए GPU की PCI पहचान संख्या निर्दिष्ट करें।
root@dlp:~# virt-install \
--name ubuntu2404 \
--ram 8192 \
--disk path=/var/kvm/images/ubuntu2404.img,size=30 \
--vcpus 4 \
--os-variant ubuntu24.04 \
--network bridge=br0 \
--graphics vnc,listen=0.0.0.0,password=password \
--video vga \
--console pty,target_type=serial \
--location /home/ubuntu-24.04-live-server-amd64.iso,kernel=casper/vmlinuz,initrd=casper/initrd \
--extra-args 'console=ttyS0,115200n8' \
--host-device 81:00.0 \
--features kvm_hidden=on \
--machine q35 
[3] वर्चुअल मशीन बनाने के बाद, पुष्टि करें कि उस पर GPU पाया गया है।
ubuntu@ubuntu:~$
lspci | grep -i nvidia

05:00.0 VGA compatible controller: NVIDIA Corporation GA104 [GeForce RTX 3060] (rev a1)
मिलान सामग्री