TPU リソースを管理する
このページでは、Create Node API を使用して Cloud TPU を作成、一覧表示、停止、開始、削除する方法および、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
Google Cloud コンソールの [TPU] ページに移動します。
[TPU を作成] をクリックします。
[名前] フィールドに、TPU の名前を入力します。
[ゾーン] ボックスで、TPU を作成するゾーンを選択します。
[TPU タイプ] ボックスで、アクセラレータ タイプを選択します。アクセラレータ タイプでは、作成する Cloud TPU のバージョンとサイズを指定します。TPU の各バージョンでサポートされているアクセラレータ タイプの詳細については、TPU のバージョンをご覧ください。
[TPU ソフトウェア バージョン] ボックスで、ソフトウェア バージョンを選択します。Cloud TPU VM の作成時には、インストールされる TPU ランタイム バージョンが TPU ソフトウェア バージョンによって指定されます。詳細については、TPU VM イメージをご覧ください。
[作成] をクリックしてリソースを作成します。
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.18.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.18.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 を使用します。
Google Cloud コンソールの [TPU] ページに移動します。
TPU VM のリストで、接続する TPU VM の行にある [SSH] をクリックします。
Cloud TPU リソースを一覧表示する
Cloud TPU は、指定したゾーン内にあるすべてを一覧表示できます。
gcloud
$ gcloud compute tpus tpu-vm list --zone=zone
Console
Google Cloud コンソールの [TPU] ページに移動します。
Cloud TPU に関する情報を取得する
指定した Cloud TPU に関する情報を取得できます。
gcloud
$ gcloud compute tpus tpu-vm describe tpu-name \ --zone=zone
Console
Google Cloud コンソールの [TPU] ページに移動します。
Cloud TPU の名前をクリックします。コンソールに Cloud TPU の詳細ページが表示されます。
Cloud TPU リソースを停止する
単一の Cloud TPU を停止することで、VM の構成とソフトウェアを失わずに課金を停止できます。
gcloud
$ gcloud compute tpus tpu-vm stop tpu-name \ --zone=zone
Console
Google Cloud コンソールの [TPU] ページに移動します。
Cloud TPU の横にあるチェックボックスをオンにします。
[
停止] をクリックします。
Cloud TPU リソースを起動する
停止した Cloud TPU は再開できます。
gcloud
$ gcloud compute tpus tpu-vm start tpu-name \ --zone=zone
Console
Google Cloud コンソールの [TPU] ページに移動します。
Cloud TPU の横にあるチェックボックスをオンにします。
[起動] をクリックする。
Cloud TPU を削除する
セッションの終了時に TPU VM スライスを削除します。
gcloud
$ gcloud compute tpus tpu-vm delete tpu-name \ --project=project-id \ --zone=zone \ --quiet
コマンドフラグの説明
zone
- Cloud TPU を削除するゾーン。
Console
Google Cloud コンソールの [TPU] ページに移動します。
Cloud TPU の横にあるチェックボックスをオンにします。
[
削除] をクリックします。