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 タイプで実行されるモデルは、TensorFlow コードを変更しなくても別の TPU タイプでも実行できます。たとえば、v2-8 コードは v3-8 で変更せずに実行できます。 ただし、v2-8v3-8 からより大きな TPU タイプ(v2-32v3-128など)にスケーリングする場合は、かなりの調整と最適化が必要になります。

TPU タイプとゾーン

TPU タイプ間の違いは、主に、料金、パフォーマンス、メモリ容量、ゾーンの可用性にあります。

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

次の TPU タイプで TPU ノードを構成できます。

米国

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 タイプ別の Cloud TPU および関連する Compute Engine VM の費用の違いを確認するには、TPU の料金ページをご覧ください。いくつかの異なる TPU タイプ別にモデルのおよそのトレーニング時間がわかっていれば、VM / TPU の費用とトレーニング時間を比較検討することで、料金とパフォーマンスとの最適なトレードオフを評価できます。

TPU タイプの指定

TPU タイプは、TPU ノードの作成時に指定します。たとえば、TPU タイプは、次のいずれかの方法を使用して選択できます。

gcloud コマンド

  • gcloud compute tpusexecution-groups コマンドを使用します。
$ gcloud compute tpus execution-groups create \
 --name=tpu_name \
 --zone=zone \
 --tf-version=tensorflow_version \
 --machine-type=n1-standard-8 \
 --accelerator-type=v3-8

コマンドフラグの説明

name
作成する Cloud TPU の名前。
zone
Cloud TPU を作成するゾーン
tf-version
Tensorflow gcloud のバージョンが VM にインストールされます。
machine-type
作成する Compute Engine VM のマシンタイプ
accelerator-type
作成する Cloud TPU のタイプ

Cloud Console

  1. 左側のナビゲーション メニューから、[Compute Engine] > [TPU] を選択します。
  2. TPU 画面で、[TPU ノードを作成] をクリックします。TPU の構成ページが表示されます。
  3. [TPU タイプ] で、サポートされている TPU バージョンのいずれかを選択します。
  4. [作成] ボタンをクリックします。

次のステップ