このドキュメントでは、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 が機械学習用に設計した専用のアクセラレータです。各 TPU チップには、大規模な行列演算を処理するための 1 つ以上の TensorCore が含まれています。各 TensorCore は、1 つ以上のマトリックス乗算ユニット(MXU)で構成されています。MXU は、シストリック アレイ アーキテクチャを使用して、一定のメモリ アクセスなしで 1 サイクルあたり数千の乗累算演算を実行します。主に高速行列処理に使用されますが、TPU チップには、一般的な計算と制御フロー オペレーション用のベクトル ユニットとスカラー ユニットも含まれています。
TPU Pod: TPU Pod は、専用のネットワークでグループ化された一連の連続した TPU です。TPU Pod 内の TPU チップの数は、TPU のバージョンによって異なります。
TPU VM: TPU VM は、TPU ホストで実行され、基盤となる TPU にアクセスできる Linux 仮想マシンです。SSH を使用して TPU VM に直接接続できます。VM への root アクセス権があるため、任意のコードを実行できます。コンパイラとランタイム デバッグログ、エラー メッセージにアクセスできます。
TPU スライス: 相互接続された TPU チップの論理グループ。1 つ以上の TPU VM を介してアクセスされます。スライスには次のいずれかのスコープがあります。
- 単一ホスト スライス: 1 台のホストマシンで構成されるスライス。通常、これは 1 つの TPU VM にマッピングされます。
- マルチホスト スライス: 高速チップ間相互接続(ICI)を使用して相互接続された複数の TPU VM で構成されるスライス。
TPU キューブ: 相互接続された TPU チップの 4x4x4 トポロジ。これは 3D トポロジにのみ適用されます。
SparseCore: SparseCore は、スパース オペレーションを使用するモデルを高速化するデータフロー プロセッサです。主なユースケースは、エンベディングに大きく依存するレコメンデーション モデルの高速化です。
TPU バージョン: TPU チップのアーキテクチャは、厳密にいえば使用する TPU のバージョンによって異なります。また、TPU バージョンはそれぞれさまざまなスライスサイズと構成をサポートしています。
TPU の仕組みについては、Cloud TPU ドキュメントの TPU アーキテクチャをご覧ください。
ワークロード タイプ別の推奨 TPU バージョン
| TPU バージョン | 主なワークロード タイプ |
|---|---|
| TPU7x(Ironwood) |
|
| TPU v6e(Trillium) |
|
| TPU v5p |
|
使用オプション
ワークロードのパフォーマンスのバランスを取りながら、リソースの使用率と費用を最適化するために、Compute Engine は次の TPU 使用オプションをサポートしています。
オンデマンド: 事前に容量を調整することなく TPU を使用します。リソースをリクエストする前に、特定のタイプと数量の TPU VM に対して十分なオンデマンド割り当てが必要です。オンデマンドは最も柔軟な使用オプションですが、リクエストを満たすのに十分なオンデマンド リソースが利用できる保証はありません。
Spot VM: 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 | 1 | 1 | ||||
1 TPU7x の Spot、Flex Start、カレンダー モードの将来の予約は、許可リストによって制限されます。アクセスをリクエストするには、アカウント チームまたはセールスチームにお問い合わせください。
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 帯域幅(GiBps) | 7,380 | 1638 | 2,575 |
| 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 |
単一ホスト |
|
| TPU7x(Ironwood) | tpu7x-standard-4t |
マルチホスト |
|
| TPU7x(Ironwood) | tpu7x-standard-4t |
マルチホスト |
|
| TPU7x(Ironwood) | tpu7x-standard-4t |
マルチホスト |
|
| TPU7x(Ironwood) | tpu7x-standard-4t |
マルチホスト |
|
| TPU7x(Ironwood) | tpu7x-standard-4t |
マルチホスト |
|
| TPU7x(Ironwood) | tpu7x-standard-4t |
マルチホスト |
|
| TPU7x(Ironwood) | tpu7x-standard-4t |
マルチホスト |
|
| TPU7x(Ironwood) | tpu7x-standard-4t |
マルチホスト |
|
| TPU7x(Ironwood) | tpu7x-standard-4t |
マルチホスト |
|
| TPU v6e(Trillium) | ct6e-standard-1t |
単一ホスト |
|
| TPU v6e(Trillium) | ct6e-standard-8t |
単一ホスト |
|
| TPU v6e(Trillium) | ct6e-standard-4t |
単一ホスト |
|
| TPU v6e(Trillium) | ct6e-standard-4t |
マルチホスト |
|
| TPU v6e(Trillium) | ct6e-standard-4t |
マルチホスト |
|
| TPU v6e(Trillium) | ct6e-standard-4t |
マルチホスト |
|
| TPU v6e(Trillium) | ct6e-standard-4t |
マルチホスト |
|
| TPU v6e(Trillium) | ct6e-standard-4t |
マルチホスト |
|
| TPU v6e(Trillium) | 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 |
マルチホスト |
|
-
トポロジの積を 4 で割った値から計算されます。↩
次のステップ
- Compute Engine の TPU リソースについて学習する
- クイックスタート: 単一の TPU VM を作成するを試す