目标
演示如何使用 Ubuntu Server 版本1804来宾操作系统上的离散设备分配(DDA)配置 GPU。DDA 可用于传递整个 PCIe 设备,在此例中为虚拟机的 GPU。这允许对设备进行高性能访问,同时能够充分利用其本机驱动程序。
环境
服务PowerEdge 运行 Windows 服务器 2019 GPU 的 R740xd
:NVIDIA Tesla P100
来宾操作系统:4个 Vcpu、32GB RAM 运行 Ubuntu® 18.04 LTS
步骤
1。安装 Windows 服务器2019,更新操作系统并安装设备驱动程序,如芯片组驱动程序和 GPU 驱动程序。
2.安装 Hyper-V 角色。
3.创建第二代来宾操作系统,然后 Ubuntu® 18.04 LTS 安装。您必须在虚拟机设置中禁用安全引导才能安装操作系统。
4.应用 Ubuntu 更新。对于这种情况,请运行以下命令:
$ sudo apt-get update
$ sudo apt-get upgrade
5.关闭虚拟机。
6.O触控笔设备管理器中,展开显示适配器,然后选择要呈现给来宾操作系统的 GPU。
Figure1 设备管理器
7.右键单击您想要使用的 GPU,选择 Details 选项卡,将属性更改为 "Location paths",然后将以 PCIROOT 开头的值复制到记事本。
图2—设备管理器设备属性-位置路径
8.在设备管理器中禁用 GPU。
图 3-在设备管理器
中禁用 GPU9.通过 PowerShell 配置 DDA 的来宾操作系统。以管理员身份打开 PowerShell 并运行以下命令:
#将虚拟机的 "自动停止操作" 配置为 TurnOff
> 设置-vm-Name VMName-AutomaticStopAction TurnOff
# 在 CPU 上启用写入合并
> 设置-VM-VMName VMName-GuestControlledCacheTypes $true
# 配置32位 mmio 空间
> 设置-vm-VMName VMName-LowMemoryMappedIoSpace 128mb
# configure 大于32位 mmio 空间
> 设置-VM-VMName VMame-HighMemoryMappedIoSpace 18000Mb
# 卸除设备
> 卸载-VMHostAssignableDevice-force-LocationPath "步骤7位置路径
为" # 将设备分配给来宾操作系统
> 添加-VMAssignableDevice-VMName VMName-LocationPath "步骤7位置路径位于此处"
10。启动来宾操作系统。
11.运行以下命令以验证来宾操作系统是否已识别 GPU:
$ lspci
$ sudo lshw-C Display
图 4-lspci 和 lshw 命令的输出
12.默认情况下,Nouveau 驱动程序通常已安装。Nouveau 是由独立软件工程师编写的 Nvidia 视频卡的免费和开放源图形设备驱动程序。必须禁用 Nouveau 驱动程序才能安装 Nvidia 驱动程序。运行以下命令以禁用 Nouveau 驱动程序(如果未安装 Nouveau 驱动程序,请忽略步骤 12-检查步骤 11 "sudo lshw-C Display" 输出配置行)。
#在/Etc/modprobe.d/blacklist-nouveau.conf
创建文件$ sudo nano/etc/modprobe.d/blacklist-nouveau.conf # Add the content to the the the file the the the
file
黑名单 nouveau
options nouveau modeset = 0
# 重新生成内核 initramfs 然后重新引导
$ sudo update-initramfs-u
$ reboot
图 5-禁用 lspci 驱动程序13后的 lshw 和 nouveau 命令的输出
。下载Nvidia 驱动程序,然后在 Ubuntu 来宾操作系统上安装驱动程序。
#将文件复制到虚拟机
$ sudo dpkg-i nvidia-驱动程序本地-库-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-driver {install all 依赖关系
$ sudo reboot
14.验证驱动程序是否已正确安装。运行以下命令:
$ lspci
$ sudo lshw-C 显示屏
$ nvidia-smi
图6— lspci、lshw 和 nvidia smi 命令的输出