TPU リソースを管理する

このページでは、Create Node API を使用して Cloud TPU を作成、一覧表示、停止、開始、削除、接続する方法について説明します。Create Node API は、Google Cloud CLI を使用して gcloud compute tpus tpu-vm create コマンドを実行する場合、および Google Cloud コンソールを使用して TPU を作成する場合に呼び出されます。Create Node API を使用すると、リクエストは直ちに処理されます。リクエストを処理するのに十分な容量がない場合、リクエストは失敗します。

Create Node API ではなく、キューに格納されたリソースを使用して TPU を作成することをおすすめします。キューに格納されたリソースをリクエストすると、リクエストは Cloud TPU サービスによって管理されるキューに追加されます。リクエストされたリソースが使用可能になると、すぐに Google Cloud プロジェクトに割り当てられ、すぐに専用で使用できるようになります。詳細については、キューに入れられたリソースを管理するをご覧ください。

マルチスライスを使用する場合は、キューに格納されたリソースを使用する必要があります。詳細については、マルチスライスの概要をご覧ください。

Google Kubernetes Engine(GKE)を使用して TPU リソースを管理する場合は、まず GKE クラスタを作成する必要があります。次に、TPU スライスを含むノードプールをクラスタに追加します。詳細については、GKE の TPU についてをご覧ください。

前提条件

これらの手順を実行する前に、Google Cloud CLI をインストールし、Google Cloud プロジェクトを作成して、Cloud TPU API を有効にする必要があります。手順については、Cloud TPU 環境を設定するをご覧ください。

Google Cloud CLI を使用している場合は、Cloud Shell、Compute Engine VM、またはローカルマシンを使用してコマンドを実行できます。Cloud Shell を使用すると、ソフトウェアをインストールせずに Cloud TPU を操作できます。非アクティブな状態が一定期間続くと、Cloud Shell の接続が解除されます。長時間実行コマンドを実行する場合は、ローカルマシンに Google Cloud CLI をインストールすることをおすすめします。Google Cloud CLI の詳細については、gcloud リファレンスをご覧ください。

Create Node API を使用して Cloud TPU を作成する

Cloud TPU は、gcloud、Google Cloud コンソール、または Cloud TPU API を使用して作成できます。

Cloud TPU を作成するときに、TPU VM イメージ(TPU ソフトウェア バージョン)を指定する必要があります。使用する VM イメージを判断するには、TPU VM イメージをご覧ください。

また、TPU 構成を TensorCore または TPU チップの観点から指定する必要があります。詳細については、システム アーキテクチャのお客様が使用している TPU バージョンのセクションをご覧ください。

gcloud

Create Node API を使用して TPU を作成するには、gcloud compute tpus tpu-vm create コマンドを使用します。特定の内部 IP アドレスまたは外部 IP アドレスを構成するには、外部 IP アドレスと内部 IP アドレスの手順をご覧ください。

次のコマンドは、v4-8 TPU 構成を使用します。

$ gcloud compute tpus tpu-vm create tpu-name \
  --zone=us-central2-b \
  --accelerator-type=v4-8 \
  --version=tpu-software-version

コマンドフラグの説明

zone
Cloud TPU を作成するゾーン
accelerator-type
アクセラレータ タイプでは、作成する Cloud TPU のバージョンとサイズを指定します。TPU のバージョンごとにサポートされているアクセラレータ タイプの詳細については、TPU のバージョンをご覧ください。
version
TPU ソフトウェアのバージョン
shielded-secure-boot(オプション)
セキュアブートを有効にして TPU インスタンスを作成することを指定します。 これにより、暗黙的に Shielded VM インスタンスにされます。 Shielded VM とは をご確認ください。

次のコマンドは、特定のトポロジを持つ TPU を作成します。

$ gcloud compute tpus tpu-vm create tpu-name \
  --zone=us-central2-b \
  --type=v4 \
  --topology=2x2x1 \
  --version=tpu-software-version

必須フラグ

tpu-name
作成する TPU VM の名前。
zone
Cloud TPU を作成するゾーン
type
使用する TPU のバージョン。詳細については、TPU のバージョンをご覧ください。
topology
TPU チップの物理的な配置。各ディメンションのチップの数を指定します。TPU の各バージョンでサポートされているトポロジの詳細については、TPU のバージョンをご覧ください。
version
使用する TPU のソフトウェア バージョン。詳細については、TPU ソフトウェア バージョンをご覧ください。

Console

  1. Google Cloud コンソールの [TPU] ページに移動します。

    [TPU] に移動

  2. [TPU を作成] をクリックします。

  3. [名前] フィールドに、TPU の名前を入力します。

  4. [ゾーン] ボックスで、TPU を作成するゾーンを選択します。

  5. [TPU タイプ] ボックスで、アクセラレータ タイプを選択します。アクセラレータ タイプでは、作成する Cloud TPU のバージョンとサイズを指定します。TPU の各バージョンでサポートされているアクセラレータ タイプの詳細については、TPU のバージョンをご覧ください。

  6. [TPU ソフトウェア バージョン] ボックスで、ソフトウェア バージョンを選択します。Cloud TPU VM の作成時には、インストールされる TPU ランタイム バージョンが TPU ソフトウェア バージョンによって指定されます。詳細については、TPU VM イメージをご覧ください。

  7. [作成] をクリックしてリソースを作成します。

curl

次のコマンドは、curl を使用して TPU を作成します。

$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
runtime_version:'tpu-vm-tf-2.17.0-pjrt', \
network_config: {enable_external_ips: true}, \
shielded_instance_config: { enable_secure_boot: true }}" \
https://tpu.googleapis.com/v2/projects/project-id/locations/us-central2-b/nodes?node_id=node_name

必須項目

runtime_version
使用する Cloud TPU ランタイムのバージョン。
project
: Google Cloud プロジェクトの名前。
zone
Cloud TPU を作成するゾーン
node_name
作成する TPU VM の名前。

起動スクリプトを実行する

TPU VM の作成時に --metadata startup-script フラグを指定すると、各 TPU VM で起動スクリプトを実行できます。次のコマンドは、起動スクリプトを使用して TPU VM を作成します。

$ gcloud compute tpus tpu-vm create tpu-name \
    --zone=us-central2-b \
    --accelerator-type=tpu-type \
    --version=tpu-vm-tf-2.17.0-pjrt \
    --metadata startup-script='#! /bin/bash
      pip3 install numpy
      EOF'

Cloud TPU に接続する

gcloud

SSH を使用して Cloud TPU に接続する

$ gcloud compute tpus tpu-vm ssh tpu-name --zone=zone

単一ホストよりも大きいスライスをリクエストすると、Cloud TPU はホストごとに TPU VM を作成します。ホストあたりの TPU チップの数は、TPU のバージョンによって異なります。

バイナリをインストールするかコードを実行する場合は、tpu-vm ssh command を使用して各 TPU VM に接続します。

$ gcloud compute tpus tpu-vm ssh tpu-name

SSH を使用して特定の TPU VM に接続するには、0 ベースのインデックスに続けて --worker フラグを使用します。

$ gcloud compute tpus tpu-vm ssh tpu-name --worker=1

1 つのコマンドによりすべての TPU VM でコマンドを実行するには、--worker=all フラグと --command フラグを使用します。

$ gcloud compute tpus tpu-vm ssh tpu-name \
  --project=your_project_ID \
  --zone=zone \
  --worker=all \
  --command='pip install "jax[tpu]==0.4.20" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html'

マルチスライスの場合、列挙型の TPU 名を使用して、各スライスの接頭辞と番号を追加した単一の VM でコマンドを実行できます。すべてのスライスのすべての TPU VM でコマンドを実行するには、--node=all--worker=all--command の各フラグと、オプションの --batch-size フラグを使用します。

$ gcloud compute tpus queued-resources ssh ${QUEUED_RESOURCE_ID} \
  --project=project_ID \
  --zone=zone \
  --node=all \
  --worker=all \
  --command='pip install "jax[tpu]==0.4.20" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html' \
  --batch-size=4

Console

Google Cloud コンソールで TPU に接続するには、ブラウザでの SSH を使用します。

  1. Google Cloud コンソールの [TPU] ページに移動します。

    [TPU] に移動

  2. TPU VM のリストで、接続する TPU VM の行にある [SSH] をクリックします。

Cloud TPU リソースを一覧表示する

Cloud TPU は、指定したゾーン内にあるすべてを一覧表示できます。

gcloud

$ gcloud compute tpus tpu-vm list --zone=zone

Console

Google Cloud コンソールの [TPU] ページに移動します。

[TPU] に移動

Cloud TPU に関する情報を取得する

指定した Cloud TPU に関する情報を取得できます。

gcloud

$ gcloud compute tpus tpu-vm describe tpu-name \
  --zone=zone

Console

  1. Google Cloud コンソールの [TPU] ページに移動します。

    [TPU] に移動

  2. Cloud TPU の名前をクリックします。コンソールに Cloud TPU の詳細ページが表示されます。

Cloud TPU リソースを停止する

単一の Cloud TPU を停止することで、VM の構成とソフトウェアを失わずに課金を停止できます。

gcloud

$ gcloud compute tpus tpu-vm stop tpu-name \
  --zone=zone

Console

  1. Google Cloud コンソールの [TPU] ページに移動します。

    [TPU] に移動

  2. Cloud TPU の横にあるチェックボックスをオンにします。

  3. [停止] をクリックします。

Cloud TPU リソースを起動する

停止した Cloud TPU は再開できます。

gcloud

$ gcloud compute tpus tpu-vm start tpu-name \
  --zone=zone

Console

  1. Google Cloud コンソールの [TPU] ページに移動します。

    [TPU] に移動

  2. Cloud TPU の横にあるチェックボックスをオンにします。

  3. [起動] をクリックする。

Cloud TPU を削除する

セッションの終了時に TPU VM スライスを削除します。

gcloud

$ gcloud compute tpus tpu-vm delete tpu-name \
  --project=project-id \
  --zone=zone \
  --quiet

コマンドフラグの説明

zone
Cloud TPU を削除するゾーン

Console

  1. Google Cloud コンソールの [TPU] ページに移動します。

    [TPU] に移動

  2. Cloud TPU の横にあるチェックボックスをオンにします。

  3. [削除] をクリックします。