Ubuntu Server: Ubuntu仮想マシンで専用デバイス割り当て(DDA)を使用してGPUを構成する方法
Summary: この記事では、Hyper-Vで実行されているUbuntu Serverバージョン1804仮想マシン(VM)で、専用デバイス割り当て(DDA)を使用してGPUを構成する方法について説明します。
Instructions
目的
DDAを使用すると、PCIeデバイス全体(この場合はGPU)をVMに渡すことができます。これにより、デバイスへのハイパフォーマンス アクセスが可能になり、ネイティブ ドライバーを活用できるようになります。
この例の環境
Server: Windows Server 2019
GPUを実行しているPowerEdge R740xd: NVIDIA Tesla P100
VM: 4 x vCPU、32 GB RAM(Ubuntu ®18.04 LTSを実行)
手順
-
ホストにWindows Server 2019をインストールし、OSをアップデートします。チップセットやGPUドライバーなどの最新のデバイス ドライバーをインストールします。
-
Hyper-Vの役割をインストールします。
-
第 2 世代 VM を作成します。VM の設定でセキュア ブートを無効にし、Ubuntu ®18.04 LTS をインストールします。
-
Ubuntuのアップデートを適用します。これを行うには、次のコマンドを実行します。
$ sudo apt-get update
$ sudo apt-get upgrade
-
VMをシャットダウンします。
-
ホストでデバイス マネージャーを開き、 ディスプレイ アダプターを展開して、VMに提示するGPUを選択します

図1: GPUが選択されたデバイス マネージャー -
VMで使用する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" -
VMを起動します。
-
VM内で次のコマンドを実行して、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とlshwNouveau ドライバを無効にした後のコマンド -
NVIDIAドライバー
をダウンロードし、Ubuntu VMにインストールします。
# 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-smiNVIDIAドライバをインストールした後のコマンド
Additional Information
PowerEdge R760のGPUを交換する方法
再生時間:00:03:10 (hh:mm:ss)
利用可能な場合、このビデオ プレーヤーのCCアイコンを使用してクローズド キャプション(字幕)の言語設定を選択できます。