Virtualization with GPU Passthrough [NOT complete]

This guide shows how to setup a Ubuntu18.04 Host machine with a Windows 10 GPU passthrough using VFIO & libvirtd

In this guide i will use my AMD GPU on the host linux systems, and the Nvidia GPU on the guest system: Windows

More to come

AMD Ryzen 7 2700x 8core
Gigabyte Aorus x470 Wifi7 Motherboard
16GB Kingston ECC 2400MHz Value Ram
Amd RX550 GPU
Nvidia Geforce 1050 (Asus)
Multiple SSD from Samsung and OCZ


Identifying hardware:
Edit /etc/default/grub and find the line below. Append “iommu=1 intel_iommu=on”

GRUB_CMDLINE_LINUX_DEFAULT="iommu=1 intel_iommu=on"

For AMD systems it should look something like this:

GRUB_CMDLINE_LINUX_DEFAULT="iommu=1 amd_iommu=on"

Update Grub and reboot, for the edit to take affect.


run the script as show below.

Look for the Entries with VGA, take note of the IOMMU group, and the hardware address [1003:8A23]
Under each GPU entry, you should also have the soundcard from GPU in the same IOMMU group.

Enabling VFIO & Setting Kernel Parameters

Using LibVirtD:

Install LibVirt and tools:

apt install virt-manager qemu-kvm ovmf



for d in /sys/kernel/iommu_groups/*/devices/*; do
  n=${d#*/iommu_groups/*}; n=${n%%/*}
  printf 'IOMMU Group %s ' "$n"
  lspci -nns "${d##*/}"