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

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

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

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

動的スライスの構成には、次の特性があります。

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

要件

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 日までの保留中のメンテナンス イベントがある場合は、サブスライシングを使用する前に、それらのノードでホスト メンテナンス イベントを手動でトリガーする必要があります。

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

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

次のステップ