GKE の動的スライスについて

このドキュメントでは、Cloud TPU 用の Google Kubernetes Engine(GKE)の動的スライスについて説明します。動的スライスは、TPU プロビジョニングをワークロードの TPU スライス ニーズから切り離すことで、TPU の効率と柔軟性を高めます。動的スライスを使用すると、ワークロードの起動時間を最大 5 倍、復元時間を最大 4.5 倍短縮できるため、TPU リソースの使用率を向上させることができます。

動的スライスは、TPU の使用率を最適化し、プロビジョニング時間を短縮し、大規模なトレーニングと推論ワークロードのフォールト トレランスを改善したい ML エンジニアとプラットフォーム エンジニアを対象としています。

このドキュメントを読む前に、次のことを理解しておいてください。

動的スライスとは

動的スライスは、ワークロードのスケジュール時に、物理 TPU ハードウェアと静的 TPU ハードウェアのプロビジョニングを TPU スライス割り当てから切り離す GKE TPU 最適化機能です。

静的 TPU トポロジを使用する場合、GKE ノードプールは、作成時に構成した特定のトポロジにバインドされます。この制限により、静的プール内のノードが失敗すると、ノードプール全体が影響を受けます。ワークロード トポロジもノードプール TPU トポロジと完全に一致している必要があります。これにより、さまざまなワークロードに対して TPU インフラストラクチャの再プロビジョニングが頻繁に必要になる可能性があります。

動的スライスを使用すると、ワークロードのスケジュール時に GKE が実行時に TPU スライスを構成できます。新しいワークロードごとに必要な TPU トポロジでノードプールを手動で作成する代わりに、TPU 容量全体を粒度の細かい固定サイズのノードプールに事前プロビジョニングします。Ironwood(TPU7x)の場合、各ノードプールは 4x4x4 トポロジ(サブブロックとも呼ばれます)で構成されます。サブブロックは、アクティブなチップ間相互接続(ICI)トポロジ メッシュのない 16 ノードの TPU VM グループを表します。実行時にワークロードがスケジュールされると、GKE 動的スライスは、TPU ネットワーク インターコネクトを再構成して、複数のノードプールを必要な大規模な TPU スライスにステッチするか、ノードプールを細分化して小さな TPU スライスを形成します。この再構成により、ワークロードで要求された正確な多次元トポロジが数秒で作成されます。

動的スライスのメリット

GKE で動的 TPU アーキテクチャを実装すると、次のようなメリットがあります。

  • ワークロードの高速復元: 物理ハードウェアの障害が発生した場合、GKE は問題を単一のパーティションに分離します。GKE スライス コントローラは、アクティブ スライスを自動的に再形成し、ネットワークを再構成して、障害のあるパーティションを正常なスペアに置き換えます。このプロセスにより、ノードプール全体を再作成する場合と比較して、復元力または平均復元時間(MTTR)が最大 4.5 倍向上します。
  • ジョブの起動の高速化: ワークロード スライスを動的に形成できるため、静的ノードプールを作成する場合と比較して、ジョブの起動レイテンシが最大 5 倍向上します。
  • 障害の分離: ハードウェア障害は、障害が発生した特定のパーティションに分離されます。この分離により、クラスタ内の他の同時実行ジョブをカスケード障害から保護できます。
  • リソース使用率の最適化: 動的スライスにより、使用されていない容量や使用率の低い容量を排除できます。スライスはワークロードの需要に合わせて構成されるため、動的スライスを使用すると、フリートの使用率を最大化し、アイドル状態のハードウェアを最小限に抑えることができます。
  • 宣言型オーケストレーション: 動的スライスは、JobSet や Kueue などの Kubernetes ネイティブのカスタム リソースとアノテーションを使用します。このアプローチでは、低レベルのネットワーキングとハードウェア オーケストレーションが自動的に管理されます。

動的スライシング構成

動的スライスでは、次の構成を使用できます。

  • 動的スーパー スライシング: ワークロードのスケジューリング時に、物理的に分離された複数の事前プロビジョニング済み TPU ノードプールを組み合わせて、単一の仮想スライスを形成します。たとえば、2 つの 4x4x4 ノードプールを組み合わせて 4x4x8 トポロジを形成できます。この機能を使用すると、4x4x4 トポロジ以上のスライスを作成できます。この構成には、バージョン 1.35.2-gke.1842000 以降が必要です。動的スーパー スライシングを使用すると、単一の物理ハードウェア ブロックの容量を超える大規模な基盤モデルをトレーニングできます。

    スライス コントローラは、光回路スイッチ(OCS)ネットワーク ファブリック内の物理的な再構成をオーケストレートします。GKE は、OCS を動的に再構成することで、独立したハードウェア ラック間でチップ間相互接続(ICI)ネットワークを拡張します。ワークロードの観点から見ると、結合されたサブブロックは単一のトーラス メッシュとして動作します。トーラス メッシュでは、接続が折り返されます。右端のチップは左端のチップに直接接続され、上部は下部に接続されます。この配置を視覚化すると、トーラス(リング状)の形状になります。

  • 動的サブスライス: 事前プロビジョニングされた単一の TPU ノードプールを、ワークロード レベルで複数の独立した小さな単位にパーティショニングします。動的サブスライスを使用すると、単一のサブブロック(具体的には 2x2x12x2x22x2x42x4x4)内に小さなトポロジを作成できます。たとえば、4x4x4 サブブロックを 1 つの 2x2x4 サブスライスと 2 つの 2x2x2 サブスライスにパーティショニングできます。この構成には、Rapid チャンネルのバージョン 1.36.0-gke.3712000 以降が必要です。

    動的サブスライスを使用すると、単一の物理ノードプールで複数のワークロードを実行できます。たとえば、同時チューニング、テスト、オンライン推論を実行できます。サブスライスは、これらのサブスライス間の電気的およびネットワークの分離を提供します。これにより、ワークロード間の障害やパフォーマンスの影響を分離できます。

動的スライス構成の主な特性

動的スライシング構成には次の特徴があります。

  • ノードプールの増分プロビジョニング: 動的スライスでは、ノードプールのフォールト トレラントなプロビジョニング モデルである増分プロビジョニングが使用されます。このモデルは、すべての TPU 容量を Ironwood(TPU7x)VM の 16 ノードグループで構成されるノードプールに変換します。これにより、一部のキューブが正常でない場合でも、プロビジョニングと利用を継続できます。
  • スライス コントローラ: GKE コントロール プレーン内で実行され、動的スライスを管理する Kubernetes カスタム リソース コントローラ。スライス コントローラは、動的スライスを表す Slice カスタム リソースのライフサイクル(作成、継続的なモニタリング、削除の処理)を管理します。また、インフラストラクチャの健全性データ(ホスト、ICI、OCS)をノードラベルに伝播して、正常な候補ノードの特定に役立てます。
  • スライス カスタム リソース: 論理スライスを表し、要求された TPU トポロジを形成するためにノード間リンク(ICI と OCS)の動的構成を開始します。このプロセスでは、複数のサブブロックを結合するか(スーパースライス)、単一のサブブロック内の小さなトポロジを分離します(サブスライス)。スライス カスタム リソースのステータス フィールドを調べることで、動的スライス形成の進行状況や健全性を確認できます。

要件

GKE で動的スライスを使用するには、次の要件を満たす必要があります。

  • 次のいずれかのバージョンの Rapid チャンネルで Standard クラスタを使用します。
    • 動的スーパー スライシング構成(トポロジが 4x4x4 以上)の場合は、バージョン 1.35.2-gke.1842000 以降を使用します。
    • 動的サブスライス構成(4x4x4 より小さいトポロジ)の場合は、バージョン 1.36.0-gke.3712000 以降を使用します。
  • Ironwood(TPU7x)バージョンを使用します。
  • ノードに Container-Optimized OS イメージを使用します。
  • 増分プロビジョニングを使用するには、All Capacity モードの予約を使用します。All Capacity モードは、TPU Cluster Director によって有効になる機能です。
  • 動的サブスライスでは、ノードに保留中のメンテナンス イベントがあることを確認します。保留中のメンテナンス イベントについてインスタンスをモニタリングする。終了時刻が 2026 年 9 月 18 日から 2026 年 9 月 30 日の間に設定されている保留中のメンテナンス イベントがノードにある場合は、サブスライスを使用する前に、これらのノードでホスト メンテナンス イベントを手動でトリガーする必要があります。

動的スライスにスケジューラを使用する

動的スライスを使用するには、次のいずれかのオプションを使用します。

次のステップ