TPU ソフトウェア バージョン

このドキュメントでは、Cloud TPU を作成するときに適切な TPU ソフトウェア バージョンを選択する方法について説明します。

TPU リソースの作成時に、ソフトウェア バージョン(ランタイム バージョンとも呼ばれます)を指定します。これは、TPU VM にプリインストールされているソフトウェア環境を指します。これには、Ubuntu オペレーティング システム、Docker、TPU でコードを実行するために必要なその他のソフトウェアが含まれます。

Google Cloud CLI を使用している場合は、--version または --runtime-version パラメータを使用して TPU ソフトウェア バージョンを指定します。 Google Cloud コンソールを使用している場合は、[TPU ソフトウェア バージョン] リストから TPU ソフトウェア バージョンを選択します。

PyTorch と JAX

PyTorch と JAX で一般的な次の TPU ソフトウェア バージョンを使用し、使用するフレームワークをインストールします。

TPU バージョン TPU ソフトウェア バージョン
Trillium(v6e) v2-alpha-tpuv6e
v5p v2-alpha-tpuv5
v5e v2-alpha-tpuv5-lite
v4 以前 tpu-ubuntu2204-base

PyTorch または JAX のインストールと使用開始の詳細については、PyTorch を使用して Cloud TPU VM で計算を実行するJAX を使用して Cloud TPU VM で計算を実行するをご覧ください。

TensorFlow

TensorFlow の TPU ソフトウェア バージョンは、特定の命名規則に従います。

tpu-vm-tf-x.y.z[-{pod}][-{device_api}]

  • x.y.z: TensorFlow のメジャー バージョン、マイナー バージョン、パッチ バージョンを表します。
  • -pod(省略可): マルチホスト TPU スライスを使用していることを示します。
  • -{device_api}(省略可): デバイス API を指定します。例: PJRT API を使用している場合は -pjrt

TPU ソフトウェア バージョンを指定する方法の詳細については、以降のセクションをご覧ください。

TensorFlow のバージョンごとに固有の TPU ソフトウェア バージョンがあります。次の表に、サポートされている TensorFlow バージョンと関連する libtpu バージョンを示します。

TensorFlow のバージョン libtpu.so のバージョン
2.18.0 1.12.0
2.17.1 1.11.1
2.17.0 1.11.0
2.16.2 1.10.1
2.16.1 1.10.1
2.15.1 1.9.0
2.15.0 1.9.0
2.14.1 1.8.1
2.14.0 1.8.0
2.13.1 1.7.1
2.13.0 1.7.0
2.12.1 1.6.1
2.12.0 1.6.0
2.11.1 1.5.1
2.11.0 1.5.0
2.10.1 1.4.1
2.10.0 1.4.0
2.9.3 1.3.2
2.9.1 1.3.0
2.8.3 1.2.3
2.8.0 1.2.0
2.7.3 1.1.2

TensorFlow のパッチ バージョンの詳細については、サポートされている TensorFlow パッチ バージョンをご覧ください。

TPU v6e、v5p、v5e

TPU v6e、v5e、v5p は、TensorFlow 2.15.0 以降をサポートしています。TPU ソフトウェア バージョンは、tpu-vm-tf-x.y.z-{pod}-pjrt の形式で指定します。ここで、x は TensorFlow のメジャー バージョン、y はマイナー バージョン、z は TensorFlow のパッチ バージョンです。マルチホスト TPU を使用している場合は、TensorFlow バージョンの後に pod を追加します。たとえば、マルチホスト TPU で TensorFlow 2.16.0 を使用している場合は、tpu-vm-tf-2.16.0-pod-pjrt TPU ソフトウェア バージョンを使用します。TensorFlow の他のバージョンについては、2.16.0 を使用している TensorFlow のメジャー バージョンとパッチ バージョンに置き換えます。単一ホストの TPU を使用している場合は、pod を省略します。

TPU v4

TPU v4 と TensorFlow 2.10.1 以降を使用している場合は、TPU v2 と v3 の手順に沿って操作します。TensorFlow 2.10.0 以前を使用している場合は、v4 固有の TPU ソフトウェア バージョンを使用します。

TensorFlow のバージョン TPU ソフトウェア バージョン
2.10.0 tpu-vm-tf-2.10.0-v4
tpu-vm-tf-2.10.0-pod-v4
2.9.3 tpu-vm-tf-2.9.3-v4
tpu-vm-tf-2.9.3-pod-v4
2.9.2 tpu-vm-tf-2.9.2-v4
tpu-vm-tf-2.9.2-pod-v4
2.9.1 tpu-vm-tf-2.9.1-v4
tpu-vm-tf-2.9.1-pod-v4

TPU v2 と TPU v3

TPU v2 または v3 を使用している場合は、使用している TensorFlow のバージョンと一致する TPU ソフトウェア バージョンを使用します。たとえば、TensorFlow 2.14.1 を使用している場合は、tpu-vm-tf-2.14.1 TPU ソフトウェア バージョンを使用します。TensorFlow の他のバージョンについては、2.14.1 を使用している TensorFlow バージョンに置き換えます。マルチホスト TPU を使用している場合は、TPU ソフトウェア バージョンの末尾に pod を追加します(例: tpu-vm-tf-2.14.1-pod)。

TensorFlow 2.15.0 以降では、ソフトウェア バージョン名の一部としてデバイス API も指定する必要があります。たとえば、PJRT API で TensorFlow 2.16.1 を使用している場合は、tpu-vm-tf-2.16.1-pjrt TPU ソフトウェア バージョンを使用します。同じバージョンの TensorFlow で stream executor API を使用している場合は、tpu-vm-tf-2.16.1-se TPU ソフトウェア バージョンを使用します。2.15.0 より前の TensorFlow バージョンは、stream executor のみをサポートしています。

TensorFlow PJRT のサポート

TensorFlow 2.15.0 以降では、TPU 上の TensorFlow に PJRT インターフェースを使用できます。PJRT は自動デバイスメモリ デフラグメンテーション機能を備えており、ハードウェアとフレームワークのインテグレーションを簡素化します。PJRT の詳細については、PJRT: ML ハードウェアとフレームワークのインテグレーションの簡素化をご覧ください。

アクセラレータ 機能 PJRT のサポート stream executor のサポート
TPU v2 - v4 高密度なコンピューティング(TPU 埋め込み API なし)
TPU v2 - v4 高密度なコンピューティング API + TPU 埋め込み API ×
TPU v2 - v4 ソフトデバイス配置を使用した tf.summary/tf.print ×
TPU v5e 高密度なコンピューティング(TPU 埋め込み API なし) ×
TPU v5e TPU 埋め込み API N/A ×
TPU v5p 高密度なコンピューティング(TPU 埋め込み API なし) ×
TPU v5p TPU 埋め込み API ×

次のステップ

  • TPU アーキテクチャを参照して、TPU アーキテクチャについて確認する。
  • TPU の用途を参照して、Cloud TPU に最適なモデルの種類について確認する。