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 配線。