TPU使用说明

简介: 1 TPU分类和收费标准1.1 分类和计费说明地区抢占式TPUCloud TPU美国$1.35/hour$4.5/hour欧洲$1.485/hour$4.95/hour亚太区地区$1.566/hour$5.22/hour抢占式 TPU 是 Cloud TPU 在需要将资源分配给另一项任务时,可以随时终止(抢占)的 TPU。

1 TPU分类和收费标准

1.1 分类和计费说明

地区 抢占式TPU Cloud TPU
美国 $1.35/hour $4.5/hour
欧洲 $1.485/hour $4.95/hour
亚太区地区 $1.566/hour $5.22/hour
  • 抢占式 TPU 是 Cloud TPU 在需要将资源分配给另一项任务时,可以随时终止(抢占)的 TPU。抢占式 TPU 的费用要比普通 TPU 低廉得多。
  • TPU 以 1 秒钟为增量单位进行计费。

为了连接到 TPU,我们必须配置一台虚拟机(单独结算)。要注意的是虚拟机和TPU是分别计费的

也就是说仅在启动 TPU 之后,Cloud TPU 的计费才会开始;在停止或删除 TPU 之后,计费随即停止。运行 ctpu pausegcloud compute tpus stop 即可停止 TPU。同样,只有在虚拟机激活之后,我们才会向您收取虚拟机费用。

如果虚拟机已停止,而 Cloud TPU 未停止,您需要继续为 Cloud TPU 付费。如果 Cloud TPU已停止或删除,而虚拟机未停止,则您需要继续为虚拟机付费。

1.2 实用查询链接

1.3 价格计算实例

以下示例解释了如何计算一项训练作业的总费用,该作业使用美国区域的 TPU 资源和 Compute Engine 实例。

一家机器学习研究机构通过创建 Compute Engine 实例预配了一台虚拟机,他们选择的是 n1-standard-2 机器类型。他们还创建了一项 TPU 资源,其 Compute Engine 实例和 TPU 资源的累计使用时间都是 10 小时。为了计算该训练作业的总费用,这家机器学习研究机构必须将以下几项相加在一起:

  • 所有 Compute Engine 实例的总费用
  • 所有 Cloud TPU 资源的总费用
资源 每小时每台机器的价格(美元 ) 机器数量 计费小时数 各资源总费用 训练作业总费用
Compute Engine n1-standard-2 实例 $0.095 1 10 $0.95 _
Cloud TPU 资源 $4.50 1 10 $45.00 _
$45.95

使用抢占式 TPU 的价格示例

在以下示例中,使用的资源和时长与上例相同,但这一次该研究机构决定使用抢占式 TPU 来节省成本。抢占式 TPU 的费用是每小时 $1.35,而非普通 TPU 的每小时 $4.50。

资源 每小时每台机器的价格(美元 ) 机器数量 计费小时数 各资源总费用 训练作业总费用
Compute Engine n1-standard-2 实例 $0.095 1 10 $0.95 -
抢占式 TPU $1.35 1 10 $13.50 -
$14.45

2 使用步骤

2.1 创建GCP project

点击链接Google Cloud Platform之后会进入这样一个界面:

点击创建项目,输入项目名,等一会项目就会创建成功,有时可能需要刷新一下网页项目才会出现。

img_d0830a67f349d3deca359be3dac22bd3.png

2.2 创建Cloud Storage bucket

Cloud Storage 简单来说就是用来存储模型训练数据和训练结果的。官方的解释是它是适用于非结构化对象的一种功能强大且经济有效的存储解决方案,非常适合托管实时网页内容、存储用于分析的数据、归档和备份等各种服务。

注意:要想使用Cloud Storage,需要启用结算功能。

2.2.1 创建存储分区

存储分区用于保存您要在 Cloud Storage中存储的对象(任何类型的文件)。

  • 首先在控制台左侧选择 【存储】(如下图示(中英文))就能进入Cloud Storage页面了,
img_3e3ca729e55322d9474db24e2b135888.png img_0bdcdd5c29d83be31b700ad8bf607869.png
  • 之后点击 【创建存储分区】


    img_6d27333bc0fe196a1c9544f37b62402c.png
  • 输入storage名即可创建完成,注意名称需要是unique的,否则无法创建成功。

img_367d3e9893578b4c0ad0902fb87147cf.png

2.2.2 上传和共享对象

要开始使用您的存储分区,只需上传对象并开放其访问权限即可。

2.2.3 清理

在最后一步中,您将删除之前为本教程创建的存储分区和对象。

2.3 打开Cloud Shell,使用ctpu工具

Shell在控制台右上角,如下图示:


img_ae24b3f58e6a84f6b282e103f91938f2.png

输入ctpu print-config可以查看配置信息。我的输入结果是这样的:

ctpu configuration:
        name: hkbuautoml
        project: test01-219602
        zone: us-central1-b
If you would like to change the configuration for a single command invocation, please use the command line flags.
img_329740e9d765483bd2aa5d0b7af9e745.png

2.3.1 创建Computer Engine VM和TPU

命令为:ctpu up [optional: --name --zone]

注意: name只能用小写字母和数字组成,大写字母或者其他字符都会报错。

这里我创建了一个名为tputest的tpu。输入y确认创建。


img_465dc2b667272c36eccca6cd495f127c.png


上面的ctpu up命令主要做了如下几件事:

  • 开启Computer Engine和Cloud TPU服务
  • 创建预装有最新稳定版本TensorFlow的Computer Engine VM。其中默认的Zone是us-central1-b
  • 使用TensorFlow的相应版本创建Cloud TPU,并将Cloud TPU的名称作为环境变量( TPU _ NAME )传递给Computer Engine VM。
  • 通过向Cloud TPU服务帐户授予特定的IAM角色(见下图),确保您的Cloud TPU可以从GCP项目中获得所需的资源。
  • 执行其他的检查。
  • 将您登录到新的Compute Engine VM。

2.3.2 检查是否登录成功

当成功登录VM后,我们可以看到shell prompt已经由username@project 转变成username@tpuname

img_3f6382da36d70ce4f18b0b492f188abf.png

2.3.3 运行一个TensorFlow程序

  • 创建代码文件
    pico cloud-tpu.py

示例代码如下

import os
import tensorflow as tf
from tensorflow.contrib import tpu
from tensorflow.contrib.cluster_resolver import TPUClusterResolver

def axy_computation(a, x, y):
  return a * x + y

inputs = [
    3.0,
    tf.ones([3, 3], tf.float32),
    tf.ones([3, 3], tf.float32),
]

tpu_computation = tpu.rewrite(axy_computation, inputs)

tpu_grpc_url = TPUClusterResolver(
    tpu=[os.environ['TPU_NAME']]).get_master()

with tf.Session(tpu_grpc_url) as sess:
  sess.run(tpu.initialize_system())
  sess.run(tf.global_variables_initializer())
  output = sess.run(tpu_computation)
  print(output)
  sess.run(tpu.shutdown_system())

print('Done!')

运行代码,结果如下:

[array([[4., 4., 4.],
       [4., 4., 4.],
       [4., 4., 4.]], dtype=float32)]
Done!

2.3.4 释放资源

代码跑完后切记要释放资源,否则系统会继续计费。释放资源方法如下:

1. 断开与Computer Engine VM的连接

(vm)$ exit

成功断开之后shell prompt会变成项目名而不是VM名。

2. 删除Computer Engine VM和Cloud TPU

$ ctpu delete

!!!特别注意:如果在创建VM的时候指定了name,name在删除的时候同业也要指定name。我在删除的时候没有加name,虽然命令行结果显示删除成功,但是后面我在控制台查看资源使用情况,发现VM实例依旧存在。所以最保险的办法是命令输完后,去控制台看看实例是否还存在。


img_15a98a422ecbf48c173547d850f5bd58.png
img_4e3c11e0ac71c5b1df61e56704e21521.png

3. 删除Storage

命令为:gsutil rm -r gs://Your-storage-name

img_6a0f0864091fca6ea2463537a6799d48.png

更详细的资料可参考官方文档



MARSGGBO原创





2018-10-16



目录
相关文章
|
机器学习/深度学习 并行计算 图形学
CPU、GPU、TPU、NPU等到底是什么?
CPU、GPU、TPU、NPU等到底是什么?
2728 3
|
文字识别 并行计算 语音技术
ModelScope问题之下载模型文件报错如何解决
ModelScope模型报错是指在使用ModelScope平台进行模型训练或部署时遇到的错误和问题;本合集将收集ModelScope模型报错的常见情况和排查方法,帮助用户快速定位问题并采取有效措施。
3221 3
|
机器学习/深度学习 弹性计算 TensorFlow
阿里云GPU加速:大模型训练与推理的全流程指南
随着深度学习和大规模模型的普及,GPU成为训练和推理的关键加速器。本文将详细介绍如何利用阿里云GPU产品完成大模型的训练与推理。我们将使用Elastic GPU、阿里云深度学习镜像、ECS(云服务器)等阿里云产品,通过代码示例和详细说明,带你一步步完成整个流程。
3358 0
|
网络协议 Linux Android开发
告别无法访问的github(附解决方案)
最近一行在使用github的时候又登不上去了,挂着NPV都没用 据说是某些不可描述的有关组织机构对该网站的DNS污染或者随机丢包造成的
22109 5
告别无法访问的github(附解决方案)
|
机器学习/深度学习 缓存 并行计算
NVIDIA Tesla GPU系列P4、T4、P40以及V100参数性能对比
NVIDIA Tesla系列GPU适用于高性能计算(HPC)、深度学习等超大规模数据计算,Tesla系列GPU能够处理解析PB级的数据,速度比使用传统CPU快几个数量级,NVIDIA Tesla GPU系列P4、T4、P40以及V100是Tesla GPU系列的明星产品,云服务器吧分享NVIDIA.
83540 1
conda常用操作和配置镜像源
conda常用操作和配置镜像源
29736 0
|
机器学习/深度学习 人工智能 并行计算
【人工智能】CPU、GPU与TPU:人工智能领域的核心处理器概述
在人工智能和计算技术的快速发展中,CPU(中央处理器)、GPU(图形处理器)和TPU(张量处理器)作为核心处理器,各自扮演着不可或缺的角色。它们不仅在性能上各有千秋,还在不同的应用场景中发挥着重要作用
842 2
|
5月前
|
存储 机器学习/深度学习 人工智能
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
本文探讨了多模态RAG系统的最优实现方案,通过模态特定处理与后期融合技术,在性能、准确性和复杂度间达成平衡。系统包含文档分割、内容提取、HTML转换、语义分块及向量化存储五大模块,有效保留结构和关系信息。相比传统方法,该方案显著提升了复杂查询的检索精度(+23%),并支持灵活升级。文章还介绍了查询处理机制与优势对比,为构建高效多模态RAG系统提供了实践指导。
1441 0
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
|
10月前
|
搜索推荐 物联网 PyTorch
Qwen2.5-7B-Instruct Lora 微调
本教程介绍如何基于Transformers和PEFT框架对Qwen2.5-7B-Instruct模型进行LoRA微调。
10763 34
Qwen2.5-7B-Instruct Lora 微调
|
8月前
|
机器学习/深度学习 人工智能 API
大模型推理服务全景图
大模型推理服务全景图