KVM : GPU Passthrough2026/04/29 |
|
Configure GPU Passthrough for Virtual Machines. By this configuration, it's possible to use GPU on Virtual Machines and run GPU Computing. Before configuration, Enable VT-d (Intel) or AMD IOMMU (AMD) on BIOS Setting first. |
|
| [1] | Enable IOMMU feature on KVM Host. |
|
# show PCI identification number and [vendor-ID:device-ID] of Graphic card # PCI number ⇒ it matches [01:00.*] below # vendor-ID:device-ID ⇒ it matches [10de:***] below 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 # line 11 : add # for AMD CPU, set [amd_iommu=on] # for Intel CPU, set [intel_iommu=on] # for [vfio-pci.ids==***], set [vendor-ID:device-ID] GRUB_CMDLINE_LINUX=" intel_iommu=on iommu=pt vfio-pci.ids=10de:2487,10de:228b "
root@dlp:~#
update-grub # confirm IOMMU is enabled root@dlp:~# dmesg | grep -E "DMAR|IOMMU" [ 0.011011] ACPI: DMAR 0x000000007A5C3130 000108 (v01 ALASKA A M I 00000001 INTL 20091013) [ 0.011048] ACPI: Reserving DMAR table memory at [mem 0x7a5c3130-0x7a5c3237] [ 0.396735] DMAR: IOMMU enabled [ 0.908901] DMAR: Host address width 46 [ 0.908904] DMAR: DRHD base: 0x000000fbffc000 flags: 0x0 [ 0.908921] DMAR: dmar0: reg_base_addr fbffc000 ver 1:0 cap d2078c106f0466 ecap f020df [ 0.908927] DMAR: DRHD base: 0x000000c7ffc000 flags: 0x1 [ 0.908938] DMAR: dmar1: reg_base_addr c7ffc000 ver 1:0 cap d2078c106f0466 ecap f020df [ 0.908942] DMAR: RMRR base: 0x0000007dbcf000 end: 0x0000007dbddfff [ 0.908948] DMAR: ATSR flags: 0x0 [ 0.908954] DMAR: RHSA base: 0x000000c7ffc000 proximity domain: 0x0 [ 0.908958] DMAR: RHSA base: 0x000000fbffc000 proximity domain: 0x1 [ 0.908964] DMAR-IR: IOAPIC id 10 under DRHD base 0xfbffc000 IOMMU 0 [ 0.908968] DMAR-IR: IOAPIC id 8 under DRHD base 0xc7ffc000 IOMMU 1 [ 0.908972] DMAR-IR: IOAPIC id 9 under DRHD base 0xc7ffc000 IOMMU 1 [ 0.908976] DMAR-IR: HPET id 0 under DRHD base 0xc7ffc000 [ 0.908979] DMAR-IR: x2apic is disabled because BIOS sets x2apic opt out bit. [ 0.908981] DMAR-IR: Use 'intremap=no_x2apic_optout' to override the BIOS setting. [ 0.910045] DMAR-IR: Enabled IRQ remapping in xapic mode [ 1.345767] DMAR: No SATC found [ 1.345772] DMAR: dmar0: Using Queued invalidation [ 1.345779] DMAR: dmar1: Using Queued invalidation [ 1.359312] DMAR: Intel(R) Virtualization Technology for Directed I/O # confirm vfio_pci is enabled root@dlp:~# dmesg | grep -i vfio [ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-7.0.0-14-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv ro intel_iommu=on iommu=pt vfio-pci.ids=10de:2487,10de:228b crashkernel=2G-4G:320M,4G-32G:512M,32G-64G:1024M,64G-128G:2048M,128G-:4096M [ 0.396662] Kernel command line: BOOT_IMAGE=/vmlinuz-7.0.0-14-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv ro intel_iommu=on iommu=pt vfio-pci.ids=10de:2487,10de:228b crashkernel=2G-4G:320M,4G-32G:512M,32G-64G:1024M,64G-128G:2048M,128G-:4096M [ 8.498022] VFIO - User Level meta-driver version: 0.3 [ 8.519329] vfio-pci 0000:81:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=io+mem:owns=none [ 8.520224] vfio_pci: add [10de:2487[ffffffff:ffffffff]] class 0x000000/00000000 [ 8.544937] vfio_pci: add [10de:228b[ffffffff:ffffffff]] class 0x000000/00000000 |
| [2] | That's OK. For example, create Ubuntu 24.04 Virtual machine with GPU. Specify PCI identification number of GPU for [--host-device]. |
root@dlp:~# virt-install \
--name ubuntu2604 \
--ram 8192 \
--disk path=/var/kvm/images/ubuntu2604.img,size=30 \
--vcpus 4 \
--os-variant ubuntu25.10 \
--network bridge=br0 \
--graphics vnc,listen=0.0.0.0,password=password \
--video vga \
--host-device 81:00.0 \
--features kvm_hidden=on \
--machine q35 \
--cdrom /home/ubuntu-26.04-live-server-amd64.iso
|
| [3] | After creating Virtual machine, Confirm GPU is found on it like follows. |
|
ubuntu@ubuntu:~$ lspci | grep -i nvidia 05:00.0 VGA compatible controller: NVIDIA Corporation GA104 [GeForce RTX 3060] (rev a1) |
| Sponsored Link |
|
|