PFC Deadlock Detection & Recovery

PFCのポーズは、RoCEv2をロスレスにする仕組みですが、まれなトポロジーおよびルーティング条件下では、各スイッチがサイクル内の次のスイッチを待ってポーズする循環依存を生み、トラフィックが無期限に停止することがあります。OcNOS-DCには、このサイクルをミリ秒単位で検出し、トレーニングジョブがハングする前に該当キューを自動的にドレインするウォッチドッグが標準搭載されています。

3スイッチによるPauseサイクル

循環依存に陥った3台のスイッチ。各スイッチはロスレス優先度キューで一時停止し、次のスイッチがドレインするのを待機しています。介入がなければ、このサイクルは永続的に安定したままです。OcNOSのウォッチドッグは設定済みのタイムアウト後に発火し、switch-Aのqueue-3をドレインしてサイクルを崩壊させます。

PFC デッドロックサイクルとウォッチドッグによる復旧 三角形に配置された3台のスイッチ。一時停止の矢印が各スイッチから次へと時計回りに向き、各スイッチが下流スイッチを待って一時停止していることを示します。switch Aのウォッチドッグアイコンは、OcNOSのデッドロックタイマーが発火してキューをドレインし、サイクルを断ち切る様子を示します。 PFC ポーズ(CoS 3) PFCポーズ PFCポーズ WD ウォッチドッグ作動 キュー3をドレイン Switch-AQ3 で一時停止B を待機中 Switch-BQ3 で一時停止C を待機中 Switch-CQ3 で一時停止A を待機中 PFCデッドロック · ウォッチドッグタイムアウト · キュードレイン · 自動復旧

PFC がデッドロックを引き起こす仕組み

PFCはホップバイホップの一時停止です:スイッチAは、自身のロスレス入力キューがしきい値を超えて満たされると上流に対して一時停止を通知し、上流は送信を停止します。これは、トラフィックフローの方向が一つに定まるツリートポロジーでは問題なく機能します。複数経路を持つリーフ/スパインファブリックでは、リンク障害を迂回するECMPの再ルーティングが、特定の条件下で、各スイッチが次のスイッチを待って一時停止する循環経路を生み出す場合があります。

いったんサイクルが形成されると、それは安定してしまいます:ポーズフレームを保持するのに十分なメモリがあり、ルーティングプロトコルはすべて正常と認識し、PFCはすべてのスイッチで再アサートし続けるためです。介入がなければ、影響を受けたロスレスプライオリティは無期限にハングしたままとなります。 RoCEv2 トラフィックが停止し、xCCL (NCCL / RCCL / oneCCL) 集合通信 (コレクティブ) がタイムアウトし、トレーニングジョブがストールします。

OcNOS-DCウォッチドッグ

Detection

ポート単位・優先度単位のタイマー

入力ポートごと、ロスレスプライオリティごとにタイマーが動作します。設定された間隔(通常100~400 ms)にわたりプライオリティが連続的にポーズされると、ウォッチドッグが発火します。

Recovery

自動キュードレイン

デッドロック発火時には対象の入口キューがドレインされ、サイクルを解消するためにフレームが一時的にドロップされます。ドロップされたフレームは xCCL 集合通信の再送をトリガしますが、代替手段は無期限のハングです。

Restoration

復旧後の自動リストア

設定された復旧インターバルの経過後、該当プライオリティで通常のPFC動作が再開します。オペレーターの介入は不要で、ファブリックは数秒以内にロスレス状態へ復帰します。

テレメトリ

gNMIカウンター

Watchdog発火イベント、ドレイン継続時間、優先度別ポーズカウンターは、クローズドループのファブリック監視のためgNMI経由でストリーミングされます。SREはデッドロックイベントを、無言のトレーニング停滞ではなくアラートとして把握できます。

Tunable

オペレーターが設定可能なタイマー

検出タイムアウト、ドレイン継続時間、復旧間隔は、ポート単位および優先度単位でCLIから構成可能。デフォルト値はほとんどのファブリックで有効であり、重要度の高いクラスターではオペレーターがタイマーを短縮できます。

Scope

DC-PLUSライセンスティア

ロスレスRoCEv2スタック一式とともにOcNOS-DC PLUS SKUに含まれる。Broadcom Tomahawk 4およびTomahawk 5プラットフォームで確認済み。

これが発動する場面

適切なトポロジーとルーティングを備えた良設計のファブリックでは、PFCデッドロックは稀です。多くの運用者は何年運用しても遭遇しません。それでもウォッチドッグが重要なのは、 「まれ」は「決して起きない」を意味しない:ルーティング収束ウィンドウ中のリンク障害、単一ポートでのPFCプライオリティの設定ミス、あるいは通常とは異なるトラフィックパターンでの一時的な輻輳イベントは、いずれもその条件を生み出し得ます。ウォッチドッグがなければ、それが発動した際にAIクラスターは停止し、運用チームには何時間ものデバッグ作業が待ち受けます。ウォッチドッグがあれば、短い再送バーストと記録されたイベントで済みます。

The bottom line

  • ロスレスのセーフティネット。 ウォッチドッグの有無が、「本番AIファブリックにおけるPFCは理論上リスクがある」と「PFCは大規模環境でも安全に導入できる」との違いを生みます。
  • サブセカンドのリカバリ。 検出 + ドレイン + 復旧は通常 1 秒以内に完了。xCCL が RDMA トラフィックの小さなウィンドウを再送し、ジョブは継続します。
  • 標準構成。 このwatchdogはOcNOS-DCのロスレステンプレートでデフォルト有効。オンにし忘れる心配はありません。
  • Observable. あらゆる火種がgNMI経由でログ記録、カウント、ストリーミングされます。既存の可観測性スタックによるクローズドループ監視。
  • 重要度に応じて調整可能。 重要なトレーニングクラスターではタイマーを下げる。一般的なDCファブリックではデフォルトで問題なし。

新しいファブリックでロスレス動作を検証中ですか。ウォッチドッグから始めましょう。

技術デモをリクエスト →