GCP TPU 笔记

本文主要补充一些官方可能不会提到的东西

官方教程

设置帐号和 Cloud TPU 项目

快速入门

设置帐号和 Cloud TPU 项目

GCP gcloud SDK

Use TPUs

强烈推荐上面链接的官方教程, 简单易懂

补充

环境变量设置

如果你需要在你的程序中使用 TPU, 那么你需要设置环境变量

export TPU_NAME={your-tpu-name}

TPU内存详解

在我看到的所有官方教程中, 在TPU上都是使用的TPUStrategyMirroredStrategy, 这也就意味着在每个TPU逻辑设备上都存有一个模型

官方文档 中可以看到比如TPUv3-8标注的总内存是128 GiB, 因为有8个逻辑设备, 每个逻辑设备上都有一个模型, 也就意味着训练时模型不能大于128//8=16 GiB

同理在TPUv2-8上模型不能大于8 GiB

更意味着使用更大的TPU例如v3-64并不能解决模型内存过大问题

关于如何将模型拆开放在逻辑设备上训练我暂时没有找到相关的文档

关闭默认日志(可选)

TPU 运行过程中会产生大量日志, 如果不关闭默认日志, 可能会花掉你很多钱

有关TPU日志更多的信息, Cloud TPU 审核日志, 日志排除

关闭方法: 左侧菜单 -> Logging -> 日志路由器 -> 关闭名称为 _Default 的日志路由器接收器

我自己几天时间就产生了74GiB的日志, 还是有点恐怖的

一些命令笔记(方便日后查找)

修改机器配置

gcloud compute instances set-machine-type instance1 –zone=europe-west4-a –custom-cpu=1 –custom-memory=6656MB –custom-extensions –custom-vm-type=n1

TPU管理

gcloud compute tpus create my-tpu --zone=europe-west4-a --accelerator-type='v3-8' --version='2.4.1'

gcloud compute tpus stop my-tpu --zone=europe-west4-a

同时创建机器和TPU

export PROJECT_ID={your-project-id}

gcloud config set project $PROJECT_ID

1
2
3
4
5
6
7
gcloud compute tpus execution-groups create \
--disk-size=50GB \
--name=instance1 \
--zone=europe-west4-a \
--tf-version=2.4.1 \
--machine-type=n1-standard-1 \
--accelerator-type=v3-8

gcloud compute ssh mnist-tutorial --zone=europe-west4-a

杂七杂八

install rar

https://www.rarlab.com/download.htm

unrar x test.rar