天天看點

TPU使用說明1 TPU分類和收費标準2 使用步驟

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 pause

gcloud 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 $45.00
$45.95

使用搶占式 TPU 的價格示例

在以下示例中,使用的資源和時長與上例相同,但這一次該研究機構決定使用搶占式 TPU 來節省成本。搶占式 TPU 的費用是每小時 $1.35,而非普通 TPU 的每小時 $4.50。

-
搶占式 TPU $1.35 $13.50
$14.45

2 使用步驟

2.1 建立GCP project

點選連結

Google Cloud Platform

之後會進入這樣一個界面:

點選建立項目,輸入項目名,等一會項目就會建立成功,有時可能需要重新整理一下網頁項目才會出現。

TPU使用說明1 TPU分類和收費标準2 使用步驟

2.2 建立Cloud Storage bucket

Cloud Storage 簡單來說就是用來存儲模型訓練資料和訓練結果的。官方的解釋是它是适用于非結構化對象的一種功能強大且經濟有效的存儲解決方案,非常适合托管實時網頁内容、存儲用于分析的資料、歸檔和備份等各種服務。

注意:要想使用Cloud Storage,需要啟用結算功能。

2.2.1 建立存儲分區

存儲分區用于儲存您要在 Cloud Storage中存儲的對象(任何類型的檔案)。

  • 首先在控制台左側選擇 【存儲】(如下圖示(中英文))就能進入Cloud Storage頁面了,
TPU使用說明1 TPU分類和收費标準2 使用步驟
TPU使用說明1 TPU分類和收費标準2 使用步驟
  • 之後點選 【建立存儲分區】
    TPU使用說明1 TPU分類和收費标準2 使用步驟
  • 輸入storage名即可建立完成,注意名稱需要是unique的,否則無法建立成功。
TPU使用說明1 TPU分類和收費标準2 使用步驟

2.2.2 上傳和共享對象

要開始使用您的存儲分區,隻需上傳對象并開放其通路權限即可。

2.2.3 清理

在最後一步中,您将删除之前為本教程建立的存儲分區和對象。

2.3 打開Cloud Shell,使用ctpu工具

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

TPU使用說明1 TPU分類和收費标準2 使用步驟

輸入

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.           
TPU使用說明1 TPU分類和收費标準2 使用步驟

2.3.1 建立Computer Engine VM和TPU

指令為:

ctpu up [optional: --name --zone]

注意: name隻能用小寫字母和數字組成,大寫字母或者其他字元都會報錯。

這裡我建立了一個名為

tputest

的tpu。輸入y确認建立。

TPU使用說明1 TPU分類和收費标準2 使用步驟

上面的

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

TPU使用說明1 TPU分類和收費标準2 使用步驟

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執行個體依舊存在。是以最保險的辦法是指令輸完後,去控制台看看執行個體是否還存在。
TPU使用說明1 TPU分類和收費标準2 使用步驟
TPU使用說明1 TPU分類和收費标準2 使用步驟

3. 删除Storage

gsutil rm -r gs://Your-storage-name

TPU使用說明1 TPU分類和收費标準2 使用步驟

更詳細的資料可參考

官方文檔

MARSGGBO 原創 2018-10-16