AMD x86_64 CPU/メモリ エラーのエラー検出と修正用の AMD EDAC Linux ドライバは、Instinct MI200 シリーズ以降のような AMD データ センター GPU を処理できるように拡張されており、エラー報告/修正情報をこの既存のドライバに伝播できるようになりました。
Linux 6.4 のマージ ウィンドウがあった先月には、GPU 用の AMD EDAC の準備が行われ、今週月曜日の朝には、この EDAC ドライバーを実際に AMD Instinct アクセラレータの対象範囲に拡張するための最初の AMD パッチが投稿されました。
パッチ シリーズ では次のように説明されています。
「このセットは、MI200 (Aldebaran) シリーズ以降の AMD64 EDAC に GPU サポートを追加します。
…
AMD Instinct™ MI200 シリーズ アクセラレータはデータ センター GPU です。 MI200 (Aldebaran) シリーズのアクセラレータ デバイスには、ユニファイド メモリ コントローラと、AMD x86 CPU 製品で使用されているものと同様のデータ ファブリックが含まれており、メモリ コントローラは MCA を使用してエラーを報告しますが、これらのエラーは通常、アクセラレータ デバイスを直接管理する GPU ドライバを通じて処理されます。一部の構成では、これらのデバイスからのメモリ エラーは MCA を通じて報告され、x86 CPU によって管理されます。OS は、x86 CPU のメモリ コントローラから発生する MCA エラーと同様の方法でこれらのエラーを処理することが期待されます。Linux では、このフローはこれには、EDAC サブシステムのハンドラーを使用する通知チェーンに MCA エラーを渡すことが含まれます。
AMD64 EDAC モジュールは、メモリ エラーの詳細なデコードを行うために、メモリ コントローラとデータ ファブリックからの情報を必要とします。情報は、データ ファブリック内のインターフェイスを介してアクセスされるハードウェア レジスタから読み取られます。
アクセラレータ データ ファブリックは、x86 CPU データ ファブリックが既に認識されているのと同様に、PCI デバイスとしてホスト x86 CPU から認識されます。ただし、アクセラレータ ファブリックには新しい一意の PCI ID があります。
…
AMD ファミリ 19h モデル 30h-3Fh システムは、CPU と GPU データ ファブリックが相互に接続されるように、AMD MI200 アクセラレータ/GPU デバイスに接続できます。この構成では、CPU は、GPU 上にある MCA バンクのエラー ログとレポートを管理します。これには、GPU 上のユニファイド メモリ コントローラー (UMC) から報告された HBM メモリ エラーが含まれます。 GPU メモリ エラーは、CPU メモリ エラーと同様に処理されます。」
データ センターの GPU で使用する AMD64 EDAC ドライバをセットアップするには、500 行弱のコードが必要です。パッチは現在レビュー中です。
この初期有効化では AMD Instinct MI200 シリーズに焦点を当てていますが、今後の Instinct MI300 シリーズはこの EDAC 統合とほぼ同様に動作するはずです。