User Tools

Site Tools


ubuntu:gpu:gpu_pass-through

This is an old revision of the document!


Ubuntu - GPU - GPU pass-through

How to assign a GPU graphics card on the host machine to a virtualized guest.


Verify the host environment supports GPU pass-through

TODO:


Enable IOMMU

IOMMU is usually disabled by default.

  • It needs to be enable at boot time in the /etc/default/grub configuration file.

For AMD-based hosts:

/etc/default/grub
GRUB_CMDLINE_LINUX="iommu=pt amd_iommu=on rd.driver.pre=vfio-pci"

For Intel-based hosts:

/etc/default/grub
GRUB_CMDLINE_LINUX="intel_iommu=on iommu=pt rd.driver.pre=vfio-pci"

Re-generate the main GRUB 2 configuration file

The GRUB 2 configuration file is /boot/grub2/grub.cfg.

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Reboot


Verify that IOMMU is enabled

sudo dmesg | grep -e DMAR -e IOMMU

returns:

[    2.172228] pci 0000:00:00.2: AMD-Vi: IOMMU performance counters supported
[    2.176588] pci 0000:00:00.2: AMD-Vi: Found IOMMU cap 0x40
[    2.176924] perf/amd_iommu: Detected AMD IOMMU #0 (2 banks, 4 counters/bank).
[    3.875165] AMD-Vi: AMD IOMMUv2 loaded and initialized

Blacklist the Nouveau driver

Prevent the host OS from loading the built-in nouveau driver.

Create the file /etc/modprobe.d/60-blacklist-nouveau.conf:

/etc/modprobe.d/60-blacklist-nouveau.conf
blacklist nouveau

Configure VFIO and isolate the GPU used for pass-through

Find the card vendor and model IDs.

lspci -k | grep VGA

returns:

0c:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX] (rev c8)

NOTE: This shows the Bus number is 0c:00.0.


Get the device ID

Using the Bus number identified earlier.

lspci -nn | grep 0c:00.0

returns:

0c:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX] [1002:744c] (rev c8)

NOTE: This shows the ID is 1002:744c.


Create a module VFIO file

Create the file /etc/modprobe.d/vfio.conf:

/etc/modprobe.d/vfio.conf
options vfio-pci ids=1002:744c

NOTE: Verify that the card does not need an extra ids= parameter.

  • For some cards, the audio device must be specified too, so that ID must also be added to the list, otherwise the card will be unusable.

ubuntu/gpu/gpu_pass-through.1687692187.txt.gz · Last modified: 2023/06/25 11:23 by peter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki