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 トレーニング
大規模モデルの事前トレーニング: 大規模モデルをゼロからトレーニングします。これらのワークロードは、コンピューティングと通信にバインドされています。
モデルのファインチューニングと抽出: パラメータ効率の高い手法を使用して既存のモデルを適応させるか、より小さなモデル バリアントをトレーニングします。
AI / ML 推論
モデルのオンライン サービング: 低レイテンシが重要なリアルタイム インタラクション用にモデルをデプロイします。これらのワークロードは、トークンのシーケンシャル生成中にメモリ帯域幅が制約されます。
バッチ推論の実行: 高スループットを主な目標として、大規模なデータセットをオフラインで処理します。これらのワークロードは、プロンプトのプリフィル フェーズでコンピューティング バウンドになります。
Recommender システム
- 大規模なエンベディングの処理: 大規模なエンベディング テーブルを使用するレコメンデーション モデルのトレーニングとサービング。これらのワークロードは容量と通信に制約されます。
強化学習
ワークロードの考慮事項
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 をご覧ください。
次のステップ
- アクセラレータ最適化マシン ファミリーの TPU マシンを確認する。
- TPU インスタンスを作成する方法を学習する。