TPU について

Tensor Processing Unit(TPU)は、Google が独自に開発した特定用途向け集積回路(ASIC)であり、ML(機械学習)と AI(人工知能)のワークロードを高速化するように設計されています。複雑な基盤モデルのトレーニングを数週間行う場合でも、大規模な推論を実行する場合でも、TPU は高度な AI フレームワーク用に最適化されたスケーラブルな専用コンピューティング リソースを提供します。

このドキュメントでは、 Google Cloudにおける TPU の役割、使用可能な各 TPU バージョンの技術仕様、パフォーマンス特性、料金に関する考慮事項、Compute Engine マシンシリーズへのマッピング方法について説明します。

TPU とは

TPU は、ML アルゴリズムの中心となる大規模な行列演算の需要に対応するように設計されたカスタム設計の ASIC です。

TPU システムの主なアーキテクチャ コンポーネントは次のとおりです。

  • TensorCore: TPU チップの処理ユニット。各 TensorCore は、シストリック アレイ アーキテクチャを使用して行列乗算を効率的に実行する 1 つ以上の行列乗算ユニット(MXU)と、制御フローと一般的な計算用のスカラー ユニットとベクトル ユニットで構成されています。

  • SparseCore: スパース オペレーションの高速化を目的として設計された専用のデータフロー プロセッサ。SparseCore は TensorCore と連携して大規模なエンベディング テーブルを効率的に処理するため、推奨モデルや大規模なエンベディングの高速化に最適です。

  • 高帯域幅メモリ(HBM): TPU チップに接続された大容量の物理メモリで、大容量のメモリ帯域幅を提供します。HBM により、バッチサイズの大きい大規模なモデルのトレーニングとサービングが可能になります。

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

  • TPU スライスと Pod: TPU Pod は、物理的にリンクされた TPU チップの大きな連続クラスタです。TPU スライスは、単一のワークロードを実行するために割り当てられた Pod(高速相互接続を使用して接続された 1 つ以上のホストで構成される)の論理パーティションです。

  • XLA コンパイラ: Accelerated Linear Algebra(XLA)コンパイラは、ML グラフを TPU TensorCore で実行される最適化されたマシン命令にコンパイルします。

TPU バージョンとマシンシリーズ

Compute Engine は、複数の世代とバージョンの TPU をサポートしています。次の表に、サポートされている各 TPU バージョンの主な仕様を示します。

TPU バージョン マシンシリーズ チップあたりのピーク コンピューティング(TFLOP) TPU メモリと帯域幅 チップあたりのコア数 チップあたりの相互接続(ICI)帯域幅 チップあたりのネットワーク帯域幅(DCN) Pod あたりのチップ数
TPU7x(Ironwood) tpu7x-standard

BF16: 2,307

FP8: 4,614

192 GiB(7,380 GBps)

2 個の Tensor コア

4 個の SparseCore

1,200 GBps 100 Gbps 9,216
TPU v6e(Trillium) ct6e-standard

BF16: 918

FP8: 918

32 GiB(1,638 GBps)

1 TensorCore

2 個の SparseCore

800 GBps 100 Gbps 256
TPU v5p ct5p-hightpu

BF16: 459

FP8: 459

95 GiB(2,765 GBps)

2 個の Tensor コア

4 個の SparseCore

1,200 GBps 50 Gbps 8,960

TPU のパフォーマンス特性

TPU は、高密度の行列代数演算を最大限の効率で実行するように最適化されています。ML ワークロードに 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 トーラス相互接続を使用します。

ワークロードの考慮事項

TPU は、次のワークロードには最適ではない可能性があります。

  • 頻繁な論理分岐を必要とするか、要素ごとの代数演算を多く含む線形代数プログラム。
  • CPU で実行される JAX または PyTorch のカスタム オペレーターに依存するワークロード。
  • 倍精度浮動小数点(FP64)演算を必要とする科学ワークロード。

料金に関する考慮事項

Google Cloudでの TPU の料金は、次の要素によって決まります。

  • TPU バージョン

  • ロケーション

  • 使用量モデル

料金の詳細については、TPU の料金ページをご覧ください。

使用量モデルと購入モデル

可用性の要件と費用の許容範囲に応じて、次のいずれかの消費オプションを使用して TPU インスタンスをプロビジョニングできます。

  • オンデマンド: すぐに実行するための標準の従量課金制(PAYG)料金。ライフサイクルの柔軟性は最大ですが、可用性は物理リソースの制約を受けます。
  • Spot: 大幅な割引(最大 70%)が適用される余剰 Google Cloud 容量。 Google Cloud は、30 秒の通知で Spot VM を停止または削除して容量を再利用できるため、これらのコンピューティング インスタンスはフォールト トレラントでチェックポイントが設定されたワークロードに最適です。
  • Flex Start: 可用性の高い専用プールから最大 7 日間コンピューティング インスタンスをリクエストできます。
  • 将来の予約: 容量を保証し、オンデマンド料金よりも割引価格で提供される予約。指定した将来の日付と時刻に、最大 90 日間(カレンダー モード)または 1 年以上の期間で TPU 容量を予約します。Google Cloud がリクエストを承認すると、予約期間中に容量の使用を開始できます。

確約利用割引(CUD)

1 年以上の将来の予約をリクエストすると、予約した TPU 容量に対して CUD を取得できます。コンピューティング インスタンスに CUD を適用すると、使用期間を確約することで、オンデマンド料金よりも大幅に料金が削減されます。

詳細については、Compute Engine の CUD をご覧ください。

次のステップ