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 環境を設定するをご覧ください。
Cloud クライアント ライブラリのいずれかを使用している場合は、使用している言語の設定手順に沿って操作します。
すべての gcloud CLI コマンドで
--project
フラグを設定しないようにするには、gcloud config set
コマンドを使用して、有効な構成でプロジェクト ID を設定します。gcloud config set project project-id
project-id は、 Google Cloud プロジェクトの名前に置き換えます。
Create Node API を使用して Cloud TPU を作成する
Cloud TPU は、gcloud
、 Google Cloud コンソール、または Cloud TPU API を使用して作成できます。
Cloud TPU を作成するときに、TPU ソフトウェア バージョン(ランタイム バージョンとも呼ばれます)を指定する必要があります。使用するソフトウェア バージョンを決定するには、TPU ソフトウェア バージョンをご覧ください。
また、TPU 構成を TensorCore 数または TPU チップ数で指定する必要があります。詳細については、システム アーキテクチャで、使用している TPU バージョンのセクションをご覧ください。
gcloud
Create Node API を使用して TPU を作成するには、gcloud compute tpus tpu-vm create
コマンドを使用します。特定の内部または外部 IP アドレスを構成するには、外部 IP アドレスと内部 IP アドレスの手順をご覧ください。
次のコマンドでは、v5litepod-8(v5e)TPU を使用します。
$ gcloud compute tpus tpu-vm create tpu-name \ --zone=us-central2-b \ --accelerator-type=v5litepod-8 \ --version=tpu-software-version
コマンドフラグの説明
zone
- Cloud TPU を作成するゾーン。
accelerator-type
- アクセラレータ タイプでは、作成する Cloud TPU のバージョンとサイズを指定します。TPU の各バージョンでサポートされているアクセラレータ タイプの詳細については、TPU のバージョンをご覧ください。
version
- TPU ソフトウェアのバージョン。
shielded-secure-boot
(オプション)- セキュアブートを有効にして TPU インスタンスが作成することを指定します。これにより、TPU インスタンスが暗黙的に Shielded VM インスタンスになります。詳細については、Shielded VM とはをご覧ください。
コンソール
Google Cloud コンソールで、[TPU] ページに移動します。
[TPU を作成] をクリックします。
[名前] フィールドに、TPU の名前を入力します。
[ゾーン] ボックスで、TPU を作成するゾーンを選択します。
[TPU タイプ] ボックスで、アクセラレータ タイプを選択します。アクセラレータ タイプでは、作成する Cloud TPU のバージョンとサイズを指定します。TPU の各バージョンでサポートされているアクセラレータ タイプの詳細については、TPU のバージョンをご覧ください。
[TPU ソフトウェア バージョン] ボックスで、ソフトウェア バージョンを選択します。Cloud TPU VM の作成時には、この TPU ソフトウェア バージョンによって、インストールされる TPU ランタイム バージョンが指定されます。詳細については、TPU ソフトウェア バージョンをご覧ください。
[作成] をクリックしてリソースを作成します。
curl
次のコマンドでは、curl
を使用して TPU を作成します。
$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v5litepod-8', \ runtime_version:'tpu-vm-tf-2.17.1-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-id
- 登録済みの Google Cloud プロジェクトの名前。
zone
- Cloud TPU を作成するゾーン。
node_name
- 作成する TPU VM の名前。
Java
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
起動スクリプトを実行する
gcloud
TPU VM の作成時に --metadata startup-script
フラグを指定すると、各 TPU VM で起動スクリプトを実行できます。次のコマンドでは、起動スクリプトを使用して TPU VM を作成します。
$ gcloud compute tpus tpu-vm create tpu-name \ --zone=us-central2-b \ --accelerator-type=v5litepod-8 \ --version=tpu-software-version \ --metadata startup-script='#! /bin/bash pip3 install numpy EOF'
Java
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Cloud TPU に接続する
Cloud TPU には SSH を使用して接続できます。
SSH を使用して TPU VM に接続できない場合は、TPU VM に外部 IP アドレスがないことが原因である可能性があります。外部 IP アドレスのない TPU VM にアクセスするには、パブリック IP アドレスを持たない TPU VM に接続するの手順を行ってください。
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 --zone=zone
SSH を使用して特定の TPU VM に接続するには、0 ベースのインデックスに続けて --worker
フラグを使用します。
$ gcloud compute tpus tpu-vm ssh tpu-name --zone=zone --worker=1
単一のコマンドですべての TPU VM でコマンドを実行するには、--worker=all
フラグと --command
フラグを使用します。
$ gcloud compute tpus tpu-vm ssh tpu-name \ --zone=zone \ --worker=all \ --command='pip install "jax[tpu]==0.4.20" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html'
マルチスライスの場合、単一の VM でコマンドを実行するには、列挙型の TPU 名を使用し、各スライスの接頭辞と番号を追加します。すべてのスライスのすべての TPU VM でコマンドを実行するには、--node=all
、--worker=all
、--command
の各フラグと、オプションの --batch-size
フラグを使用します。
$ gcloud compute tpus queued-resources ssh ${QUEUED_RESOURCE_ID} \ --zone=zone \ --node=all \ --worker=all \ --command='pip install jax[tpu] -f https://storage.googleapis.com/jax-releases/libtpu_releases.html' \ --batch-size=4
コンソール
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
コンソール
Google Cloud コンソールで、[TPU] ページに移動します。
Java
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Cloud TPU に関する情報を取得する
指定した Cloud TPU に関する情報を取得できます。
gcloud
$ gcloud compute tpus tpu-vm describe tpu-name \ --zone=zone
コンソール
Google Cloud コンソールで、[TPU] ページに移動します。
Cloud TPU の名前をクリックします。コンソールに Cloud TPU の詳細ページが表示されます。
Java
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Cloud TPU リソースを停止する
単一の Cloud TPU を停止することで、VM の構成とソフトウェアを失わずに課金を停止できます。
gcloud
$ gcloud compute tpus tpu-vm stop tpu-name \ --zone=zone
コンソール
Google Cloud コンソールで、[TPU] ページに移動します。
Cloud TPU の横にあるチェックボックスをオンにします。
[
停止] をクリックします。
Java
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Cloud TPU リソースを起動する
停止した Cloud TPU を開始できます。
gcloud
$ gcloud compute tpus tpu-vm start tpu-name \ --zone=zone
コンソール
Google Cloud コンソールで、[TPU] ページに移動します。
Cloud TPU の横にあるチェックボックスをオンにします。
[
起動] をクリックします。
Java
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Cloud TPU を削除する
セッションの終了時に TPU VM スライスを削除します。
gcloud
$ gcloud compute tpus tpu-vm delete tpu-name \ --zone=zone \ --quiet
コマンドフラグの説明
zone
- Cloud TPU を削除するゾーン。
quiet
- gcloud CLI コマンドを実行するときに、すべての対話型プロンプトを無効にします。
コンソール
Google Cloud コンソールで、[TPU] ページに移動します。
Cloud TPU の横にあるチェックボックスをオンにします。
[
削除] をクリックします。
Java
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Cloud TPU に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。