アクセラレータ最適化マシン ファミリーの TPU マシン

このドキュメントでは、Tensor Processing Unit(TPU)を搭載したアクセラレータ最適化マシン ファミリーの Compute Engine インスタンスについて説明します。TPU は、Google が独自に開発した特定用途向け集積回路(ASIC)であり、AI と ML のワークロードに特化して最適化されています。

Compute Engine は、次の TPU バージョンをサポートしています。

  • TPU7x
  • TPU v6e
  • TPU v5p

各バージョンのマシンタイプには、特定のトポロジと、アタッチされた TPU チップの数があります。

TPU アーキテクチャの基礎

TPU アーキテクチャの基本を理解すると、ワークロードに適した TPU バージョンとマシンタイプを選択できます。

  • TPU チップ: TPU チップは、Google が機械学習(# Cloud では「ML」とする)用に設計した専用のアクセラレータです。各 TPU チップには、大規模な行列演算を処理するための 1 つ以上の TensorCore が含まれています。各 TensorCore は、1 つ以上のマトリックス乗算ユニット(MXU)から構成されます。MXU は、シストリック アレイ アーキテクチャを使用して、定数メモリアクセスなしで 1 サイクルあたり数千回の乗累算演算を実行します。TPU チップは主に高速行列処理に使用されますが、一般的な計算と制御フロー オペレーション用のベクトル ユニットとスカラー ユニットも含まれています。

  • TPU Pod: TPU Pod は、専用のネットワークでグループ化された一連の連続した TPU です。TPU Pod 内の TPU チップの数は、TPU のバージョンによって異なります。

  • TPU インスタンス: TPU ホストで実行され、基盤となる TPU ハードウェアに直接アクセスできる Linux コンピューティング インスタンス。高パフォーマンス ライブラリ、SSH 接続、ランタイム デバッグログにアクセスできます。

  • TPU スライス: 相互接続された TPU チップの論理グループ。1 つ以上の TPU インスタンスを介してアクセスされます。スライスには、次のいずれかのスコープがあります。

    • 単一ホストスライス: 1 つのホストマシンで構成されるスライス。通常、これは 1 つの TPU インスタンスにマッピングされます。
    • マルチホスト スライス: 高速チップ間相互接続(ICI)を使用して相互接続された複数の TPU インスタンスで構成されるスライス。
  • TPU キューブ: 相互接続された TPU チップの 4x4x4 トポロジ。これは 3D トポロジにのみ適用されます。

  • SparseCore: SparseCore は、スパース オペレーションを使用するモデルを高速化するデータフロー プロセッサです。主なユースケースは、エンベディングに大きく依存するレコメンデーション モデルの高速化です。

  • TPU のバージョン: TPU チップのアーキテクチャは、厳密にいえば使用する TPU のバージョンによって異なります。また、TPU バージョンはそれぞれさまざまなスライスサイズと構成をサポートしています。

TPU の仕組みについては、Cloud TPU ドキュメントの TPU アーキテクチャをご覧ください。

ワークロード タイプ別の推奨 TPU バージョン

適切な TPU モデルの選択は、ワークロードの計算特性、メモリ要件、スケーラビリティのニーズによって異なります。次のいずれかのタブを選択して、推奨事項を表示します。

AI / ML トレーニング

  • 大規模モデルの事前トレーニング: 大規模なモデルをゼロからトレーニングします。これらのワークロードは、コンピューティングと通信に制限されます。

    • 必要な TPU 機能: 高いピーク FLOPS、低精度サポート、高い相互接続帯域幅。
    • 推奨される TPU バージョン:
      • TPU7x。このバージョンは、高い FP8 パフォーマンスを提供します。
      • TPU v5p。このバージョンは、大規模なクラスタ構成をサポートしています。
  • モデルのファインチューニングと抽出: パラメータ効率の高い方法を使用して既存のモデルを適応させるか、より小さなモデル バリアントをトレーニングします。

    • 必要な TPU 機能: 中程度のコンピューティングと十分なメモリ容量。
    • 推奨される TPU バージョン:
      • TPU v6e。このバージョンは、標準のトレーニング タスクで費用対効果に優れています。
      • TPU7x。このバージョンは、大規模なファインチューニングで高いパフォーマンスを発揮します。

AI / ML 推論

  • モデルのオンライン サービング: 低レイテンシが重要なリアルタイム インタラクション用にモデルをデプロイします。これらのワークロードは、トークンの順次生成中にメモリ帯域幅に制限されます。

    • 必要な TPU 機能: 高い HBM 帯域幅と大きなオンチップ SRAM。データ取得のレイテンシを最小限に抑えるため。
    • 推奨される TPU バージョン:
      • TPU v6e。このバージョンは、大規模な費用対効果の高いサービング用に最適化されています。
      • TPU7x。このバージョンでは、高い HBM 帯域幅と大容量の SRAM が提供され、トークン生成が高速化されます。
  • バッチ推論の実行: 高スループットを主な目標として、大規模なデータセットをオフラインで処理します。これらのワークロードは、プロンプトのプリフィル フェーズ中にコンピューティング バウンドになります。

    • 必要な TPU 機能: 1 ドルあたりのスループットを最大化する高いコンピューティング密度。
    • 推奨される TPU バージョン:
      • TPU v6e。このバージョンは、高スループットのバッチ処理に費用対効果に優れています。
      • TPU7x。このバージョンは、大規模なバッチを迅速に処理するための高いコンピューティング密度を提供します。

Recommender システム

  • 大規模なエンベディングの処理: 大規模なエンベディング テーブルを使用するレコメンデーション モデルのトレーニングとサービング。これらのワークロードは、容量と通信に制限があります。
    • 必要な TPU 機能: スパース オペレーションを並列で処理する専用の SparseCore ハードウェア、大容量の HBM、ホストメモリへのオフロードのサポート。
    • 推奨される TPU バージョン:
      • TPU7x。このバージョンには、チップあたり 4 つの SparseCore が含まれており、最大の HBM 容量を提供します。
      • TPU v6e。このバージョンには、費用対効果の高いサービングのために、チップあたり 2 つの SparseCore が含まれています。
      • TPU v5p。このバージョンには、大規模なトレーニング用にチップあたり 4 つの SparseCore が含まれています。

強化学習

  • 強化学習ループの実行: サンプルの生成とポリシーの重みの更新のタイトなループを必要とするハイブリッド ワークロードを管理します。

    • 必要な TPU 機能: チップ間の高速な重みとアクティベーションの転送のための低レイテンシ ICI、高帯域幅のホスト接続。
    • 推奨される TPU バージョン:

      これらの TPU バージョンは、高速 3D トーラス相互接続を使用します。

使用オプション

ワークロードのパフォーマンスのバランスを取りながら、リソースの使用率と費用を最適化するために、Compute Engine は次の TPU 使用オプションをサポートしています。

  • オンデマンド: 事前に容量を調整することなく TPU を使用します。リソースをリクエストする前に、特定のタイプと数量の TPU インスタンスに対して十分なオンデマンド割り当てが必要です。オンデマンドは最も柔軟な使用オプションですが、リクエストを満たすのに十分なオンデマンド リソースが利用できる保証はありません。

  • Spot: Spot VM をプロビジョニングすると、大幅な割引が適用されます。ただし、Spot VM はいつでもプリエンプトされる可能性があります(30 秒前に警告が表示されます)。詳細については、Spot VM についてをご覧ください。

  • Flex Start: 最大 7 日間 Flex Start VM をプロビジョニングします。Compute Engine は、可用性に基づいてベスト エフォートでハードウェアを自動的に割り当てます。詳細については、Flex-start VM についてをご覧ください。

  • 容量ブロックの将来の予約: 1 年以上の将来の予約をリクエストします。詳細については、Cloud TPU ドキュメントの 1 年以上の将来の予約をリクエストするをご覧ください。

  • カレンダー モードでの将来の予約: 指定した期間に最大 90 日間 TPU リソースをプロビジョニングします。詳細については、カレンダー モードでの将来の予約リクエストについてをご覧ください。

別のオプションを指定しない場合、TPU のデフォルトの使用量モデルはオンデマンドです。

使用オプションを有効にする基盤となるプロビジョニング モデルについては、VM プロビジョニング モデルについてをご覧ください。

TPU バージョン別の使用オプションの可用性

次の表に、各 TPU バージョンで利用可能な使用オプションを示します。

TPU バージョン オンデマンド Spot Flex Start オンデマンド予約 将来の予約 カレンダー モードの将来の予約1 容量ブロックの将来の予約
2 2 2 2

1 All Capacity モードを使用している場合、カレンダー モードで将来の予約リクエストを作成することはできません。

2 TPU7x の Spot、Flex Start、カレンダー モードの将来の予約、容量ブロックの将来の予約は、許可リストによって制限されています。アクセスをリクエストするには、アカウント チームまたはセールスチームにお問い合わせください。

All Capacity モード

デフォルトでは、TPU 予約には自動障害復旧が含まれています。Google Cloud は、障害のある TPU マシンを予約容量から正常なマシンに自動的に置き換えることで、このプロセスを管理し、TPU スライスの再起動にリソースを使用できるようにします。

また、TPU v6e と TPU7x の場合は、All Capacity モードで TPU 容量をリクエストすることもできます。このモードでは、予約済み容量全体にアクセスでき、トポロジを完全に把握できます。このモードでは、特定のブロックまたはサブブロックをターゲットにして、トポロジを認識した正確なワークロードの配置を行うこともできます。ただし、ハードウェア障害とメンテナンスの管理はお客様の責任となります。

これらのモードの詳細については、Cloud TPU ドキュメントの TPU 容量モードをご覧ください。

TPU バージョンの比較

異なる TPU バージョンの特性を比較します。[比較するプロパティを選択する] フィールドで特定のプロパティを選択すると、以下の表ですべての TPU バージョンのプロパティを比較できます。

アクセラレータ最適化 アクセラレータ最適化 アクセラレータ最適化
VM VM VM
Intel Emerald Rapids AMD EPYC Genoa Intel Sapphire Rapids
x86 x86 x86
224 44~180 208
スレッド スレッド スレッド
960 GB 176 ~ 1,440 GB 448 GB
NUMA NUMA NUMA
———
———
———
———
— —
NVMe NVMe NVMe
—
———
———
———
———
———
——
———
———
gVNIC gVNIC gVNIC
400 Gbps 50~400 Gbps 200 Gbps
4 8 4
———
割引 割引 割引
— 割引— 割引— 割引

TPU アーキテクチャの仕様

次の表に、各 TPU バージョンの主な仕様を示します。

仕様 TPU7x TPU v6e TPU v5p
Pod あたりのチップ数 9,216 256 8960
チップあたりのピーク コンピューティング(BF16)(TFLOP) 2,307 918 459
チップあたりのピーク コンピューティング(FP8)(TFLOP) 4,614 918 459
チップあたりの HBM 容量(GiB) 192 32 95
チップあたりの HBM 帯域幅(GBps) 7,380 1638 2765
vCPU 数(4 チップ VM) 224 180 208
RAM(GiB)(4 チップ VM) 960 720 448
チップあたりの TensorCore の数 2 1 2
チップあたりの SparseCore の数 4 2 4
チップあたりの双方向チップ間相互接続(ICI)帯域幅(GBps) 1200 800 1200
チップあたりのデータセンター ネットワーク(DCN)帯域幅(Gbps) 100 100 50

TPU マシンタイプ

以降のセクションでは、各 TPU バージョンで使用可能なマシンタイプについて説明します。

TPU7x(Ironwood)

各 TPU7x 仮想マシン(VM)には 4 つの TPU チップが含まれています。すべての TPU7x スライスは、フルホストの 4 チップ VM を使用します。

各 TPU7x チップには、2 つの TensorCore と 4 つの SparseCore が含まれています。

Ironwood プログラミング モデルを使用すると、前世代で使用されていた単一の論理コア アーキテクチャではなく、2 つの TPU デバイスにアクセスできます。詳細については、Cloud TPU ドキュメントのデュアル チップレット アーキテクチャをご覧ください。

次の表に、TPU7x マシンタイプの仕様を示します。

マシンタイプ vCPU 数 インスタンスのメモリ(GiB) 物理 NIC の数 最大ネットワーク帯域幅(Gbps) VM あたりの TPU チップの数 NUMA ノードの数 TPU メモリの合計(GiB HBM)
tpu7x-standard-4t 224 960 2 400 4 2 768

TPU7x アーキテクチャの詳細については、Cloud TPU ドキュメントの TPU7x(Ironwood)をご覧ください。

TPU v6e(Trillium)

各 TPU v6e VM には、1、4、8 個の TPU チップを含めることができます。4 チップ以下のスライスには、同じ不均一メモリアクセス(NUMA)ノードがあります。

TPU v6e スライスは、次のマシンタイプを除き、それぞれ 4 つの TPU チップを持つハーフホスト VM を使用します。

  • ct6e-standard-1t には、ワークロードをテストするための単一の TPU チップが含まれています。
  • ct6e-standard-8t は、推論ワークロード用に最適化されたフルホスト VM です。このマシンタイプを使用すると、1 つの VM に接続されている 8 個の TPU チップをすべて 1 つのサービング ワークロードで使用できます。

次の表に、TPU v6e マシンタイプの仕様を示します。

マシンタイプ vCPU 数 インスタンスのメモリ(GiB) 物理 NIC の数 最大ネットワーク帯域幅(Gbps) VM あたりの TPU チップの数 NUMA ノードの数 TPU メモリの合計(GiB HBM)
ct6e-standard-1t 44 176 1/4 50 1 1 32
ct6e-standard-4t 180 720 2 400 4 1 128
ct6e-standard-8t 360 1440 1 200 8 2 256

TPU v6e アーキテクチャの詳細については、Cloud TPU ドキュメントの TPU v6e をご覧ください。

TPU v5p

TPU v5p Pod には、再構成可能な高速リンクで相互接続された 8,960 個の TPU チップが含まれています。TPU v5p の柔軟なネットワーキングでは、さまざまな方法で同じサイズのスライスに TPU チップを接続し、最大 6,144 個の TPU チップの単一スライスでモデルをトレーニングできます。

次の表に、TPU v5p マシンタイプの仕様を示します。

マシンタイプ vCPU 数 インスタンスのメモリ(GiB) 物理 NIC の数 最大ネットワーク帯域幅(Gbps) VM あたりの TPU チップの数 NUMA ノードの数 TPU メモリの合計(GiB HBM)
ct5p-hightpu-4t 208 448 1 200 4 2 380

TPU v5p アーキテクチャの詳細については、Cloud TPU ドキュメントの TPU v5p をご覧ください。

TPU トポロジ

トポロジでは、TPU スライス内の TPU の物理的な配置を定義します。TPU のバージョンに応じて、トポロジは 2 次元または 3 次元になります。トポロジ内の各サイズの積を計算することで、スライス内の TPU チップの数を特定できます。次に例を示します。

  • 2x2x2 トポロジの tpu7x-standard-4t マシンタイプは、8 チップのマルチホスト TPU7x スライスです。

次の表に、各 TPU バージョンで使用可能なトポロジを示します。

TPU バージョン マシンタイプ 範囲 技術仕様
TPU7x(Ironwood) tpu7x-standard-4t 単一ホスト
  • トポロジ: 2 x 2 x 1
  • トポロジの TPU チップ数: 4
  • ホスト数: 1
  • VM 数: 1
  • キューブ数: 1/16
TPU7x(Ironwood) tpu7x-standard-4t マルチホスト
  • トポロジ: 2 x 2 x 2
  • トポロジの TPU チップ数: 8
  • ホスト数: 2
  • VM 数: 2
  • キューブ数: 1/8
TPU7x(Ironwood) tpu7x-standard-4t マルチホスト
  • トポロジ: 2 x 2 x 4
  • トポロジの TPU チップ数: 16
  • ホスト数: 4
  • VM 数: 4
  • キューブ数: 1/4
TPU7x(Ironwood) tpu7x-standard-4t マルチホスト
  • トポロジ: 2 x 4 x 4
  • トポロジの TPU チップ数: 32
  • ホスト数: 8
  • VM 数: 8
  • キューブ数: 1/2
TPU7x(Ironwood) tpu7x-standard-4t マルチホスト
  • トポロジ: 4 x 4 x 4
  • トポロジの TPU チップ数: 64
  • ホスト数: 16
  • VM 数: 16
  • キューブ数: 1
TPU7x(Ironwood) tpu7x-standard-4t マルチホスト
  • トポロジ: 4 x 4 x 8
  • トポロジの TPU チップ数: 128
  • ホスト数: 32
  • VM 数: 32
  • キューブ数: 2
TPU7x(Ironwood) tpu7x-standard-4t マルチホスト
  • トポロジ: 4 x 8 x 8
  • トポロジの TPU チップ数: 256
  • ホスト数: 64
  • VM 数: 64
  • キューブ数: 4
TPU7x(Ironwood) tpu7x-standard-4t マルチホスト
  • トポロジ: 8 x 8 x 8
  • トポロジの TPU チップ数: 512
  • ホスト数: 128
  • VM 数: 128
  • キューブ数: 8
TPU7x(Ironwood) tpu7x-standard-4t マルチホスト
  • トポロジ: 8 x 8 x 16
  • トポロジの TPU チップ数: 1,024
  • ホスト数: 256
  • VM 数: 256
  • キューブ数: 16
TPU7x(Ironwood) tpu7x-standard-4t マルチホスト
  • トポロジ: {A} x {B} x {C}(A、B、C は 2 の倍数)
  • トポロジの TPU チップ数: A x B x C
  • ホスト数: (A x B x C) / 4
  • VM 数: (A x B x C / 4)
  • キューブ数: (A x B x C / 64)
TPU v6e(Trillium) ct6e-standard-1t 単一ホスト
  • トポロジ: 1 x 1
  • トポロジの TPU チップ数: 1
  • VM 数: 1
TPU v6e(Trillium) ct6e-standard-8t 単一ホスト
  • トポロジ: 2 x 4
  • トポロジの TPU チップ数: 8
  • VM 数: 1
TPU v6e(Trillium) ct6e-standard-4t 単一ホスト
  • トポロジ: 2 x 2
  • トポロジの TPU チップ数: 4
  • VM 数: 1
TPU v6e(Trillium) ct6e-standard-4t マルチホスト
  • トポロジ: 2 x 4
  • トポロジの TPU チップ数: 8
  • VM 数: 2
TPU v6e(Trillium) ct6e-standard-4t マルチホスト
  • トポロジ: 4 x 4
  • トポロジの TPU チップ数: 16
  • VM 数: 4
TPU v6e(Trillium) ct6e-standard-4t マルチホスト
  • トポロジ: 4 x 8
  • トポロジの TPU チップ数: 32
  • VM 数: 8
TPU v6e(Trillium) ct6e-standard-4t マルチホスト
  • トポロジ: 8 x 8
  • トポロジの TPU チップ数: 64
  • VM 数: 16
TPU v6e(Trillium) ct6e-standard-4t マルチホスト
  • トポロジ: 8 x 16
  • トポロジの TPU チップ数: 128
  • VM 数: 32
TPU v6e(Trillium) ct6e-standard-4t マルチホスト
  • トポロジ: 16 x 16
  • トポロジの TPU チップ数: 256
  • VM 数: 64
TPU v5p ct5p-hightpu-4t 単一ホスト
  • トポロジ: 2 x 2 x 1
  • トポロジの TPU チップ数: 4
  • VM 数: 1
TPU v5p ct5p-hightpu-4t マルチホスト
  • トポロジ: 2 x 2 x 2
  • トポロジの TPU チップ数: 8
  • VM 数: 2
TPU v5p ct5p-hightpu-4t マルチホスト
  • トポロジ: 2 x 2 x 4
  • トポロジの TPU チップ数: 16
  • VM 数: 4
TPU v5p ct5p-hightpu-4t マルチホスト
  • トポロジ: 2 x 4 x 4
  • トポロジの TPU チップ数: 32
  • VM 数: 8
TPU v5p ct5p-hightpu-4t マルチホスト
  • トポロジ: {A} x {B} x {C}(A、B、C は 2 の倍数)
  • トポロジの TPU チップ数: A x B x C
  • VM 数: (A x B x C ÷ 4)1
  1. トポロジの積を 4 で割った値から計算されます。↩

次のステップ