CodingBox ドキュメント

InfiniBand ファブリックの基礎

InfiniBand ファブリックは、リンクを診断する際に重要となる点で、イーサネットネットワークとは異なる振る舞いをします。このページでは、光学系エンジニアが直面する概念、すなわちサブネットマネージャー、ロスレスフロー制御、トポロジー、そして不良リンクがどう現れるかを扱います。

サブネットマネージャー

すべての IB サブネットには、アクティブなサブネットマネージャー(SM)が1つ存在します。SM はすべてのポートとスイッチを検出し、ローカル識別子(LID)を割り当て、転送テーブルを計算して、各スイッチにプログラムします。リンクがフラッピングすると、SM はファブリックを再スキャンします。そのため、限界品質の光モジュールは1本のリンクを失うだけでは済まず、ファブリック全体の再ルーティングイベントを引き起こし、誰もがそれに気づくことになります。

クレジットによるロスレス化

IB リンクは、通常動作中はパケットを破棄しません。送信側は、受信側がバッファクレジットを通知したときにのみ送信します。そのため輻輳は、破棄ではなく背圧として現れます。劣化したリンク(シンボルエラーの増加、FEC 訂正の増加)は、それに依存するジョブ全体を遅らせます。これが、集団通信における「1本の遅いリンク」問題です。

トポロジー

  • ファットツリー(Clos):標準的な構成です。リーフスイッチがホストを接続し、スパインスイッチがリーフを接続し、ノンブロッキングになるだけのアップリンクを備えます。大半のリンクは、リーフ・スパイン間の光モジュールです。
  • Dragonfly+とトーラス系のバリエーションは、スイッチとケーブルを節約するために、最大規模のシステムで採用されます。
  • AI 向けのレール最適化設計では、各 GPU の NIC をファブリックの別々の「レール」に配置し、サーバーをまたいで同じランクの GPU 同士が1ホップで到達できるようにします。GPU ファブリックトポロジーを参照してください。

RDMA と GPUDirect

アプリケーションは、RDMA verbs を使って、CPU コピーを介さずにノード間でメモリのデータを移動します。GPUDirect RDMA は、これを GPU メモリにまで拡張します。その結果、ファブリックの障害は、運用者がポートダウンに気づくよりずっと前に、アプリケーションからは集団通信のストールやタイムアウトとして見えることになります。

不良リンクの現れ方

ファブリック上の症状確認すべき物理層の原因
1つのポートでシンボルエラー/FEC 訂正ブロックが増加MPO の汚れ、Rx パワーが限界に近い、レーンの劣化
リンクが低い幅または速度で固定されるFEC の不一致、期待されるレートを通知しないモジュール
ポートが「Not supported」、リンクなし認識されないモジュール識別情報 — ベンダーロック
SM の再スキャンが繰り返されるどこかでリンクがフラッピングしている — ポートごとのエラーカウンターで特定する

通常の診断のはしごに従ってください:レベル確認 → 清掃 → 交換 → ケーブル。

CodingBox では

疑わしい IB モジュールは、ベンチ上で読み取ってください。DDM 画面のレーンごとの Rx/Tx とバイアスから、SR4/DR4 モジュールの1レーンが劣化しつつあるかが分かり、識別情報フィールドから、ファブリックが交換品を受け入れるかどうかが分かります。

プロトコルレイヤー、キューペア、サブネットマネージャー機能の詳細について:IB プロトコルとトランスポート。世代と伝送距離によるファブリックの配線について:IB 配線


この記事に不正確な点や誤りを見つけた場合は、該当する箇所を選択して Ctrl+Enter を押すと、できます。