コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

TPU のタイプとトポロジ

概要

TPU 構成を作成するときは、TPU のタイプとサイズ、または TPU タイプとトポロジ(論理チップの配置)を指定する必要があります。gcloud create オペレーションでこれを行うには、次の 2 つの方法があります。

  • 1 つの accelerator-type 文字列を作成して、型(v2、v3、または v4)とリクエストする TensorCore の数を指定します。
  • TPU の type パラメータと topology フラグを指定します。

accelerator-type 文字列または type フラグと topology フラグを使って TPU を作成する例については、TPU タイプをご覧ください。

さまざまな Cloud TPU のバージョンとトポロジに関する追加情報については、システム アーキテクチャのドキュメントをご覧ください。

TPU タイプ

TPU 構成を指定するには、gcloud コマンドの「accelerator-type」フラグを使用します。TPU の構成は、TPU のバージョンと TensorCore の数で構成されます。たとえば、次の gcloud コマンドは 128 個の TensorCore を持つ v3 TPU を作成します。

    $ gcloud compute tpus tpu-vm create tpu-name
      --zone=zone
      --accelerator-type=v3-128
      --version=tpu-vm-tf-2.12.0

TPU チップの数と論理配列(トポロジ)として TPU の構成を指定することもできます。詳細については、チップベースの TPU の構成をご覧ください。

TensorCore ベースの TPU 構成

TPU タイプの場合、バージョンの後に TensorCore の数が表示されます(例: 8, 32, 128). たとえば、--accelerator-type=v2-8 と 8 個の TensorCore を使用した TPU v2 を指定し、v3-1024 は 1, 024 個の TensorCore(v3 のスライス)がある v3 TPU を指定します Pod)。

チップトポロジ ベースの TPU 構成

v4 の構成は、TPU のバージョンとトポロジで指定します。 トポロジは、チップの配置方法を説明する 3 タプルで指定されています。たとえば、32-TensorCore の構成は、2x2x4(チップごとに 2 つの TensorCore を持つ 16 個のチップ)で表すことができます。 3 タプルはトポロジのみを指定します。TPU バージョンが必要な構成は指定しません。

v4 トポロジは AxBxC になります。A<=B<=C で、A,B,C はすべて 4 以下、または 4 のすべての整数倍数です。値 A、B、C は、3 つの次元のチップ数です。2A=B=C または 2A=2B=C のトポロジでも、完全対多通信用に最適化されたバリアントがあります(例: 4×4×8)。 8×8×16、12×12×24。

v4 トポロジの詳細については、TPU v4 の構成をご覧ください。

チップトポロジ ベースのトポロジ(v4)の作成

v4 では、TensorBoard ではなくデバイスが表示されます。チップあたり 1 つのデバイスです。チップトポロジ ベースのトポロジを指定するには、v4 に 3 次元トポロジ形式(4x4x4 など)が導入され、gcloud 作成 TPU オペレーションの --topology フラグが導入されました。トポロジのバリアントで示されている表には、サポートされている他のチップトポロジ ベースのトポロジの例が含まれています。

gcloud 作成オペレーションで type フラグと topology フラグを使用して、v4 タイプとトポロジを指定できます。たとえば、次の gcloud コマンドは、4x4x4 キューブ トポロジで 64 個のチップを持つ v4 TPU を作成します。

  $ gcloud alpha compute tpus tpu-vm create tpu-name
    --zone=zone
    --type=v4
    --topology=4x4x4
    --version=tpu-vm-tf-2.12.0

--type に指定できる値は v4 です。

トポロジのバリアント

特定の TensorCore またはチップ数に関連付けられた標準トポロジは、立方体に最も類似しています(トポロジの形をご覧ください)。この形状のため、データ並列 ML トレーニングに最適な選択肢になります。他のトポロジは、複数の種類の並列処理を行うワークロード(モデルとデータの並列処理、シミュレーションの空間パーティショニングなど)に利用できます。スライス形態が一致する並列処理と一致する場合、これらのワークロードは最高のパフォーマンスを発揮します。たとえば、X 軸に 4 方向のモデルの並列処理を設定し、Y 軸と Z 次元に 256 方向のデータの並列処理を配置すると、4x16x16 のトポロジと一致します。

並列処理の次元がいくつもあるモデルは、並列処理の次元が全体的な次元にマッピングされていると、最高のパフォーマンスが得られます。通常は、データとモデルの並列大規模言語モデル(LLM)です。たとえば、トポロジ 8x16x16 の TPU v4 Pod スライスの場合、Torus ディメンションは 8、16、16 です。8 方向または 16 方向のモデルの並列処理(いずれかの物理層ディメンションにマッピング)を使用すると、パフォーマンスが向上します。このトポロジでは、4 方向モデルの並列処理は最適ではありません。これは、トール ディメンションに合わせられていないため、同じ数のチップ上で 4x16x32 のトポロジで行うのが最適です。

小規模な v4 トポロジ

Cloud TPU は、次の 64 チップよりも小さい TPU v4 スライス(4x4x4 キューブ)をサポートしています。これらの小規模な v4 トポロジは、TensorCore ベースの名前(v4-32 など)またはトポロジ(2x2x4 など)を使用して作成できます。

名前(TensorCore のカウントに基づく) チップ数 トポロジ
v4-8 4 2x2x1
v4-16 8 2x2x2
v4-32 16 2x2x4
v4-64 32 2x4x4

大規模な v4 トポロジ

TPU v4 スライスは 64 チップ単位で利用でき、3 つのディメンションすべてで 4 の倍数の形状になっています。ディメンションも昇順でなければなりません。次の表にいくつかの例を示します。これらのトポロジのいくつかは、トポロジ API を使用してのみ起動できる「カスタム」トポロジです。これは、一般的に使用される名前付きトポロジと同じチップ数を持つためです。 。

名前(TensorCore のカウントに基づく) チップ数 トポロジ
v4-128 64 4x4x4
v4-256 128 4x4x8
v4-512 256 4x8x8
Topology API をご覧ください 256 4x4x16
v4-1024 512 8x8x8
v4-1536 768 8x8x12
v4-2048 1024 8x8x16
Topology API をご覧ください 1024 4x16x16
v4-4096 2048 8x16x16

トポロジ API

カスタム トポロジを使用して Cloud TPU Pod スライスを作成するには、gcloud TPU API を次のように使用します。

     $ gcloud alpha compute tpus tpu-vm create tpu-name \
        --zone=us-central2-b \
        --subnetwork=tpusubnet \
        --type=v4 \
        --topology=4x4x16 \
        --version=runtime-version

トポロジの形状

次の図は、3 つのトポロジトポロジと、関連する topology フラグを示しています。

イメージ

TPU タイプの互換性

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

次のステップ