NVIDIA GPU でアクセラレートされた EC2 Linux インスタンスで Xid エラーをトラブルシューティングする方法を教えてください?
NVIDIA GPU アクセラレーション Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスでアプリケーションを実行すると、アプリケーションがクラッシュします。また、システムログに GPU 固有の Xid エラーが表示されます。GPU から診断情報を取得し、GPU に関連する Xid エラーをトラブルシューティングしたいです。
解決策
注: 次の解決策では、G4、G5、G6 インスタンスタイプをトラブルシューティングできます。すべての GPU アクセラレーション EC2 インスタンスファミリーでは、GPU はゲストインスタンスに渡されます。
nvidia-smi の診断情報を取得する
nvidia-smi ツールを使用して、インスタンスにアタッチされている NVIDIA GPU の正常性とパフォーマンスに関する統計情報と診断を取得します。NVIDIA GPU ドライバーから自動的にツールが取得され、すべての AWS Deep Learning Amazon Machine Image (DLAMI) オプションが含まれています。任意の GPU インスタンスファミリーに NVIDIA GPU ドライバーをインストールする方法については、「インストールオプション」を参照してください。
統計情報をクエリするには、sudo nvidia-smi -q コマンドを実行します。
メモリ統計情報の例
ECC Errors Volatile # Errors counted since last GPU driver reload SRAM Correctable : 0 SRAM Uncorrectable : 0 DRAM Correctable : 0 DRAM Uncorrectable : 0 Aggregate # Errors counted for the life of the GPU SRAM Correctable : 0 SRAM Uncorrectable : 0 DRAM Correctable : 0 DRAM Uncorrectable : 0
すべての世代の NVIDIA GPU は、GPU ハードウェアの集約メモリ統計と揮発性メモリ統計を記録します。集約 ECC エラーカウンターは、GPU の存続中にわたり保持されます。陽性値は過去の問題に起因している可能性があるため、揮発性メトリクスも確認する必要があります。揮発性 ECCエラー数は、GPUドライバーが最後にリロードした時点から、ゼロから増加します。
ECC エラーを修正しなかった場合は、インスタンスの存続中に増加します。ただし、ECC エラーを修正することはできます。該当するカウンターをリセットするには、インスタンスを再起動するか、GPU をリセットします。一部のインスタンスタイプと GPU の世代では、再起動を行うと、不良メモリページに対してページの廃止または行の再マッピングが開始されます。
P3、P3dn、G4dn インスタンス
Retired Pages Single Bit ECC : 0 Double Bit ECC : 0 Pending Page Blacklist : No
初期世代の NVIDIA GPU では、動的ページ廃止が採用されています。シングルビットエラーは通常は問題を引き起こさないため、無視してかまいません。
GPU ファームウェアが 2 ビットエラーを検出した場合は、GPU は処理を停止するため、アプリケーションが突然終了します。2 ビットエラーが発生すると、Xid エラーがオペレーティングシステム (OS) ログに記録され、[ページのブラックリスト保留中]ステータスが Yes になります。これらのエラーを解決するには、インスタンスを再起動して不良メモリ位置を廃止します。再起動すると、[ページのブラックリスト保留中] ステータスが No にリセットされます。
注: エラーカウンターは GPU の存続中にわたり、保持されます。インスタンス起動時にゼロ以外のカウンターが表示された場合、アクティブなハードウェアの問題や GPU の障害を示しているわけではありません。
P4d、P4de、G5、G5g、G6 インスタンス
Remapped Rows Correctable Error : 0 # Can safely ignore. Uncorrectable Error : 0 # If > 0, review system logs for Xid errors Pending : No # If Yes, an instance reboot or GPU reset is required. Remapping Failure Occurred : No # Should always be No. If Yes, please stop/start the instance.
A100 および A10G GPU を搭載した後期インスタンスファミリーでは、既知の劣化したメモリ位置の再利用を防止するために、行の再マッピングによってメモリエラーを切り分けて封じ込めます。行の再マッピングは、旧世代の GPU のページ廃止スキームに代わるものです。
修正可能なメモリエラーは無視してかまいません。修正不可能なエラーはエラーやアプリケーションの突然終了の原因となり、OS システムログに Xid エラーとして記録される場合があります。
修正不可能なエラーによって再マップされた保留中の行がアクティブになった場合は、GPU をリセットして不正なメモリ位置を廃止させる必要があります。インスタンスを再起動して GPU をリセットします。または、次のコマンドを実行して GPU を手動でリセットします。
sudo nvidia-smi -i GPU_UUID -r
注: GPU_UUID は、実際の GPU ID に置き換えます。
再マッピングで障害が発生した場合は、インスタンスを停止してから起動し、GPU が正常に動作している新しい基盤ホストにインスタンスを移行します。
注: AWS は定期的に診断を行い、異常な GPU を検出して自動的に交換します。
障害モードを解決する
すべての世代の NVIDIA GPU 用の GPU ドライバーは、エラーを Xid エラーとして OS のシステムログに記録します。これらのエラーの詳細については、NVIDIA のウェブサイトで「Xid エラー」を参照してください。
GPU の数が誤っているか、GPU が欠けている
アタッチされたすべての GPU を表示するには、次のコマンドを実行します。
nvidia-smi --list-gpus | wc -l
コマンド出力で、アタッチされた GPU の数が、インスタンスタイプで想定される GPU の数と一致していることを確認します。GPU が欠けている場合は、インスタンスを停止後に起動します。
上記のトラブルシューティング手順を実行することで、次のような ECC エラーを解決することもできます。
- Xid 48: A DBE has occurred (DBE が発生しました)
- Xid 63: A page has successfully been retired (ページは正常に廃止されました)
- Xid 64: A page has failed retirement due to an error (エラーが発生し、ページを廃止できませんでした)
NVRM: Xid 79 (PCI:0000:00:00): GPU has fallen off the bus (GPU が通信できません)
Xid 79 エラーは、インスタンスが基盤となる GPU と通信できなくなったときに発生します。この問題を解決するには、インスタンスを再起動します。再起動後も問題が解決しない場合は、インスタンスを停止後に起動します。
WARNING: infoROM is corrupted at gpu 0000:00:00.0
infoROM is corrupted というエラーは、GPU ファームウェアの一部が破損している場合に発生します。この問題を解決するには、インスタンスを再起動するか、GPU をリセットします。再起動後も問題が解決しない場合は、インスタンスを停止後に起動します。
NVRM: Xid 119 PCI:0000:00:00): Timeout waiting for RPC from GSP
または、
NVRM: Xid 120 PCI:0000:00:00): GSP Error: Task 1 raised error code
上記のエラーは、GPU システムプロセッサ (GSP) を有効化するときに発生します。この問題を解決するには、GPU ドライバーまたはカーネルモジュール内から GSP を無効にします。GSP を無効化する方法については、NVIDIA のウェブサイトで「4.2.6.GSP ファームウェアを無効にする」を参照してください。
今後の Xid エラーを回避する
可能な場合は、最新のドライバーと CUDA ランタイムを使用してください。GPU ドライバーのリリースでは、修正、改善、最適化が頻繁に導入されています。ただし、これらの更新には機能上の変更も含まれる場合があります。最初に、本番環境以外の GPU インスタンスでドライバーの更新を計画し、テストしてください。
GPU のコアとメモリのクロック速度は、負荷に応じて動的に変化します。パフォーマンスを向上させるには、GPU コアとメモリのクロック速度を常に最大速度に設定してください。
GSP を無効にします。最近のインスタンス世代では、NVIDIA GPU には GSP ファームウェア機能が搭載されています。GSP を無効化する方法については、NVIDIA のウェブサイトで「4.2.6.GSP ファームウェアを無効にする」を参照してください。
さらに、Amazon CloudWatch エージェントを使用して GPU メトリクスを監視します。
上記のトラブルシューティング手順を実行しても Xid エラーが解消されない場合は、AWS サポートケースを開いてください。インスタンス ID と nvidia-smi -q コマンドの出力を提供してください。また、NVIDIA GPU ドライバーに含まれている sudo nvidia-bug-report.sh コマンドを実行してください。nvidia-bug-report.sh スクリプトは、現在の作業ディレクトリ内の主要なログやその他の診断情報をキャプチャします。圧縮ログファイル nvidia-bug-report.log.gz をサポートケースに添付してください。
関連するコンテンツ
質問済み 3年前
