TPU v6e
このドキュメントでは、Cloud TPU v6e(Trillium)のアーキテクチャとサポートされている構成について説明します。
Trillium は、Cloud TPU の最新の生成 AI アクセラレータです。API やログなどのすべての技術的なサーフェスと、このドキュメント全体で、Trillium は v6e と呼ばれます。
Pod あたり 256 チップのフットプリントを持つ v6e は、v5e と多くの類似点があります。このシステムは、トランスフォーマー、text-to-image、畳み込みニューラル ネットワーク(CNN)のトレーニング、微調整、サービス提供に適した最適なプロダクトとなるように最適化されています。
システム アーキテクチャ
各 v6e チップには 1 つの TensorCore が含まれています。各 TensorCore には、4 つのマトリックス乗算ユニット(MXU)、1 つのベクトル ユニット、1 つのスカラー ユニットがあります。次の表に、TPU v5e と TPU v6e の主な仕様と値を示します。
仕様 | v5e | v6e |
---|---|---|
パフォーマンス/総所有コスト(TCO)(予想) | 0.65 倍 | 1 |
チップあたりのピーク コンピューティング(bf16) | 197 TFLOPs | 918 TFLOPs |
チップあたりのピーク コンピューティング(Int8) | 393 TOPS | 1,836 TOPS |
チップあたりの HBM 容量 | 16 GB | 32 GB |
チップあたりの HBM 帯域幅 | 819 GBps | 1,640 GBps |
インターチップ相互接続(ICI)帯域幅 | 1600 Gbps | 3,584 Gbps |
チップあたりの ICI ポート | 4 | 4 |
ホストあたりの DRAM | 512 GiB | 1,536 GiB |
ホストあたりのチップ数 | 8 | 8 |
TPU Pod のサイズ | 256 チップ | 256 チップ |
相互接続トポロジ | 2D トーラス | 2D トーラス |
Pod あたりの BF16 ピーク コンピューティング | 50.63 PFLOPs | 234.9 PFLOPs |
Pod あたりの all-reduce 帯域幅 | 51.2 TB/s | 102.4 TB/s |
Pod あたりの二分割帯域幅 | 1.6 TB/s | 3.2 TB/秒 |
ホストごとの NIC 構成 | 2 x 100 Gbps NIC | 4 x 200 Gbps NIC |
Pod あたりのデータセンターのネットワーク帯域幅 | 6.4 Tbps | 25.6 Tbps |
特別な機能 | - | SparseCore |
サポートされている構成
TPU v6e は、最大 256 個の v6e チップのトレーニングと、最大 8 個のチップの単一ホスト推論をサポートしています。
次の表に、v6e でサポートされている 2D スライス シェイプを示します。
トポロジ | TPU チップ | ホスト | VM | アクセラレータ タイプ(TPU API) | マシンタイプ(GKE API) | 範囲 | 推論をサポートしていますか? |
---|---|---|---|---|---|---|---|
1×1 | 1 | 1/8 | 1 | v6e-1 |
ct6e-standard-1t |
サブホスト | ○ |
2x2 | 4 | 1/2 | 1 | v6e-4 |
ct6e-standard-4t |
サブホスト | ○ |
2x4 | 8 | 1 | 1 | v6e-8 |
ct6e-standard-8t |
単一ホスト | ○ |
2x4 | 8 | 1 | 2 | - | ct6e-standard-4t |
単一ホスト | × |
4x4 | 16 | 2 | 4 | v6e-16 |
ct6e-standard-4t |
マルチホスト | × |
4x8 | 32 | 4 | 8 | v6e-32 |
ct6e-standard-4t |
マルチホスト | × |
8x8 | 64 | 8 | 16 | v6e-64 |
ct6e-standard-4t |
マルチホスト | × |
8x16 | 128 | 16 | 32 | v6e-128 |
ct6e-standard-4t |
マルチホスト | × |
16x16 | 256 | 32 | 64 | v6e-256 |
ct6e-standard-4t |
マルチホスト | × |
1 つの VM に 8 個のチップ(v6e-8
)が接続されたスライスは推論用に最適化されており、8 個のチップをすべて 1 つのサービス提供ワークロードで使用できます。
各トポロジの VM 数については、VM のタイプをご覧ください。
VM の種類
各 TPU v6e VM には、1、4、8 個のチップを含めることができます。4 チップ以下のスライスには、同じ不均一メモリアクセス(NUMA)ノードがあります。NUMA ノードの詳細については、Wikipedia の Non-uniform memory access をご覧ください。
v6e スライスは、それぞれ 4 個の TPU チップを持つハーフホスト VM を使用して作成されます。このルールには 2 つの例外があります。
v6e-1
: チップが 1 つしかない VM。主にテスト用v6e-8
: 8 個すべてのチップを 1 つの VM に接続した推論ユースケース用に最適化されたフルホスト VM。
次の表に、TPU v6e VM タイプの比較を示します。
VM の種類 | VM あたりの vCPU 数 | VM あたりの RAM(GB) | VM あたりの NUMA ノードの数 |
---|---|---|---|
1 チップ VM | 44 | 176 | 1 |
4 チップ VM | 180 | 720 | 1 |
8 チップ VM | 180 | 1440 | 2 |
v6e 構成を指定します。
TPU API を使用して TPU v6e スライスを割り当てる場合は、AcceleratorType
パラメータまたは AcceleratorConfig
パラメータを使用してサイズとシェイプを指定します。
GKE を使用している場合は、--machine-type
フラグを使用して、使用する TPU をサポートするマシンタイプを指定します。詳細については、GKE ドキュメントの GKE Standard に TPU ワークロードをデプロイするをご覧ください。
AcceleratorType
を使用する
TPU リソースを割り当てる場合は、AcceleratorType
を使用してスライス内の TensorCore 数を指定します。AcceleratorType
に指定する値は、v$VERSION-$TENSORCORE_COUNT
形式の文字列です。たとえば、v6e-8
は、8 個の TensorCore がある v6e TPU スライスを指定します。
次の例は、AcceleratorType
を使用して 32 個の TensorCore を持つ TPU v6e スライスを作成する方法を示しています。
gcloud
$ gcloud compute tpus tpu-vm create tpu-name \ --zone=zone \ --accelerator-type=v6e-32 \ --version=v2-alpha-tpuv6e
Console
Google Cloud コンソールの [TPU] ページに移動します。
[TPU を作成] をクリックします。
[名前] フィールドに、TPU の名前を入力します。
[ゾーン] ボックスで、TPU を作成するゾーンを選択します。
[TPU タイプ] ボックスで [
v6e-32
] を選択します。[TPU ソフトウェア バージョン] ボックスで、
v2-alpha-tpuv6e
を選択します。Cloud TPU VM の作成時には、インストールされる TPU ランタイム バージョンが TPU ソフトウェア バージョンによって指定されます。詳細については、TPU VM イメージをご覧ください。[キューイングを有効にする] トグルをクリックします。
[キューに登録されたリソース名] フィールドに、キューに登録されたリソース リクエストの名前を入力します。
[作成] をクリックします。
AcceleratorConfig
を使用する
AcceleratorConfig
で使用する TensorCore の数を指定することもできます。ただし、TPU v6e にはカスタム 2D トポロジ バリアントがないため、AcceleratorConfig
の使用と AcceleratorType
の使用に違いはありません。
AcceleratorConfig
を使用して TPU v6e を構成するには、--version
フラグと --topology
フラグを使用します。--version
を、使用する TPU バージョンに設定し、--topology
をスライスの TPU チップの物理配置に設定します。AcceleratorConfig
に指定する値は AxB
形式の文字列です。ここで、A
と B
は各方向のチップ数です。
次の例は、4x8 トポロジに配置された AcceleratorType
を使用して TPU v6e スライス 32 TensorCore を作成する方法を示しています。
$ gcloud compute tpus tpu-vm create tpu-name \ --zone=zone \ --type=v6e \ --topology=4x8 \ --version=v2-alpha-tpuv6e