Ubuntu Server:如何在 Ubuntu 虚拟机上使用离散设备分配 (DDA) 配置 GPU
摘要: 本文演示如何在 Hyper-V 中运行的 Ubuntu Server 版本 1804 虚拟机 (VM) 上使用离散设备分配 (DDA) 配置 GPU。
说明
目标
DDA 可用于将整个 PCIe 设备(在本例中为 GPU)传递到虚拟机。这允许对设备进行高性能访问并能够利用其本机驱动程序。
此示例中的环境
Server: 运行 Windows Server 2019
GPU 的 PowerEdge R740xd:NVIDIA Tesla P100
虚拟机:4 个 vCPU、32 GB RAM,运行 Ubuntu ®18.04 LTS
步骤
-
在主机上安装 Windows Server 2019 并更新作系统。安装最新的设备驱动程序,例如芯片组和 GPU 驱动程序。
-
安装 Hyper-V 角色。
-
创建第 2 代 VM。在虚拟机的设置中禁用安全启动,然后在其上安装 Ubuntu ®18.04 LTS。
-
应用 Ubuntu 更新。为此,请运行以下命令:
$ sudo apt-get update
$ sudo apt-get upgrade
-
关闭虚拟机。
-
在主机上打开设备管理器,展开 显示适配器,然后选择将要呈现给虚拟机的 GPU。

图 1:所选 GPU 的设备管理器 -
右键单击要在虚拟机中使用的 GPU,然后选择属性。在详细信息选项卡中,从位置路径下拉列表中选择属性。将从 PCIROOT 开始的值复制到记事本。

图 2:设备管理器设备属性 - 位置路径 -
右键单击设备管理器中的 GPU 并将其禁用。

图 3:在设备管理器中禁用 GPU -
使用 PowerShell 为 DDA 配置 VM。以管理员身份打开 PowerShell 并运行以下命令:
# Configure the "Automatic Stop Action" of a VM to TurnOff. Set-VM -Name VMName -AutomaticStopAction TurnOff # Enable Write-Combining on the CPU. Set-VM -VMName VMName -GuestControlledCacheTypes $true # Configure the 32-bit MMIO space. Set-VM -VMName VMName -LowMemoryMappedIoSpace 128Mb # Configure greater than 32-bit MMIO space. Set-VM -VMName VMame -HighMemoryMappedIoSpace 18000Mb # Dismount the device. Dismount-VMHostAssignableDevice -force -LocationPath "step 7 location path goes here" # Assign the device to the VM. Add-VMAssignableDevice -VMName VMName -LocationPath "step 7 location path goes here" -
启动虚拟机。
-
在虚拟机中运行以下命令,以验证它是否已识别 GPU:
$ lspci
$ sudo lshw -C Display

图 4:以下命令的输出:lspci和lshw命令 -
如果
sudo lshw -C Display命令指示已安装 Nouveau 驱动程序(请参阅上面图 4 中的 配置 ),必须将其禁用。Nouveau 是由独立软件工程师编写的适用于 NVIDIA 显卡的免费开源驱动程序。默认情况下安装此驱动程序,必须将其禁用才能安装 NVIDIA 驱动程序。运行以下命令以禁用 Nouveau 驱动程序。# Create a file at /etc/modprobe.d/blacklist-nouveau.conf. $ sudo nano /etc/modprobe.d/blacklist-nouveau.conf # Add the following to the newly created file, then save the file. blacklist nouveau options nouveau modeset=0 # Regenerate the kernel initramfs, then reboot. $ sudo update-initramfs -u $ reboot
图 5:以下命令的输出:lspci和lshw禁用 Nouveau 驱动程序后的命令 -
下载 NVIDIA 驱动程序
,然后将其安装在 Ubuntu 虚拟机上。
# Run these commands after the file has been copied to the VM. $ sudo dpkg -i nvidia-driver-local-repo-ubuntu1804-440.33.01_1.0-1_amd64.deb $ sudo apt-key add /var/nvidia-driver-local-repo-440.33.01/7fa2af80.pub $ sudo apt-get update $ sudo apt-get install cuda-drivers {Install all the dependencies $ sudo reboot -
要验证驱动程序是否已正确安装,请运行以下命令:
$ lspci $ sudo lshw -C Display $ nvidia-smi

图 6:以下命令的输出:lspci开始,lshw以及nvidia-smi安装 NVIDIA 驱动程序后的命令
其他信息
如何更换 PowerEdge R760 的 GPU
持续时间:00:03:10 (hh:mm:ss)
如果可用,可以使用此视频播放器上的 CC 图标选择隐藏式字幕(字幕)语言设置。