このページでは、Google Kubernetes Engine(GKE)で Tensor Processing Unit(TPU)の使用量を計画し、TPU の構成ミス、非可用性エラー、割り当て不足による中断リスクを軽減する方法について説明します。
GKE で TPU を使用する前に、GKE での TPU の定義と用語を理解しておいてください。
TPU 構成を計画する
GKE クラスタで TPU を使用するには、構成を計画する必要があります。次の手順をおすすめします。
GKE のオペレーション モードを選択する: GKE Autopilot または Standard クラスタの TPU でワークロードを実行します。
ベスト プラクティス: フルマネージドの Kubernetes エクスペリエンスを実現するには、Autopilot クラスタを使用します。
TPU のバージョンを選択する: TPU のタイプによって、価格対性能比、トレーニング スループット、サービス レイテンシなどが異なります。TPU のタイプは、使用可能な CPU とメモリの容量に影響します。
TPU の可用性を確認する: TPU は特定の Google Cloudリージョンで利用できます。GKE ワークロードで TPU タイプを使用するには、そのタイプでサポートされているリージョンにクラスタが存在する必要があります。
TPU トポロジを選択する: TPU スライス内の TPU の物理的な配置。モデルの並列処理要件に一致するトポロジを選択してください。
このページの参照表を使用して、ノードプールが単一ホスト TPU スライスノードか、マルチホスト TPU スライスノードかを特定します。
GKE のオペレーション モードを選択する
TPU は、クラスタで使用可能な GKE オペレーション モードで使用できます。
- Standard モード: 個々のノードの構成を含め、基盤となるインフラストラクチャをユーザーが管理します。
- Autopilot モード(推奨): 基盤となるインフラストラクチャ(ノード構成、自動スケーリング、自動アップグレード、ベースライン セキュリティ構成、ベースライン ネットワーキング構成など)は GKE によって管理されます。Autopilot では、TPU のタイプとトポロジを選択して Kubernetes マニフェストで指定します。GKE は、TPU を使用してノードをプロビジョニングし、ワークロードのスケジューリングを管理します。
ワークロードに最適な GKE のオペレーション モードを選択するには、GKE のオペレーション モードを選択するをご覧ください。
TPU の使用オプションを選択する
GKE で TPU 構成を計画するときは、ワークロードのニーズに合った使用量オプションを選択します。選択した使用量オプションは、使用可能な TPU バージョンと、構成が必要な割り当てに影響します。GKE には、ワークロードのパフォーマンスを維持しながら、リソースの割り当てと費用を最適化するために、次の TPU 使用量オプションが用意されています。
- Flex Start: 最大 7 日間 Flex Start VM をプロビジョニングします。GKE は、可用性に基づいてベスト エフォートでハードウェアを自動的に割り当てます。詳細については、Flex Start プロビジョニング モードでの GPU、TPU、H4D のプロビジョニングについてをご覧ください。
- Spot VM: Spot VM をプロビジョニングすると、大幅な割引が適用されます。ただし、Spot VM はいつでもプリエンプトされる可能性があります(30 秒前に警告が表示されます)。詳細については、Spot VM をご覧ください。
- 最大 90 日間の将来の予約(カレンダー モード): 指定した期間に最大 90 日間 TPU リソースをプロビジョニングします。詳細については、カレンダー モードの将来の予約で TPU をリクエストするをご覧ください。
- TPU 予約: 1 年以上の将来の予約をリクエストします。
- オンデマンド: 事前に容量を調整することなく TPU を使用します。リソースをリクエストする前に、特定のタイプと数量の TPU VM に対して十分なオンデマンド割り当てが必要です。オンデマンドは最も柔軟な使用オプションですが、リクエストを満たすのに十分なオンデマンド リソースが利用できる保証はありません。
別のオプションを指定しない場合、オンデマンドは GKE の TPU のデフォルトの使用モデルです。ワークロードの要件を満たす使用オプションを選択するには、GKE での AI/ML ワークロードのアクセラレータ使用オプションについてをご覧ください。
TPU のバージョンを選択する
TPU スライスの VM の技術特性は次のとおりです。
標準
| TPU バージョン | マシンタイプ | cloud.google.com/gke-tpu-accelerator |
vCPU 数 | VM あたりのチップ数 | NUMA ノードの数 | プリエンプトされる可能性 |
|---|---|---|---|---|---|---|
| Ironwood(TPU7x) | tpu7x-standard-4t |
tpu7x |
224 | 4 | 2 | なし |
| TPU Trillium(v6e) | ct6e-standard-1t |
tpu-v6e-slice |
44 | 1 | 1 | 高い |
| TPU Trillium(v6e) | ct6e-standard-4t |
tpu-v6e-slice |
180 | 4 | 1 | 中 |
| TPU Trillium(v6e) | ct6e-standard-8t |
tpu-v6e-slice |
180 | 8 | 2 | 低 |
| TPU v5p |
ct5p-hightpu-4t |
tpu-v5p-slice |
208 | 4 | 2 | なし |
| TPU v5e |
ct5lp-hightpu-1t |
tpu-v5-lite-podslice |
24 | 1 | 1 | 高 |
| TPU v5e |
ct5lp-hightpu-4t |
tpu-v5-lite-podslice |
112 | 4 | 1 | 中 |
| TPU v5e |
ct5lp-hightpu-8t |
tpu-v5-lite-podslice |
224 | 8 | 1 | 低 |
| TPU v4 |
ct4p-hightpu-4t |
tpu-v4-podslice |
240 | 4 | 2 | なし |
| TPU v3(単一ホストのみ) |
ct3-hightpu-4t |
tpu-v3-device |
96 | 4 | 2 | なし |
| TPU v3 |
ct3p-hightpu-4t |
tpu-v3-slice |
48 | 4 | 1 | なし |
マルチホスト ct5lp- マシンタイプは、大規模なモデルの提供やトレーニングに適しています。マルチホスト ct5lp- マシンは高速リンクで相互接続されています。
Autopilot
| TPU バージョン | cloud.google.com/gke-tpu-accelerator |
vCPU 数 | NUMA ノードの数 | TPU スライスノード内の TPU チップの最大数 |
|---|---|---|---|---|
| Ironwood(TPU7x) | tpu7x |
224 | 2 | 2048 |
| TPU Trillium(v6e) | tpu-v6e-slice |
44~180 | 1~2 | 256 |
| TPU v5p |
tpu-v5p-slice |
208 | 2 | 6,144 |
| TPU v5e |
tpu-v5-lite-podslice |
24~224 | 1 | 256 |
| TPU v4 |
tpu-v4-podslice |
240 | 2 | 4,096 |
| TPU v3(単一ホストのみ) |
tpu-v3-device |
96 | 2 | 8 |
| TPU v3 |
tpu-v3-slice |
48 | 1 | 256 |
使用する TPU 構成を決定するには、Cloud TPU の料金に関するドキュメントで TPU の仕様と料金を確認してください。
制限事項
使用する TPU を選択する際に、次の制限事項を考慮してください。
Ironwood(TPU7x)には次の制限があります。
- バージョン 1.34.0-gke.2201000 以降の Standard クラスタ。
- バージョン 1.34.1-gke.3084001 以降の Autopilot クラスタ。
- Google Cloud Hyperdisk Balanced と Hyperdisk ML のみがサポートされています。
TPU Trillium は、次のバージョンで使用できます。
- バージョン 1.31.1-gke.1846000 以降の Standard クラスタ。
- バージョン 1.31.2-gke.1115000 以降の Autopilot クラスタ。
TPU Trillium は、
ct6e-standard-8tで2に設定された SMT の構成をサポートしていません。TPU v5p 自動スケーリングは、バージョン 1.29.2-gke.1035000 または 1.28.7-gke.1020000 以降のコントロール プレーンを実行する GKE クラスタでサポートされています。
容量予約では、特定の予約を使用します。
1 つの TPU VM で最大 256 個の Pod を実行できます。
GKE の費用割り当てと使用状況の測定に、TPU の使用量や費用に関するデータは含まれません。
クラスタ オートスケーラーは、10 時間以上待機ステータスになっている TPU ノードプールのスケールアップ オペレーションをキャンセルします。クラスタ オートスケーラーは、リソースが使用可能になると、このようなスケールアップ オペレーションを再試行します。この動作のため、予約を使用しない場合に、TPU の取得可能性が低下する可能性があります。
Ubuntu ノードはサポートされていません。
TPU ノード アーキテクチャは非推奨になりました。GKE で TPU ノード アーキテクチャを引き続きサポートしている TPU バージョンは TPU v3 のみです。
GKE で TPU の可用性を検証する
TPU は特定の Google Cloud リージョンで利用できます。GKE クラスタで TPU タイプを使用するには、そのタイプでサポートされているリージョンにクラスタが存在する必要があります。
Standard
| TPU バージョン | 次で始まるマシンタイプ | 最小 GKE バージョン | 可用性 | ゾーン |
|---|---|---|---|---|
| TPU Ironwood(TPU7x) |
tpu7x-standard-4t
|
1.34.0-gke.2201000 | GA |
|
| TPU Trillium(v6e) |
ct6e-
|
1.31.2-gke.1115000 | GA |
|
| TPU v5e |
ct5lp-
|
1.27.2-gke.2100 | GA |
|
| TPU v5p |
ct5p-
|
1.28.3-gke.1024000 | GA |
|
| TPU v4 |
ct4p-
|
1.26.1-gke.1500 | GA |
|
| TPU v3 |
ct3p-
|
1.31.1-gke.1146000 | GA |
|
| TPU v3 |
ct3-
|
1.31.0-gke.1500 | GA |
|
Autopilot
| TPU バージョン |
cloud.google.com/gke-tpu-accelerator
|
最小 GKE バージョン | 可用性 | ゾーン |
|---|---|---|---|---|
| TPU Ironwood(TPU7x) |
tpu7x
|
1.34.1-gke.3084001 | GA |
|
| TPU Trillium(v6e) |
tpu-v6e-slice
|
1.31.2-gke.1384000 | GA |
|
| TPU v5e |
tpu-v5-lite-podslice
|
1.27.2-gke.2100 | GA |
|
| TPU v5p |
tpu-v5p-slice
|
1.28.3-gke.1024000 | GA |
|
| TPU v4 |
tpu-v4-podslice
|
1.26.1-gke.1500 | GA |
|
| TPU v3 |
tpu-v3-slice
|
1.31.1-gke.1146000 | GA |
|
| TPU v3 |
tpu-v3-device
|
1.31.0-gke.1500 | GA |
|
トポロジを選択する
TPU バージョンを選択したら、サポートされているトポロジを選択します。トポロジは、TPU スライス内の TPU チップの物理的な配置を定義します。トポロジが大きいほど、TPU チップの数が増えます。これにより、より多くの並列処理が可能になり、大規模なモデルをより高速に、またはより大きなデータセットでトレーニングできます。
GKE は VM プロビジョニングを自動的に管理しますが、単一ホスト ノードプールとマルチホスト ノードプールの違いを理解すると、トポロジ内のチップの数が基盤となる VM にどのように関連しているかを明確にできます。
- 単一ホスト: すべてのチップが単一の VM に存在する TPU スライス。通常、チップの数は 4 枚以下です。
- マルチホスト: チップが複数の VM に分散されている TPU スライス。これは、ほとんどの大規模な TPU ワークロードで一般的です。
TPU バージョンの単一 VM で使用可能なチップ数を超えるチップ数のトポロジをリクエストすると、GKE は自動的にマルチホスト環境としてプロビジョニングします。このシナリオでは、GKE はチップを分散するために複数のノードを起動します。
たとえば、ct6e-standard-4t マシンタイプと 4x4 トポロジについて考えてみましょう。
- マシンタイプ
ct6e-standard-4tには、VM ごとに 4 個のチップがあります。 - トポロジ
4x4には、合計 16 個のチップ(4 * 4)が必要です。 - 16(トポロジ チップ数)は 4(VM あたりのチップ数)より大きいため、この構成ではマルチホスト TPU スライス ノードプールが作成されます。GKE は 16 個のチップを 4 つの VM に分散します。
下の表を使用して、ユースケースに応じた TPU マシンタイプとトポロジを選択してください。
Standard
TPU のタイプとトポロジを選択したら、それらをワークロード マニフェストで指定します。手順については、GKE Standard に TPU ワークロードをデプロイするをご覧ください。
| TPU バージョン | マシンタイプ | ノードプールのタイプ | 技術仕様 |
|---|---|---|---|
| Ironwood(TPU7x) | tpu7x-standard-4t |
単一ホスト |
|
| Ironwood(TPU7x) | tpu7x-standard-4t |
マルチホスト |
|
| Ironwood(TPU7x) | tpu7x-standard-4t |
マルチホスト |
|
| Ironwood(TPU7x) | tpu7x-standard-4t |
マルチホスト |
|
| Ironwood(TPU7x) | tpu7x-standard-4t |
マルチホスト |
|
| Ironwood(TPU7x) | tpu7x-standard-4t |
マルチホスト |
|
| Ironwood(TPU7x) | tpu7x-standard-4t |
マルチホスト |
|
| Ironwood(TPU7x) | tpu7x-standard-4t |
マルチホスト |
|
| Ironwood(TPU7x) | tpu7x-standard-4t |
マルチホスト |
|
| Ironwood(TPU7x) | tpu7x-standard-4t |
マルチホスト |
|
| TPU Trillium(v6e) | ct6e-standard-1t |
単一ホスト |
|
| TPU Trillium(v6e) | ct6e-standard-8t |
単一ホスト |
|
| TPU Trillium(v6e) | ct6e-standard-4t |
単一ホスト |
|
| TPU Trillium(v6e) | ct6e-standard-4t |
マルチホスト |
|
| TPU Trillium(v6e) | ct6e-standard-4t |
マルチホスト |
|
| TPU Trillium(v6e) | ct6e-standard-4t |
マルチホスト |
|
| TPU Trillium(v6e) | ct6e-standard-4t |
マルチホスト |
|
| TPU Trillium(v6e) | ct6e-standard-4t |
マルチホスト |
|
| TPU Trillium(v6e) | ct6e-standard-4t |
マルチホスト |
|
| TPU v5p | ct5p-hightpu-4t |
単一ホスト |
|
| TPU v5p | ct5p-hightpu-4t |
マルチホスト |
|
| TPU v5p | ct5p-hightpu-4t |
マルチホスト |
|
| TPU v5p | ct5p-hightpu-4t |
マルチホスト |
|
| TPU v5p | ct5p-hightpu-4t |
マルチホスト |
|
| TPU v5e | ct5lp-hightpu-1t |
単一ホスト |
|
| TPU v5e | ct5lp-hightpu-4t |
単一ホスト |
|
| TPU v5e | ct5lp-hightpu-8t |
単一ホスト |
|
| TPU v5e | ct5lp-hightpu-4t |
マルチホスト |
|
| TPU v5e | ct5lp-hightpu-4t |
マルチホスト |
|
| TPU v5e | ct5lp-hightpu-4t |
マルチホスト |
|
| TPU v5e | ct5lp-hightpu-4t |
マルチホスト |
|
| TPU v5e | ct5lp-hightpu-4t |
マルチホスト |
|
| TPU v4 | ct4p-hightpu-4t |
マルチホスト |
|
| TPU v4 | ct4p-hightpu-4t |
マルチホスト |
|
| TPU v4 | ct4p-hightpu-4t |
マルチホスト |
|
| TPU v4 | ct4p-hightpu-4t |
マルチホスト |
|
| TPU v3 | ct3-hightpu-4t |
単一ホスト |
|
| TPU v3 | ct3p-hightpu-4t |
マルチホスト |
|
| TPU v3 | ct3p-hightpu-4t |
マルチホスト |
|
| TPU v3 | ct3p-hightpu-4t |
マルチホスト |
|
| TPU v3 | ct3p-hightpu-4t |
マルチホスト |
|
| TPU v3 | ct3p-hightpu-4t |
マルチホスト |
|
| TPU v3 | ct3p-hightpu-4t |
マルチホスト |
|
| TPU v3 | ct3p-hightpu-4t |
マルチホスト |
|
-
トポロジの積を 4 で割った値から計算されます。↩
Autopilot
TPU のタイプとトポロジを選択したら、それらをワークロード マニフェストで指定します。手順については、GKE Autopilot に TPU ワークロードをデプロイするをご覧ください。
| TPU バージョン | マシンタイプ | ノードプールのタイプ | 技術仕様 |
|---|---|---|---|
| Ironwood(TPU7x) | tpu7x |
単一ホスト |
|
| Ironwood(TPU7x) | tpu7x |
マルチホスト |
|
| Ironwood(TPU7x) | tpu7x |
マルチホスト |
|
| Ironwood(TPU7x) | tpu7x |
マルチホスト |
|
| Ironwood(TPU7x) | tpu7x |
マルチホスト |
|
| Ironwood(TPU7x) | tpu7x |
マルチホスト |
|
| Ironwood(TPU7x) | tpu7x |
マルチホスト |
|
| TPU Trillium(v6e) | tpu-v6e-slice |
単一ホスト |
|
| TPU Trillium(v6e) | tpu-v6e-slice |
単一ホスト |
|
| TPU Trillium(v6e) | tpu-v6e-slice |
単一ホスト |
|
| TPU Trillium(v6e) | tpu-v6e-slice |
マルチホスト |
|
| TPU Trillium(v6e) | tpu-v6e-slice |
マルチホスト |
|
| TPU Trillium(v6e) | tpu-v6e-slice |
マルチホスト |
|
| TPU Trillium(v6e) | tpu-v6e-slice |
マルチホスト |
|
| TPU Trillium(v6e) | tpu-v6e-slice |
マルチホスト |
|
| TPU v5p | tpu-v5p-slice |
単一ホスト |
|
| TPU v5p | tpu-v5p-slice |
マルチホスト |
|
| TPU v5p | tpu-v5p-slice |
マルチホスト |
|
| TPU v5p | tpu-v5p-slice |
マルチホスト |
|
| TPU v5p | tpu-v5p-slice |
マルチホスト |
|
| TPU v5p | tpu-v5p-slice |
マルチホスト |
|
| TPU v5e | tpu-v5-lite-podslice |
単一ホスト |
|
| TPU v5e | tpu-v5-lite-podslice |
単一ホスト |
|
| TPU v5e | tpu-v5-lite-podslice |
単一ホスト |
|
| TPU v5e | tpu-v5-lite-podslice |
マルチホスト |
|
| TPU v5e | tpu-v5-lite-podslice |
マルチホスト |
|
| TPU v5e | tpu-v5-lite-podslice |
マルチホスト |
|
| TPU v5e | tpu-v5-lite-podslice |
マルチホスト |
|
| TPU v5e | tpu-v5-lite-podslice |
マルチホスト |
|
| TPU v5e | tpu-v5-lite-podslice |
マルチホスト |
|
| TPU v4 | tpu-v4-podslice |
単一ホスト |
|
| TPU v4 | tpu-v4-podslice |
マルチホスト |
|
| TPU v4 | tpu-v4-podslice |
マルチホスト |
|
| TPU v4 | tpu-v4-podslice |
マルチホスト |
|
| TPU v4 | tpu-v4-podslice |
マルチホスト |
|
| TPU v4 | tpu-v4-podslice |
マルチホスト |
|
| TPU v3 | tpu-v3-slice |
マルチホスト |
|
| TPU v3 | tpu-v3-slice |
マルチホスト |
|
| TPU v3 | tpu-v3-slice |
マルチホスト |
|
| TPU v3 | tpu-v3-slice |
マルチホスト |
|
| TPU v3 | tpu-v3-slice |
マルチホスト |
|
| TPU v3 | tpu-v3-device |
単一ホスト |
|
-
トポロジの積を 4 で割った値から計算されます。↩
64 個を超えるチップのカスタム トポロジがサポートされています。次の条件が適用されます。
- 64 個を超えるチップの場合、
{A}、{B}、{C}は 4 の倍数にする必要があります。 - 最大のトポロジは
16x16x24です。 - 値は
{A}≤{B}≤{C}にする必要があります(例:8x12x16)。
- 64 個を超えるチップの場合、
-
カスタム トポロジはサポートされていません。