GPU VM のトラブルシューティング


このページでは、Compute Engine で実行され、GPU が接続された VM の問題を解決する方法について説明します。

GPU が割り当てられた VM を作成しようとしたときにエラーが発生した場合は、リソースの可用性エラーのトラブルシューティングVM の作成と更新のトラブルシューティングをご覧ください。

NVIDIA DCGM を使用して GPU VM のトラブルシューティングを行う

NVIDIA Data Center GPU Manager(DCGM)は、クラスタ環境内の NVIDIA データセンター GPU の管理とモニタリングを行うためのツールセットです。

DCGM を使用して GPU 環境のトラブルシューティングを行う場合は、次の操作を行います。

  • VM の GPU モデルに推奨される最新の NVIDIA ドライバを使用していることを確認します。ドライバのバージョンを確認するには、推奨される NVIDIA ドライバのバージョンをご覧ください。
  • DCGM の最新バージョンがインストールされていることを確認します。最新バージョンをインストールするには、DCGM のインストールをご覧ください。

問題の診断

dcgmi 診断コマンドを実行すると、診断ツールから報告された問題とその対処方法を確認できます。次の例は、dcgmi diag -r memory -j コマンドの出力を示しています。

{
  ........
   "category":"Hardware",
   "tests":[
      {
         "name":"GPU Memory",
         "results":[
            {
               "gpu_id":"0",
               "info":"GPU 0 Allocated 23376170169
bytes (98.3%)",
               "status":"Fail",
               ""warnings":[
                  {
                     "warning":"Pending page
retirements together with a DBE were detected on GPU 0. Drain the GPU and reset it or reboot the node to resolve this issue.",
                     "error_id":83,
                     "error_category":10,
                     "error_severity":6
                  }
               ]
            }
  .........

この出力スニペットを見ると、回復不能なエラーのため、GPU 0 でページ リタイアメントが保留されていることがわかります。出力には、一意の error_id と問題のデバッグに関するアドバイスが表示されます。この出力例では、GPU をドレインして VM を再起動することが推奨されています。ほとんどの場合、出力のこのセクションの手順で問題を解決できます。

サポートケースを登録する

dcgmi の診断結果のガイダンスに従っても問題を解決できない場合は、サポートケースを作成できます。サポートケースを登録する際に、次の情報を提供する必要があります。

  1. 実行したコマンドとその出力。
  2. 関連するログファイル(ホストエンジン ログや診断ログなど)。必要なログファイルを収集するには、gather-dcgm-logs.sh スクリプトを実行します。

    Debian ベースと RPM ベースのシステムのデフォルト インストールの場合、このスクリプトは /usr/local/dcgm/scripts にあります。

  3. dcgmi diag エラーの場合は、失敗したプラグインの統計ファイルを提供します。統計ファイルの名前は stats_PLUGIN_NAME.json という形式になっています。

    たとえば、pcie プラグインが失敗した場合は、stats_pcie.json という名前のファイルを提供します。

  4. NVIDIA システム情報とドライバの状態。この情報を収集するには、nvidia-bug-report.sh スクリプトを実行します。

    このスクリプトを実行すると、問題が DCGM 自体のバグではなく、NVIDIA の他の依存関係によって発生している場合のデバッグにも役立ちます。

  5. エラーが発生する前に環境に加えた最近の変更に関する詳細。

Xid メッセージ

GPU が接続された VM を作成したら、アプリケーションが GPU にアクセスできるように、NVIDIA デバイス ドライバを GPU VM にインストールする必要があります。ただし、これらのドライバがエラー メッセージを返すことがあります。

Xid メッセージは NVIDIA ドライバからのエラーレポートで、Linux VM のオペレーティング システムのカーネルログまたはイベントログに出力されます。これらのメッセージは /var/log/messages ファイルに記録されます。

原因の可能性を含む Xid メッセージの詳細については、NVIDIA のドキュメントをご覧ください。

次のセクションでは、Xid メッセージの処理に関するガイダンスを GPU メモリエラー、GPU System Processor(GSP)エラー、不正なメモリアクセス エラーなどの一般的なタイプ別に示します。

GPU メモリエラー

GPU メモリは GPU で利用可能なメモリで、データの一時的な保存に使用できます。GPU メモリは誤り訂正符号(ECC)で保護されています。ECC は、単一ビットエラー(SBE)を検出して訂正し、ダブルビット エラー(DBE)を検出して報告します。

NVIDIA A100 GPU のリリース前は Dynamic Page Retirement がサポートされていました。NVIDIA A100 以降の GPU リリース(NVIDIA H100 など)では、Row Remap Error からの復旧が導入されています。ECC はデフォルトで有効になっています。ECC を有効にしたままにすることを強くおすすめします。

以下に、一般的な GPU メモリエラーとその解決策を示します。

Xid エラー メッセージ 解決策
Xid 48: Double Bit ECC
  1. ワークロードを停止します。
  2. VM を削除して VM を再作成します。エラーが解決しない場合は、Cloud カスタマーケアにケースを登録してください。
Xid 63: ECC page retirement or row remapping recording event
  1. ワークロードを停止します。
  2. GPU をリセットします。
Xid 64: ECC page retirement or row remapper recording failure

メッセージには次の情報が含まれています。

Xid 64: All reserved rows for bank are remapped
  1. ワークロードを停止します。
  2. VM を削除して VM を再作成します。エラーが解決しない場合は、Cloud カスタマーケアにケースを登録してください。

次の Xid メッセージのうち少なくとも 2 つが同時に表示された場合:

  • Xid 48
  • Xid 63
  • Xid 64

メッセージには次の情報が含まれています。

Xid XX: row remap pending
  1. ワークロードを停止します。
  2. GPU をリセットします。GPU をリセットすると、Row Remap と Page Retirement のプロセスが完了して GPU を修復できます。
Xid 92: High single-bit ECC error rate この Xid メッセージは、GPU ドライバが修正可能なエラーを修正した後に返され、ワークロードには影響しません。この Xid メッセージは情報提供のみを目的としています。対応の必要はありません。
Xid 94: Contained ECC error
  1. ワークロードを停止します。
  2. GPU をリセットします。
Xid 95: Uncontained ECC error
  1. ワークロードを停止します。
  2. GPU をリセットします。

GSP エラー

GPU System Processor(GSP)は GPU 上で動作し、低レベルのハードウェア管理機能を処理するマイクロコントローラです。

Xid エラー メッセージ 解決策
Xid 119: GSP RPC timeout
  1. ワークロードを停止します。
  2. VM を削除して VM を再作成します。エラーが解決しない場合は、NVIDIA バグレポートを収集し、Cloud カスタマーケアにケースを登録してください。
Xid 120: GSP error

不正なメモリアクセス エラー

アプリに不正なメモリアクセスの問題がある場合、次の Xid が返されます。

  • Xid 13: Graphics Engine Exception
  • Xid 31: GPU memory page fault

不正なメモリアクセス エラーは通常、すでに解放されているメモリや範囲外のメモリにワークロードがアクセスしようとした場合に発生します。これは、無効なポインタの逆参照や、配列の範囲外アクセスなどの問題が原因で発生することがあります。

この問題を解決するには、アプリケーションをデバッグする必要があります。アプリケーションをデバッグするには、cuda-memcheckCUDA-GDB を使用します。

ごくまれに、ハードウェアの性能低下によって不正なメモリアクセス エラーが返されることがあります。問題がハードウェアにあるかどうかを確認するには、NVIDIA Data Center GPU Manager(DCGM)を使用します。dcgmi diag -r 3 または dcgmi diag -r 4 を実行すると、異なるレベルのテスト カバレッジとテスト期間を実行できます。ハードウェアに問題があることが判明した場合は、Cloud カスタマーケアにケースを登録してください。

その他の一般的な Xid エラー メッセージ

Xid エラー メッセージ 解決策
Xid 74: NVLINK error
  1. ワークロードを停止します。
  2. GPU をリセットします。
Xid 79: GPU has fallen off the bus

これは、ドライバが GPU と通信できないことを意味します。

VM を再起動します。

GPU をリセットする

問題によっては、GPU のリセットが必要になる場合があります。GPU をリセットするには、次の操作を行います。

  • N1、G2、A2 VM の場合は、sudo reboot を実行して VM を再起動します。
  • A3 VM の場合は、nvidia-smi reset GPU を実行します。

GPU をリセットしてもエラーが解決しない場合は、VM を削除して VM を再作成する必要があります。

削除して再作成してもエラーが解決しない場合は、Cloud カスタマーケアにケースを登録して、VM を修復ステージにします。