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

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

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

  • TPU7x
  • TPU v6e
  • TPU v5p

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

TPU アーキテクチャの基礎

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

  • TPU チップ: TPU チップは、Google が 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 機能: スループットを最大化するための高コンピューティング密度。
    • 推奨される 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_vms_name} をプロビジョニングします。Compute Engine は、可用性に基づいてベスト エフォートでハードウェアを自動的に割り当てます。詳細については、{flex_start_vms_name} についてをご覧ください。

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

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

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

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

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

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

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

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

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 ドキュメントのデュアル チプレット アーキテクチャをご覧ください。

マシンタイプ 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)ノードがあります。

v6e スライスは、それぞれ 4 つの TPU チップを持つハーフホスト VM を使用して作成されます。ただし、次の例外があります。

  • TPU チップが 1 つしかない ct6e-standard-1t は、主にテスト用です。
  • ct6e-standard-8t は、推論ユースケース用に最適化されたフルホスト VM であり、1 つの VM に接続された 8 個の TPU チップをすべて 1 つのサービング ワークロードで使用できます。
マシンタイプ vCPU 数 インスタンスのメモリ(GB) 物理 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 チップに対応します。

マシンタイプ vCPU 数 インスタンスのメモリ(GB) 物理 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 で割った値から計算されます。↩

次のステップ