この拡張機能では、Linux N シリーズ仮想マシン (VM) に NVIDIA GPU ドライバーをインストールします。 VM ファミリに応じて、この拡張機能では CUDA ドライバーまたは GRID ドライバーがインストールされます。 この拡張機能を使用して NVIDIA ドライバーをインストールする際は、NVIDIA のエンドユーザー使用許諾契約書の条項を受け入れ、同意します。 インストール プロセス中に、ドライバーのセットアップを完了するために仮想マシンが再起動することがあります。
ドライバーの手動インストールの手順と現在サポートされているバージョンに関する説明があります。 NVIDIA GPU ドライバーを Windows の N シリーズ VM にインストールする拡張機能も利用可能です。
注
セキュア ブートが有効になっていると、すべての OS ブート コンポーネント (ブート ローダー、カーネル、カーネル ドライバー) は、信頼された発行元によって署名されている必要があります。 セキュア ブートは、Windows または Linux 拡張機能を使用している場合はサポートされません。 セキュア ブートを有効にした GPU ドライバーを手動でインストールする方法の詳細については、Linux 用の Azure N シリーズ GPU ドライバーのセットアップに関する記事を参照してください。
注
GPU ドライバーの拡張機能をインストールした後、ドライバーは拡張機能によって自動的に更新されません。 新しいバージョンのドライバーに移行する必要がある場合は、手動でドライバーをダウンロードしてインストールするか、拡張機能を削除して再度追加してください。
前提条件
オペレーティング システム
この拡張機能では、特定の OS バージョンのドライバー サポートに応じて、次の OS ディストリビューションをサポートしています。
ディストリビューション | バージョン |
---|---|
Linux: Ubuntu | 20.04 LTS |
Linux: Red Hat Enterprise Linux | 7.9 |
注
NC シリーズ VM でサポートされている最新の CUDA ドライバーは 470.82.01 です。 それ以降のバージョンのドライバーは、NC の K80 カードではサポートされていません。 拡張機能は NC 向けのこのサポート終了で更新されますが、NC シリーズの K80 カードに対して CUDA ドライバーを手動でインストールしてください。
重要
このドキュメントでは、サポート終了 (EOL) が近い、また既に終了した Linux のリリース バージョンを参照しています。 より新しいバージョンへの更新をご検討ください。
インターネット接続
NVIDIA GPU ドライバー用の Microsoft Azure 拡張機能では、ターゲットの仮想マシンがインターネットに接続され、アクセスできるようになっている必要があります。
拡張機能のスキーマ
次の JSON は、拡張機能のスキーマを示しています。
{
"name": "<myExtensionName>",
"type": "extensions",
"apiVersion": "2015-06-15",
"location": "<location>",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', <myVM>)]"
],
"properties": {
"publisher": "Microsoft.HpcCompute",
"type": "NvidiaGpuDriverLinux",
"typeHandlerVersion": "1.6",
"autoUpgradeMinorVersion": true,
"settings": {
}
}
}
プロパティ
名前 | 値/例 | データ型 |
---|---|---|
apiVersion | 2015-06-15 | date |
出版社 | Microsoft.HpcCompute | ひも |
type | NvidiaGpuDriverLinux | ひも |
typeHandlerVersion | 1.6 | 整数 (int) |
設定
すべての設定は省略可能です。 既定の動作では、ドライバーのインストールに必要ない場合はカーネルを更新せず、サポートされている最新のドライバーと (必要に応じて) CUDA Toolkit をインストールします。
名前 | 説明 | 既定値 | 有効な値 | データ型 |
---|---|---|---|---|
OSを更新する | ドライバーのインストールに必要ない場合でも、カーネルを更新します。 | 偽り | true、false | ブーリアン |
ドライバーバージョン | NV: GRID ドライバーのバージョン。 NC/ND: CUDA Toolkit のバージョン。 選択した CUDA の最新のドライバーが自動的にインストールされます。 |
最新 | サポートされているドライバーのバージョンのリスト | ひも |
installCUDA | CUDA Toolkit をインストールします。 NC/ND シリーズの VM のみに関係します。 | ほんとう | true、false | ブーリアン |
デプロイ
Azure Portal
Azure NVIDIA VM 拡張機能は Azure portal でデプロイできます。
ブラウザーで、 Azure ポータルに移動します。
ドライバーをインストールする仮想マシンに移動します。
左側のメニューで [拡張機能] を選択します。
[追加] を選択します。
スクロールして [NVIDIA GPU Driver Extension](NVIDIA GPU ドライバー拡張機能) を見つけて選択し、 [次へ] を選択します。
[確認および作成] を選択し、[作成] を選択します。 ドライバーがデプロイされるまで数分待ちます。
インストール済み拡張機能の一覧にこの拡張機能が追加されたことを確認します。
Azure Resource Manager テンプレート
Azure Resource Manager テンプレートを使用して Azure VM 拡張機能をデプロイできます。 テンプレートは、デプロイ後の構成が必要な仮想マシンを 1 つ以上デプロイするときに最適です。
仮想マシン拡張機能の JSON 構成は、仮想マシン リソース内に入れ子にすることも、Resource Manager JSON テンプレートのルートまたは最上位レベルに配置することもできます。 JSON 構成の配置は、リソースの名前と種類の値に影響します。 詳細については、子リソースの名前と種類の設定に関する記事を参照してください。
次の例では、拡張機能が仮想マシン リソース内で入れ子になっていることを前提としています。 拡張機能リソースが入れ子になっていると、JSON は仮想マシンの "resources": []
オブジェクトに配置されます。
{
"name": "myExtensionName",
"type": "extensions",
"location": "[resourceGroup().location]",
"apiVersion": "2015-06-15",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', myVM)]"
],
"properties": {
"publisher": "Microsoft.HpcCompute",
"type": "NvidiaGpuDriverLinux",
"typeHandlerVersion": "1.6",
"autoUpgradeMinorVersion": true,
"settings": {
}
}
}
PowerShell
Set-AzVMExtension
-ResourceGroupName "myResourceGroup" `
-VMName "myVM" `
-Location "southcentralus" `
-Publisher "Microsoft.HpcCompute" `
-ExtensionName "NvidiaGpuDriverLinux" `
-ExtensionType "NvidiaGpuDriverLinux" `
-TypeHandlerVersion 1.6 `
-SettingString '{ `
}'
Azure CLI(Azure コマンドライン インターフェイス)
次の例では、上記の Azure Resource Manager および PowerShell の例をミラー化します。
az vm extension set \
--resource-group myResourceGroup \
--vm-name myVM \
--name NvidiaGpuDriverLinux \
--publisher Microsoft.HpcCompute \
--version 1.6
また、次の例では、既定以外のドライバーのインストールの例として、2 つのオプションのカスタム設定も追加します。 具体的には、OS カーネルを最新に更新し、特定の CUDA Toolkit バージョンのドライバーをインストールします。 ここでも、--settings
は省略可能であり、既定値であることにご注意ください。 カーネルを更新すると、拡張機能のインストール時間が長くなる場合があります。 また、CUDA Toolkit の特定の (古い) バージョンを選択すると、新しいカーネルとの互換性がなくなる場合があります。
az vm extension set \
--resource-group myResourceGroup \
--vm-name myVM \
--name NvidiaGpuDriverLinux \
--publisher Microsoft.HpcCompute \
--version 1.6 \
--settings '{ \
"updateOS": true, \
"driverVersion": "10.0.130" \
}'
トラブルシューティングとサポート
トラブルシューティング
拡張機能のデプロイ状態に関するデータは、Azure portal から取得することも、Azure PowerShell や Azure CLI を使用して取得することもできます。 特定の VM の拡張機能のデプロイ状態を確認するには、次のコマンドを実行します。
Get-AzVMExtension -ResourceGroupName myResourceGroup -VMName myVM -Name myExtensionName
az vm extension list --resource-group myResourceGroup --vm-name myVM -o table
拡張機能の実行の出力は、次のファイルにログ記録されます。 実行時間の長いインストールの状態を追跡する場合、および障害のトラブルシューティングを行う場合は、このファイルを参照します。
/var/log/azure/nvidia-vmext-status
終了コード
終了コード | 意味 | 可能なアクション |
---|---|---|
0 | 操作に成功しました | |
1 | 拡張機能の使い方に誤りがあります | 実行の出力ログを確認します。 |
10 | Hyper-V と Azure 用の Linux Integration Services が使用できないかインストールされていません | lspci の出力を確認します。 |
11 | この VM サイズで NVIDIA GPU が見つかりません | サポートされている VM サイズと OS を使用します。 |
12 | イメージの提供がサポートされていません | |
13 | VM サイズがサポートされていません | N シリーズ VM を使用してデプロイします。 |
14 | 操作が失敗しました | 実行の出力ログを確認します。 |
既知の問題
- GRID ドライバー 16.x と 17.x では、Azure カーネル 6.11 でのインストールに関する問題が発生しています。 Nvidia は、この問題の解決に取り組んでいます。一方、次の手順に従って Azure カーネルを 6.8 にダウングレードします。 カーネルを 6.8 にダウングレードした後、手動で、または拡張機能を使用してドライバーを再インストールしてみてください。
// Get the installed kernel. If kernel 6.11 is installed, downgrade it to 6.8.
uname -a
// Install kernel 6.8. Note that kernel 6.11 is not supported.
$ sudo apt install linux-image-6.8.0-1015-azure
// Get the list of installed kernels.
dpkg --list | egrep -i --color 'linux-image|linux-headers|linux-modules' | awk '{ print $2 }'
// Uninstall any 6.11 kernels.
sudo apt purge linux-headers-6.11.0-1013-azure linux-image-6.11.0-1013-azure linux-modules-6.11.0-1013-azure
// Run the following command to ensure only 6.8 images, headers, and modules are installed and no other versions are present.
dpkg --list | egrep -i --color 'linux-image|linux-headers|linux-modules' | awk '{ print $2 }'
// Results from the previous command:
linux-headers-6.8.0-1015-azure
linux-image-6.8.0-1015-azure
linux-modules-6.8.0-1015-azure
// Open the grub settings and modify the GRUB_DEFAULT="0" to GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 6.8.0-1015-azure".
$ sudo vim /etc/default/grub
// The grub file will look like the following:
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 6.8.0-1015-azure"
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
///////////////////
// Update GRUB and reboot.
$ sudo update-grub && sudo update-grub2
$ sudo reboot
// Reinstall the driver after reboot.
NvidiaGpuDriverLinux
現在、A10 シリーズの CUDA に問題がある最新の17.5
GRID ドライバーがインストールされています。 NVIDIA は、この問題の解決に取り組んでいます。一方、拡張機能にランタイム設定を渡すことで、GRID ドライバー16.5
を使用します。
az vm extension set --resource-group <rg-name> --vm-name <vm-name> --name NvidiaGpuDriverLinux --publisher Microsoft.HpcCompute --settings "{'driverVersion':'535.161'}"
{
"name": "NvidiaGpuDriverLinux",
"type": "extensions",
"apiVersion": "2015-06-15",
"location": "<location>",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', <myVM>)]"
],
"properties": {
"publisher": "Microsoft.HpcCompute",
"type": "NvidiaGpuDriverLinux",
"typeHandlerVersion": "1.11",
"autoUpgradeMinorVersion": true,
"settings": {
"driverVersion": "535.161"
}
}
}
- GRID ドライバー バージョン
17.x
は、NVv3 (NVIDIA Tesla M60) とは互換性がありません。 バージョン16.5
までの GRID ドライバーは、サポートされています。NvidiaGpuDriverLinux
により、NVv3 SKU に互換性のない最新のドライバーがインストールされます。 代わりに、次のランタイム設定を使用して、古いバージョンのドライバーを拡張機能により強制的にインストールします。 ドライバーのバージョンの詳細については、NVIDIA GPU の参照資料をご覧ください。
az vm extension set --resource-group <rg-name> --vm-name <vm-name> --name NvidiaGpuDriverLinux --publisher Microsoft.HpcCompute --settings "{'driverVersion':'535.161'}"
{
"name": "NvidiaGpuDriverLinux",
"type": "extensions",
"apiVersion": "2015-06-15",
"location": "<location>",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', <myVM>)]"
],
"properties": {
"publisher": "Microsoft.HpcCompute",
"type": "NvidiaGpuDriverLinux",
"typeHandlerVersion": "1.11",
"autoUpgradeMinorVersion": true,
"settings": {
"driverVersion": "535.161"
}
}
}
- Grid 17.5 Linux ドライバーには、CUDA 関連のワークロードに影響するバグがあります。 通常、エラー署名には CUDA デバイスが使用できません。 Azure がこの問題の解決に取り組んでいる間は、GRID ドライバー 16.5 を使用してワークロードの実行を続行します。
サポート
この記事についてさらにヘルプが必要な場合は、いつでも MSDN の Azure フォーラムと Stack Overflow フォーラムで Azure エキスパートに問い合わせてください。 または、Azure サポート インシデントを送信できます。 Azure サポートに移動して、[サポートを受ける] を選択します。 Azure サポートの使用方法の詳細については、Azure サポートに関する FAQ を参照してください。
次のステップ
- 拡張機能の詳細については、「Linux 用の仮想マシンの拡張機能とその機能」を参照してください。
- N シリーズ VM の詳細については、「GPU 最適化済み仮想マシンのサイズ」を参照してください。