CTPU 参考

概览

ctpu 开源工具用于创建一组计算资源,其中包含一个 Compute Engine 虚拟机以及一个或多个 Cloud TPU 设备。该工具已预装在 Cloud Shell 中。

您可以在 GitHub 上找到 ctpu 的文档和代码

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 虚拟机和 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 虚拟机和 Cloud TPU。
使用情况
ctpu ls <flags>
示例
ctpu ls --zone=us-central1-b

pause (zz)

说明

停止 Compute Engine 虚拟机并删除 Cloud TPU。停止 Cloud TPU 的用量计费,直到运行 ctpu up 为止。

为确保停止 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

说明
显示您可以查看配额的网址。
使用情况
ctpu quota
示例
ctpu quota
Output: Quotas cannot currently be displayed within ctpu.
To view your quota, open <url>
Request additional quota from <url>

restart

说明

重启仍处于“RUNNING”(正在运行)状态(由 ctpu status 命令显示),但由于硬件问题停止运行的 Cloud TPU。如果 TPU 处于“已停止”状态,请使用 gcloud compute tpu start 或 Cloud 控制台中 Compute Engine > TPU 页面上的“开始”按钮。

restart 不会重启抢占式 Cloud TPU。如果您的 Cloud TPU 已被抢占,则需要运行 ctpu deletectpu up

使用情况
ctpu restart <flags>
示例
ctpu restart --zone=us-central1-a

status (st)

说明

查询 GCP API(仅限默认地区)以确定 Cloud TPU 和 Compute Engine 虚拟机的当前状态。

使用情况

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 虚拟机。
  • 根据您的位置分配默认地区,例如 us-central1-b
  • 将 Cloud TPU 的名称作为环境变量 (TPU_NAME) 传递给 Compute Engine 虚拟机。
  • 向您的 Cloud TPU 服务账号授予特定的 IAM 角色,以确保您的 Cloud TPU 能够访问所需的 Google Cloud 项目资源。
  • 执行其他一些检查。
  • 将您登录到新的 Compute Engine 虚拟机。Shell 提示符会从 username@project 更改为 username@tpuname

您可以根据需要随时运行 ctpu up。例如,如果您与 Compute Engine 虚拟机的 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 虚拟机的根卷大小。 值必须是整数。(默认值为 250)

--dry-run
不进行更改;只显示可能已发生的情况。

--forward-agent
通过 SSH 连接到 Compute Engine 虚拟机时,启用 SSH 代理转发。 借助 SSH 代理转发,您无需在 Compute Engine 虚拟机上放置私钥,即可访问共享代码库(例如 GitHub)。(默认值为 true)

--forward-ports
将有用的端口自动从 Compute Engine 虚拟机转发到本地机器。转发的端口包括:6006 (TensorBoard)、8888(Jupyter 笔记本)、8470(TPU 端口)、8466(TPU 分析器端口)。(默认值为 true)

--gce-image
替换自动选择的 Compute Engine 映像。如果您使用的是自己的自定义映像,而不是安装的 TensorFlow 提供的映像,请使用此标志。

--gcp-network
指定应在其中创建 Cloud TPU 和关联虚拟机的网络。如需了解这些网络,请参阅 Virtual Private Cloud (VPC) 网络概览。(默认值为默认网络)

--log-http
显示 HTTP 请求-响应对的完整内容。如需启用显示,请将此标志设置为 true。如果您需要记录输出的内容以提交 ctpu 错误报告,请使用此标志。如需了解详情,请参阅 ctpu README 文件

--machine-type
配置 Compute Engine 虚拟机的大小。Cloud 机器类型页面提供了机器类型的完整列表。(默认值为 n1-standard-2)

--name
替换要用于虚拟机和 Cloud TPU 的名称。(默认值为您的用户名)

--noconf
跳过确认。

--preemptible
创建抢占式 Cloud TPU 节点。抢占式 Cloud TPU 每小时的费用比非抢占式 Cloud TPU 的低。Cloud TPU 服务可以随时退出抢占式设备。(默认值为非抢占式)

--preemptible-vm
创建抢占式 Compute Engine 虚拟机。抢占式虚拟机每小时的费用比非抢占式虚拟机的低。Compute Engine 服务可以随时退出虚拟机实例。(默认值为非抢占式)

--print-welcome
始终显示欢迎辞。

--project
替换要在分配虚拟机和 TPU 时使用的 GCP 项目名称。指定 cloud config 或 Compute Engine 元数据中的一个值,通常是项目名称。如果找不到合适的值,必须在命令行中提供一个值。

--tf-version
设置创建 Compute Engine 虚拟机和 Cloud TPU 时使用的 TensorFlow 版本。(默认值为最新稳定版)

--tpu-only
仅分配 Cloud TPU;请仅在您已拥有虚拟机时使用此标志。

--tpu-size
配置 Cloud TPU 的大小和硬件版本。

--use-dl-images
使用深度学习虚拟机映像(请参阅文档:https://cloud.google.com/deep-learning-vm/),而不是 TPU 机器映像。(默认值为 TPU 机器映像)

--vm-only
仅分配虚拟机;如果您还未准备好设置和付费使用 TPU,请使用此标志。

--zone
替换要在分配虚拟机和 Cloud TPU 时使用的 Compute Engine 地区。在命令行上,运行 ctpu help up 可查看该列表。

版本

说明
输出安装的 ctpu 的版本。
使用情况
ctpu version
输出
ctpu version
Output: ctpu version: 1.9