Linux 用の NVIDIA GPU ドライバー拡張機能

注意

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

この拡張機能では、Linux N シリーズ仮想マシン (VM) に NVIDIA GPU ドライバーをインストールします。 VM ファミリに応じて、この拡張機能では CUDA ドライバーまたは GRID ドライバーがインストールされます。 この拡張機能を使用して NVIDIA ドライバーをインストールする際は、NVIDIA のエンドユーザー使用許諾契約書の条項を受け入れ、同意します。 インストール プロセス中に、ドライバーのセットアップを完了するために仮想マシンが再起動することがあります。

ドライバーの手動インストールの手順と現在サポートされているバージョンに関する説明があります。 NVIDIA GPU ドライバーを Windows の N シリーズ VM にインストールする拡張機能も利用可能です。

Note

セキュア ブートが有効になっていると、すべての OS ブート コンポーネント (ブート ローダー、カーネル、カーネル ドライバー) は、信頼された発行元によって署名されている必要があります。 セキュア ブートは、Windows または Linux 拡張機能を使用している場合はサポートされません。 セキュア ブートを有効にした GPU ドライバーを手動でインストールする方法の詳細については、Linux 用の Azure N シリーズ GPU ドライバーのセットアップに関する記事を参照してください。

Note

GPU ドライバーの拡張機能をインストールした後、ドライバーは拡張機能によって自動的に更新されません。 新しいバージョンのドライバーに移行する必要がある場合は、手動でドライバーをダウンロードしてインストールするか、拡張機能を削除して再度追加してください。

前提条件

オペレーティング システム

この拡張機能では、特定の OS バージョンのドライバー サポートに応じて、次の OS ディストリビューションをサポートしています。

Distribution Version
Linux: Ubuntu 20.04 LTS
Linux: Red Hat Enterprise Linux 7.9
Linux: CentOS 7

Note

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
publisher Microsoft.HpcCompute string
type NvidiaGpuDriverLinux string
typeHandlerVersion 1.6 INT

設定

すべての設定は省略可能です。 既定の動作では、ドライバーのインストールに必要ない場合はカーネルを更新せず、サポートされている最新のドライバーと (必要に応じて) CUDA Toolkit をインストールします。

名前 Description 既定値 有効な値 データ型
updateOS ドライバーのインストールに必要ない場合でも、カーネルを更新します。 false true、false boolean
driverVersion NV: GRID ドライバーのバージョン。
NC/ND: CUDA Toolkit のバージョン。 選択した CUDA の最新のドライバーが自動的にインストールされます。
latest サポートされているドライバーのバージョンのリスト string
installCUDA CUDA Toolkit をインストールします。 NC/ND シリーズの VM のみに関係します。 true true、false boolean

デプロイ

Azure portal

Azure NVIDIA VM 拡張機能は Azure portal でデプロイできます。

  1. ブラウザーで、 Azure ポータルに移動します。

  2. ドライバーをインストールする仮想マシンに移動します。

  3. 左側のメニューで [拡張機能] を選択します。

    Azure portal のメニューで [拡張機能] を選択する場面のスクリーンショット。

  4. [追加] を選択します。

    選択した VM の VM 拡張機能を追加する場面のスクリーンショット。

  5. スクロールして [NVIDIA GPU Driver Extension](NVIDIA GPU ドライバー拡張機能) を見つけて選択し、 [次へ] を選択します。

    NVIDIA GPU ドライバー拡張機能を選択している場面のスクリーンショット。

  6. [確認および作成] を選択し、[作成] を選択します。 ドライバーがデプロイされるまで数分待ちます。

    [確認と作成] ボタンを選択する場面のスクリーンショット。

  7. インストール済み拡張機能の一覧にこの拡張機能が追加されたことを確認します。

    VM の拡張機能一覧の新しい拡張機能を示すスクリーンショット。

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 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 操作が失敗しました 実行の出力ログを確認します。

サポート

この記事についてさらにヘルプが必要な場合は、いつでも MSDN の Azure フォーラムと Stack Overflow フォーラムで Azure エキスパートに問い合わせてください。 または、Azure サポート インシデントを送信できます。 Azure サポートに移動して、[サポートを受ける] を選択します。 Azure サポートの使用方法の詳細については、Azure サポートに関する FAQ を参照してください。

次のステップ