TPU タイプとゾーン

概要

機械学習ワークフローを処理する TPU ノードを作成するときは、TPU タイプを選択する必要があります。TPU タイプによって、TPU のバージョン、TPU コアの数、機械学習ワークロードに使用できる TPU メモリ量が決まります。

たとえば、TPU タイプ v2-8 では、8 個の TPU v2 コアと合計 64 GiB の TPU メモリを備えた TPU ノードが定義されます。TPU タイプ v3-2048 では、2,048 個の TPU v3 コアと合計 32 TiB の TPU メモリを備えた TPU ノードが定義されます。

TPU のバージョンと構成によるハードウェアの違いについては、システム アーキテクチャをご覧ください。

各リージョンでの TPU タイプ別の料金については、料金をご覧ください。

TPU タイプを、同じコア数を持つ別の TPU タイプ(たとえば、v2-8v3-8)に変更し、コードを変更せずにトレーニング スクリプトを実行できます。ただし、コア数を増減させた TPU タイプに変更する場合は、かなりの調整と最適化を行う必要があります。詳細については、TPU Pod でのトレーニングをご覧ください。

TPU タイプとゾーン

TPU タイプごとの違いは、主に、料金、パフォーマンス、メモリ容量、利用できるゾーンです。

Google Cloud Platform では、ゾーンに分割されたリージョンを使用して、物理的なコンピューティング リソースの地理的なロケーションを定義します。たとえば、us-central1 リージョンは米国の地理的な中心付近のリージョンを示し、us-central1-aus-central1-bus-central1-cus-central1-f のゾーンがあります。TPU ノードを作成するときに、作成するゾーンを指定します。リージョン リソース、ゾーンリソースについて詳しくは、Compute Engine のグローバル リソース、リージョン リソース、ゾーンリソースのドキュメントをご覧ください。

次の TPU タイプで構成を作成できます。

US

TPU タイプ(v2) TPU v2 コア数 TPU メモリ合計 リージョン / ゾーン
v2-8 8 64 GiB us-central1-b
us-central1-c
us-central1-f
v2-32 32 256 GiB us-central1-a
v2-128 128 1 TiB us-central1-a
v2-256 256 2 TiB us-central1-a
v2-512 512 4 TiB us-central1-a
TPU タイプ(v3) TPU v3 コア数 TPU メモリ合計 利用可能なゾーン
v3-8 8 128 GiB us-central1-a
us-central1-b
us-central1-f

ヨーロッパ

TPU タイプ(v2) TPU v2 コア数 TPU メモリ合計 リージョン / ゾーン
v2-8 8 64 GiB europe-west4-a
v2-32 32 256 GiB europe-west4-a
v2-128 128 1 TiB europe-west4-a
v2-256 256 2 TiB europe-west4-a
v2-512 512 4 TiB europe-west4-a
TPU タイプ(v3) TPU v3 コア数 TPU メモリ合計 利用可能なゾーン
v3-8 8 128 GiB europe-west4-a
v3-32 32 512 GiB europe-west4-a
v3-64 64 1 TiB europe-west4-a
v3-128 128 2 TiB europe-west4-a
v3-256 256 4 TiB europe-west4-a
v3-512 512 8 TiB europe-west4-a
v3-1024 1024 16 TiB europe-west4-a
v3-2048 2048 32 TiB europe-west4-a

アジア太平洋

TPU タイプ(v2) TPU v2 コア数 TPU メモリ合計 リージョン / ゾーン
v2-8 8 64 GiB asia-east1-c

コア数の多い TPU タイプについては、利用可能な数量が限られています。コア数の少ない TPU タイプの方が利用可能性が高くなります。

料金とパフォーマンスとのトレードオフの計算

使用する TPU タイプを決定するには、Cloud TPU チュートリアルを使用して実際のアプリケーションと同様のモデルのトレーニングをテストできます。

v2-8v3-8 のそれぞれの TPU タイプでチュートリアルを実施し、完全なトレーニングで使用するステップ数の 5~10% でトレーニングを実行します。その結果から、各 TPU タイプでモデルに対して実際のステップ数を実行した場合にかかる時間がわかります。

パフォーマンスは TPU タイプのスケールに応じて線形的に向上します。したがって、TPU タイプ v2-8 または v3-8 での所要時間がわかれば、コア数の多い TPU タイプでモデルを実行した場合、タスクの所要時間をどれだけ短縮できるかを評価できます。

たとえば、TPU タイプ v2-8 では 10,000 ステップに 60 分かかる場合、v2-32 ノードでは同じタスクの所要時間が約 15 分に短縮されることになります。

いくつかの異なる TPU タイプ別にモデルのおよそのトレーニング時間がわかっていれば、VM / TPU の費用とトレーニング時間を比較検討することで、料金とパフォーマンスとの最適なトレードオフを評価できます。

TPU タイプ別の Cloud TPU および関連する Compute Engine VM の費用の違いを確認するには、TPU の料金ページをご覧ください。

TPU タイプの指定

使用しているフレームワーク(TensorFlow、PyTorch、JAX)にかかわらず、TPU を起動する際に accelerator-type パラメータを使用して TPU タイプを指定します。使用するコマンドは、TPU VM を使用するか TPU ノードを使用するかによって異なります。コマンドの例を以下に示します。

TPU VM

$ gcloud alpha compute tpus tpu-vm create tpu-name \
--zone=zone \
--accelerator-type=v3-8 \
--version=tpu-vm-tf-2.7.0

コマンドフラグの説明

zone
Cloud TPU を作成するゾーン
accelerator-type
作成する Cloud TPU のタイプ
version
Cloud TPU ランタイムのバージョン。

TPU ノード

$ gcloud compute tpus execution-groups create \
--name=tpu-name \
--zone=zone \
--tf-version=2.7.0 \
--machine-type=n1-standard-1 \
--accelerator-type=v3-8

コマンドフラグの説明

name
作成する Cloud TPU の名前。
zone
Cloud TPU を作成するゾーン
tf-version
TensorFlow のみ。gcloud コマンドで VM にインストールする TensorFlow のバージョン。
machine-type
作成する Compute Engine VM のマシンタイプ
accelerator-type
作成する Cloud TPU のタイプ
image-family
PyTorch のみ。torch-xla に設定します。
image-project
PyTorch のみ。ml-images に設定します。
boot-disk-size
VM のブートディスクのサイズ。
scopes
PyTorch のみ。https://www.googleapis.com/auth/cloud-platform に設定します。

gcloud コマンドの詳細については、gcloud リファレンスをご覧ください。

次のステップ