在 Cloud TPU 上切换软件版本

概览

在 TPU 上运行的框架的软件版本必须与在本地虚拟机上运行的版本相匹配。您现在可以在运行中的 Cloud TPU 上切换此软件版本,而无需删除和重新创建 TPU。您还还可以将 Cloud TPU 配置为使用特定每夜版的软件框架。我们仍然建议您选择这些框架的受支持版本。

用量

切换版本的推荐方法是使用 cloud-tpu-client Python 库。

TensorFlow 的示例用法。

import tensorflow as tf
from cloud_tpu_client import Client

c = Client()
c.configure_tpu_version(tf.__version__, restart_type='ifNeeded')

这会将 Cloud TPU 配置为与在本地虚拟机上运行的 TensorFlow 版本匹配,包括官方版本以及过时的每夜版。

configure_tpu_version API 的 restart_type 参数定义切换版本时的 TPU 重启行为。选项包括“always”(默认)和“ifNeeded”。

  • “always”可用于修复具有诸如 UNHEALTHY_TENSORFLOW, 状态或因之前运行中的资源泄露而返回内存不足 (OOM) 错误的 TPU。设置此选项后,即使未安装新的框架版本,TPU 也会重启。

  • “ifNeeded”非常有用,因为如果运行时已经具有正确的版本时不会重新启动运行时,因此它不会给训练脚本增加任何显著的启动时间。设置此选项后,仅当 TPU 未安装正确的框架版本时,TPU 才会重启。

该库直接与 Cloud TPU 通信,因此该代码需要在同一网络中的虚拟机中运行。建议您在模型的其余部分的代码中运行此代码。

其他软件选项

TensorFlow 包含一个 tf.__version__ 字符串,这是配置正确版本的最简单方式。其他软件选项包括:

  • PyTorch - pytorch-0.1pytorch-0.5-dev20200320pytorch-nightly
  • Jax - tpu_drivertpu_driver0.1-dev20200320tpu_driver_nightly

例如,将 TPU 配置为使用 PyTorch 的最新每夜版运行。

from cloud_tpu_client import Client
c = Client()
c.configure_tpu_version('pytorch-nightly', restart_type='ifNeeded')
c.wait_for_healthy()