CTPU リファレンス

概要

オープンソースの ctpu ツールは、Compute Engine VM と 1 つ以上の Cloud TPU デバイスで構成される数多くの一連のコンピューティング リソースの作成に使用されます。このツールは Cloud Shell にプリインストールされています。

ctpu のドキュメントとコードは GitHub で確認できます。

ctpu ツールは次の構文を使用します。

ctpu <subcommand> <flags> <subcommand> <subcommand args> 

ctpu には以下のサブコマンドがあります。

auth

説明
Cloud TPU の承認情報を設定または表示します。
用途
ctpu auth <flags> <subcommand> <subcommand args>
ctpu auth list --project="my-project" --zone=us-central1-a
ctpu auth list --project my-project --zone us-central1-a
サブコマンド

ctpu auth コマンドでは、次のサブコマンドがサポートされています。

  • add-bigtable - Cloud TPU が Cloud Bigtable で承認されていることを確認します。
  • add-gcs - Cloud TPU が Cloud Storage で承認されていることを確認します。
  • list - Cloud TPU サービス アカウントの承認情報を表示します。
  • commands - すべてのコマンド名を一覧表示します。
  • flags - 既知のすべての最上位フラグを示します。
  • help - サブコマンドとその構文を示します。
省略可能なフラグ

ctpu auth name | project | zone には、以下のオプション コマンドがあります。

delete(rm)

説明
Compute Engine VM と Cloud TPU を削除します。
用途
ctpu rm <flags>
ctpu rm --zone=us-central1-b

help

説明
ctpu のすべてのサブコマンドと最上位フラグを一覧表示します。
用途
ctpu help
ctpu help <subcommand>
ctpu help   // list all ctpu subcommands and top level flags

ctpu help auth   // list all flags that can be used with `ctpu auth`
ctpu help up   // list all flags that can be used with `ctpu up`

list(ls)

説明
指定したゾーン内のすべての Compute Engine VM と Cloud TPU を一覧表示します。
用途
ctpu ls <flags>
ctpu ls --zone=us-central1-b

pause(zz)

説明

Compute Engine VM を停止し、Cloud TPU を削除します。ctpu up を実行するまで、Cloud TPU の使用に対する課金が停止されます。

Cloud TPU を確実に停止させるには、コマンドラインで Cloud TPU の名前とゾーンを指定する必要があります。

用途
ctpu pause <name, zone>
ctpu pause --name=my-tpu --zone=us-central1-a  // pause the named TPU
in the specified zone
説明
Cloud TPU 名、プロジェクト名、ゾーンの現在の構成を画面上に出力します。
ctpu print-config

quota

説明
割り当ての確認先の URL を表示します。
用途
ctpu quota
ctpu quota
Output: Quotas cannot currently be displayed within ctpu.
To view your quota, open <url>
Request additional quota from <url>

restart

説明

まだ実行中の状態(ctpu status に示されます)になっているものの、ハードウェアの問題が原因で稼働を停止した Cloud TPU を再起動します。TPU が停止状態の場合は、gcloud compute tpu start を使用するか、Cloud Console の [Compute Engine] > [TPU] ページにある [開始] ボタンを使用します。

プリエンプトされた Cloud TPU は、restart では再起動されません。Cloud TPU がプリエンプトされた場合は、ctpu deletectpu up を実行する必要があります。

用途
ctpu restart <flags>
ctpu restart --zone=us-central1-a

status(st)

説明

GCP API(デフォルト ゾーンのみ)のクエリを実行して、Cloud TPU と Compute Engine VM の現在のステータスを確認します。

用途

ctpu st

ctpu st --zone=us-central1-a
Status message:
  Your cluster is running!
    Compute Engine VM:  RUNNING
    Cloud TPU:     RUNNING 

tpu-locations

説明
TPU タイプを利用できるすべてのゾーンを一覧表示します。
使用方法
ctpu tpu-locations
出力
Cloud TPU Locations:
    asia-east1-c
    europe-west4-a
    us-central1-a
    us-central1-b
    us-central1-c

tpu-sizes

説明
指定したゾーン内で利用できるすべての TPU サイズを一覧表示します。一部のサイズは特定のゾーンでのみ使用できます。(デフォルト = デフォルト ゾーン)
用途
tpu-sizes <zone>
ctpu tpu-sizes --zone=us-central1-a

up

説明

ctpu リソースセットを起動します。プロジェクトで初めて ctpu up を実行する際は、SSH 認証鍵の伝播や API の開始などのタスクをが実行されるため、通常よりも時間がかかります。

  • Compute Engine と Cloud TPU サービスを有効にします。
  • TensorFlow の最新の安定版がプリインストールされた Compute Engine VM を作成します。
  • 使用ロケーションに基づいてデフォルト ゾーン(us-central1-b など)を割り当てます。
  • Cloud TPU の名前を環境変数(TPU_NAME)として Compute Engine VM に渡します。
  • 特定の IAM 役割を Cloud TPU サービスアカウントに付与することで、Cloud TPU が Google Cloud プロジェクトの必要なリソースにアクセスできるようにします。
  • その他数多くのチェックを行います。
  • 新しい Compute Engine VM にログインします。シェル プロンプトが username@project から username@tpuname に代わります。

ctpu up は必要に応じて何度でも実行できます。たとえば、Compute Engine VM への SSH 接続が切断された場合は、ctpu up を実行して接続を復元します。Compute Engine がデフォルト以外のゾーン内にある場合、そのゾーンを指定する必要があります。次に例を示します。

$ ctpu up --zone=us-central1-a
使用方法
ctpu up <flags>
ctpu up --tpu-size=v2-8 --disk-size-gb=320 --preemptible
フラグ

--disk-size-gb
Compute Engine VM のルート ボリュームのサイズを構成します。値は整数にする必要があります(デフォルト = 250)。

--dry-run
変更は行わずに、実行された場合の結果のみを出力します。

--forward-agent
Compute Engine VM への SSH 接続時に、SSH エージェント転送を有効にします。SSH エージェント転送により共有リポジトリ(GitHub など)へのアクセスが可能になり、Compute Engine VM 上に秘密鍵を格納する必要がなくなります(デフォルト = true)。

--forward-ports
Compute Engine VM からローカルマシンに有用なポートを自動的に転送します。転送されるポートは、6006(TensorBoard)、8888(Jupyter ノートブック)、8470(TPU ポート)、8466(TPU プロファイラ ポート)です。(デフォルト = true)

--gce-image
自動選択された Compute Engine イメージをオーバーライドします。このフラグは、インストールされた TensorFlow に用意されているイメージではなく、独自のカスタム イメージを使用する場合に使用します。

--gcp-network
Cloud TPU および関連する VM を作成するネットワークを指定します。ネットワークの詳細については、Virtual Private Cloud(VPC)ネットワークの概要をご覧ください。(デフォルト = デフォルト ネットワーク)

--log-http
HTTP リクエストとそれに対するレスポンスのペアの完全な内容を出力します。このフラグを true に設定すると、出力が有効になります。このフラグは、ctpu に対するバグレポートの提出のためにログ出力が必要な場合に使用します。詳しくは、ctpu README をご覧ください。

--machine-type
Compute Engine VM のサイズを構成します。マシンタイプの完全なリストについては、マシンタイプのページをご覧ください。(デフォルト = n1-standard-2)

--name
VM と Cloud TPU に使用する名前をオーバーライドします(デフォルト = ユーザー名)。

--noconf
確認をスキップします。

--preemptible
プリエンプティブル Cloud TPU ノードを作成します。プリエンプティブル Cloud TPU は、非プリエンプティブル Cloud TPU と比較して時間あたりの費用が少なくて済みます。Cloud TPU サービスは、いつでもプリエンプティブル デバイスを終了できます。(デフォルト = 非プリエンプティブル)。

--preemptible-vm
プリエンプティブル Compute Engine VM を作成します。プリエンプティブル VM は、非プリエンプティブル VM と比較して時間あたりの費用が少なくて済みます。Compute Engine サービスでは、VM インスタンスをいつでも終了できます(デフォルト = 非プリエンプティブル)。

--print-welcome
常にウェルカム メッセージを出力します。

--project
VM と TPU を割り当てるときに使用する GCP プロジェクト名をオーバーライドします。cloud config または Compute Engine メタデータに含まれる値(通常はプロジェクト名)を指定します。適切な値が見つからない場合は、コマンドラインで値を指定する必要があります。

--tf-version
Compute Engine VM と Cloud TPU の作成時に使用する TensorFlow のバージョンを設定します(デフォルト = 最新の安定版リリース)。

--tpu-only
Cloud TPU のみを割り当てます。使用できる VM が既存の場合にのみ、このフラグを使用します。

--tpu-size
Cloud TPU のサイズとハードウェア バージョンを構成します。

--use-dl-images
TPU マシンイメージではなく、ディープ ラーニング VM イメージ(https://cloud.google.com/deep-learning-vm/ にあるドキュメントを参照)を使用します(https://cloud.google.com/deep-learning-vm/ にあるドキュメントを参照)(デフォルト = TPU マシンイメージ)。

--vm-only
VM のみを割り当てます。これは、TPU の設定と準備ができていない場合のみ使用します。

--zone
VM と Cloud TPU の割り当て時に使用する Compute Engine ゾーンをオーバーライドします。このリストを表示するには、コマンドラインで ctpu help up を実行します。

バージョン

説明
インストールされている ctpu のバージョンを出力します。
用途
ctpu version
出力
ctpu version
Output: ctpu version: 1.9