Azure Stack Edge Pro GPU デバイスの VM に GPU 拡張機能をインストールする

注意

この記事では、間もなくサポート終了 (EOL) 状態になる Linux ディストリビューションである CentOS について説明します。 適宜、使用と計画を検討してください。 詳細については、「CentOS のサポート終了に関するガイダンス」を参照してください。

適用対象:Pro の場合ははい - GPU SKUAzure Stack Edge Pro - GPUはい (Pro 2 SKU の場合)Azure Stack Edge Pro 2はい (Pro R SKU の場合)Azure Stack Edge Pro R

この記事では、GPU ドライバー拡張機能をインストールして、Azure Stack Edge デバイスで実行されている GPU VM に適切な Nvidia ドライバーをインストールする方法について説明します。 この記事では、Windows と Linux VM の両方で Azure Resource Manager テンプレートを使用して GPU 拡張機能をインストールするための手順について説明します。

Note

前提条件

デバイスで実行されている GPU VM に GPU 拡張機能をインストールする前に、次のことを確認してください。

  1. 1 つ以上の GPU VM をデプロイした Azure Stack Edge デバイスにアクセスできること。 デバイスに GPU VM をデプロイする方法に関するページを参照してください。

    • デバイス上のコンピューティング ネットワーク用に有効になっているポートがインターネットに接続されていて、アクセス可能であることを確認してください。 GPU ドライバーは、インターネット アクセスを通じてダウンロードされます。

      次の例では、ポート 2 がインターネットに接続され、コンピューティング ネットワークを有効にするために使用されています。 環境に Kubernetes がデプロイされていない場合は、Kubernetes ノード IP と外部サービス IP の割り当てをスキップできます。

      Azure Stack Edge デバイスの [コンピューティング] ペインのスクリーンショット。ポート 2 のコンピューティング設定が強調表示されています。

  2. クライアント コンピューターに GPU 拡張テンプレートとパラメーター ファイルをダウンロードします。 それを、作業ディレクトリとして使用するディレクトリに解凍します。

  3. デバイスへのアクセスに使用するクライアントが、Azure PowerShell 経由で Azure Resource Manager にまだ接続されていることを確認します。 Azure Stack Edge デバイスが再起動されると、Azure Resource Manager への接続は 1.5 時間ごとに有効期限が切れます。 この場合、実行するすべてのコマンドレットで、Azure に接続されていないことを示すエラー メッセージが返されます。 再度サインインする必要があります。 詳細な手順については、「Azure Stack Edge デバイスで Azure Resource Manager に接続する」を参照してください。

パラメーター ファイルを編集する

VM のオペレーティング システムに応じて、Windows 用または Linux 用の GPU 拡張機能をインストールできます。

既存の VM 用の Nvidia GPU ドライバーをデプロイするには、addGPUExtWindowsVM.parameters.json パラメーター ファイルを編集してから、addGPUextensiontoVM.json テンプレートをデプロイします。

バージョン 2205 以降

addGPUExtWindowsVM.parameters.json ファイルでは、次のパラメーターを受け取ります。

"parameters": {
	"vmName": {
	"value": "<name of the VM>"
	},
	"extensionName": {
	"value": "<name for the extension. Example: windowsGpu>"
	},
	"publisher": {
	"value": "Microsoft.HpcCompute"
	},
	"type": {
	"value": "NvidiaGpuDriverWindows"
	},
	"typeHandlerVersion": {
	"value": "1.5"
	},
	"settings": {
	"value": {
	"DriverURL" : "http://us.download.nvidia.com/tesla/511.65/511.65-data-center-tesla-desktop-winserver-2016-2019-2022-dch-international.exe",
	"DriverCertificateUrl" : "https://go.microsoft.com/fwlink/?linkid=871664",
	"DriverType":"CUDA"
	}
	}
	}

2205 未満のバージョン

addGPUExtWindowsVM.parameters.json ファイルでは、次のパラメーターを受け取ります。

"parameters": {
	"vmName": {
	"value": "<name of the VM>"
	},
	"extensionName": {
	"value": "<name for the extension. Example: windowsGpu>"
	},
	"publisher": {
	"value": "Microsoft.HpcCompute"
	},
	"type": {
	"value": "NvidiaGpuDriverWindows"
	},
	"typeHandlerVersion": {
	"value": "1.3"
	},
	"settings": {
	"value": {
	"DriverURL" : "http://us.download.nvidia.com/tesla/442.50/442.50-tesla-desktop-winserver-2019-2016-international.exe",
	"DriverCertificateUrl" : "https://go.microsoft.com/fwlink/?linkid=871664",
	"DriverType":"CUDA"
	}
	}
	}

テンプレートのデプロイ

テンプレート addGPUextensiontoVM.json をデプロイして、既存の VM に拡張機能をインストールします。

次のコマンドを実行します。

$templateFile = "<Path to addGPUextensiontoVM.json>"
$templateParameterFile = "<Path to addGPUExtWindowsVM.parameters.json>"
RGName = "<Name of your resource group>"
New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "<Name for your deployment>"

Note

拡張機能のデプロイは長時間実行されるジョブであり、完了するまでに約 10 分かかります。

出力例を次に示します。

PS C:\WINDOWS\system32> "C:\12-09-2020\ExtensionTemplates\addGPUextensiontoVM.json"
C:\12-09-2020\ExtensionTemplates\addGPUextensiontoVM.json
PS C:\WINDOWS\system32> $templateFile = "C:\12-09-2020\ExtensionTemplates\addGPUextensiontoVM.json"
PS C:\WINDOWS\system32> $templateParameterFile = "C:\12-09-2020\ExtensionTemplates\addGPUExtWindowsVM.parameters.json"
PS C:\WINDOWS\system32> $RGName = "myasegpuvm1"
PS C:\WINDOWS\system32> New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "deployment3"

DeploymentName          : deployment3
ResourceGroupName       : myasegpuvm1
ProvisioningState       : Succeeded
Timestamp               : 12/16/2020 12:18:50 AM
Mode                    : Incremental
TemplateLink            :
Parameters              :
                       Name             Type                       Value
                       ===============  =========================  ==========
                       vmName           String                     VM2
                       extensionName    String                     windowsgpuext
                       publisher        String                     Microsoft.HpcCompute
                       type             String                     NvidiaGpuDriverWindows
                       typeHandlerVersion  String                     1.3
                       settings         Object                     {
                         "DriverURL": "http://us.download.nvidia.com/tesla/442.50/442.50-tesla-desktop-winserver-2019-2016-international.exe",
                         "DriverCertificateUrl": "https://go.microsoft.com/fwlink/?linkid=871664",
                         "DriverType": "CUDA"
                       }

Outputs                 :
DeploymentDebugLogLevel :
PS C:\WINDOWS\system32>

デプロイの追跡

特定の VM の拡張機能のデプロイ状態を確認するには、別の PowerShell セッションを開き (管理者として実行します)。次のコマンドを実行します。

Get-AzureRmVMExtension -ResourceGroupName <Name of resource group> -VMName <Name of VM> -Name <Name of the extension>

出力例を次に示します。

PS C:\WINDOWS\system32> Get-AzureRmVMExtension -ResourceGroupName myasegpuvm1 -VMName VM2 -Name windowsgpuext

ResourceGroupName       : myasegpuvm1
VMName                  : VM2
Name                    : windowsgpuext
Location                : dbelocal
Etag                    : null
Publisher               : Microsoft.HpcCompute
ExtensionType           : NvidiaGpuDriverWindows
TypeHandlerVersion      : 1.3
Id                      : /subscriptions/947b3cfd-7a1b-4a90-7cc5-e52caf221332/resourceGroups/myasegpuvm1/providers/Microsoft.Compute/virtualMachines/VM2/extensions/windowsgpuext
PublicSettings          : {
                            "DriverURL": "http://us.download.nvidia.com/tesla/442.50/442.50-tesla-desktop-winserver-2019-2016-international.exe",
                            "DriverCertificateUrl": "https://go.microsoft.com/fwlink/?linkid=871664",
                            "DriverType": "CUDA"
                          }
ProtectedSettings       :
ProvisioningState       : Creating
Statuses                :
SubStatuses             :
AutoUpgradeMinorVersion : True
ForceUpdateTag          :

PS C:\WINDOWS\system32>

拡張機能の実行の出力は、次のファイルにログ記録されます。 インストールの状態を追跡するには、この C:\Packages\Plugins\Microsoft.HpcCompute.NvidiaGpuDriverWindows\1.3.0.0\Status ファイルを参照してください。

正常にインストールされた場合は、message によって Enable Extension として、および status によって success として示されます。

"status":  {
                       "formattedMessage":  {
                                                "message":  "Enable Extension",
                                                "lang":  "en"
                                            },
                       "name":  "NvidiaGpuDriverWindows",
                       "status":  "success",

ドライバーのインストールの確認

VM にサインインし、ドライバーと共にインストールされる nvidia-smi コマンド ライン ユーティリティを実行します。

バージョン 2205 以降

nvidia-smi.exe は、C:\Windows\System32\nvidia-smi.exe にあります。 ファイルが表示されない場合は、ドライバーのインストールがバックグラウンドでまだ実行されている可能性があります。 10 分待ってから、もう一度確認してください。

2205 未満のバージョン

nvidia-smi.exe は、C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe にあります。 ファイルが表示されない場合は、ドライバーのインストールがバックグラウンドでまだ実行されている可能性があります。 10 分待ってから、もう一度確認してください。

ドライバーがインストールされている場合は、次の例のような出力が表示されます。

PS C:\Users\Administrator> cd "C:\Program Files\NVIDIA Corporation\NVSMI"
PS C:\Program Files\NVIDIA Corporation\NVSMI> ls

    Directory: C:\Program Files\NVIDIA Corporation\NVSMI

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/26/2020  12:00 PM         849640 MCU.exe
-a----        2/26/2020  12:00 PM         443104 nvdebugdump.exe
-a----        2/25/2020   2:06 AM          81823 nvidia-smi.1.pdf
-a----        2/26/2020  12:01 PM         566880 nvidia-smi.exe
-a----        2/26/2020  12:01 PM         991344 nvml.dll

PS C:\Program Files\NVIDIA Corporation\NVSMI> .\nvidia-smi.exe
Wed Dec 16 00:35:51 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 442.50       Driver Version: 442.50       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla T4            TCC  | 0000503C:00:00.0 Off |                    0 |
| N/A   35C    P8    11W /  70W |      8MiB / 15205MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
PS C:\Program Files\NVIDIA Corporation\NVSMI>

詳細については、「Windows 用の Nvidia GPU ドライバー拡張機能」を参照してください。

Note

GPU ドライバーと GPU 拡張機能のインストールが完了すると、コンピューティングにインターネット アクセスのあるポートを使用する必要がなくなります。

GPU 拡張機能の削除

GPU 拡張機能を削除するには、次のコマンドを使用します。

Remove-AzureRmVMExtension -ResourceGroupName <Resource group name> -VMName <VM name> -Name <Extension name>

出力例を次に示します。

PS C:\azure-stack-edge-deploy-vms> Remove-AzureRmVMExtension -ResourceGroupName rgl -VMName WindowsVM -Name windowsgpuext
Virtual machine extension removal operation
This cmdlet will remove the specified virtual machine extension. Do you want to continue? [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
Requestld IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
          True                OK         OK

次のステップ

具体的には、次の方法を学習します。