管理 TPU 資源
本頁說明如何使用 Create Node API 建立、列出、停止、啟動、刪除及連線至 Cloud TPU。使用 Google Cloud CLI 執行 gcloud compute tpus tpu-vm create
指令,以及使用 Google Cloud 控制台建立 TPU 時,系統會呼叫 Create Node API。使用 CreateNode API 時,系統會立即處理要求。如果容量不足,無法處理您的要求,要求就會失敗。
最佳做法是使用佇列資源建立 TPU,而非使用 Create Node API。如果要求排入佇列的資源,該項要求就會列入 Cloud TPU 服務保有的佇列。當要求的資源可用時,系統會將其指派給您的 Google Cloud 專案,供您立即專屬使用。詳情請參閱「管理已加入佇列的資源」。
使用多配量時,必須使用佇列資源。詳情請參閱「多重切片簡介」一節。
如要使用 Google Kubernetes Engine (GKE) 管理 TPU 資源,請先建立 GKE 叢集。然後將含有 TPU 節點的節點集區新增至叢集。詳情請參閱「關於 GKE 中的 TPU」。
必要條件
執行這些程序之前,請務必完成下列事項:
安裝 Google Cloud CLI、建立 Google Cloud 專案,並啟用 Cloud TPU API。如需操作說明,請參閱「設定 Cloud TPU 環境」。
如果您使用 Cloud 用戶端程式庫,請按照所用語言的設定說明操作:
為避免在每個 gcloud CLI 指令中設定
--project
標記,請使用gcloud config set
指令在有效設定中設定專案 ID:gcloud config set project project-id
將 project-id 替換為您的 Google Cloud 專案名稱。
使用 Create Node API 建立 Cloud TPU
您可以使用 gcloud
、 Google Cloud 控制台或 Cloud TPU API 建立 Cloud TPU。
建立 Cloud TPU 時,您必須指定 TPU 軟體版本 (也稱為執行階段版本)。如要判斷應使用哪個軟體版本,請參閱「TPU 軟體版本」。
您也需要以 TensorCore 或 TPU 晶片的形式指定 TPU 設定。詳情請參閱「系統架構」中您所用 TPU 版本的相關章節。
gcloud
如要使用 Create Node API 建立 TPU,請使用 gcloud compute tpus tpu-vm create
指令。如要設定特定內部或外部 IP 位址,請參閱「外部和內部 IP 位址」一文中的操作說明。
下列指令使用 v5litepod-8 (v5e) TPU:
$ gcloud compute tpus tpu-vm create tpu-name \ --zone=us-central2-b \ --accelerator-type=v5litepod-8 \ --version=tpu-software-version
指令旗標說明
zone
- 您要建立 Cloud TPU 的區域。
accelerator-type
- 加速器類型會指定您要建立的 Cloud TPU 版本和大小。 如要進一步瞭解各個 TPU 版本支援的加速器類型,請參閱 TPU 版本。
version
- TPU 軟體版本。
shielded-secure-boot
(選填)- 指定建立的 TPU 執行個體要啟用安全啟動功能。這會隱含地將其設為受防護 VM 執行個體。 請參閱「什麼是 Shielded VM?」 。
gcloud
控制台
前往 Google Cloud 控制台的「TPUs」頁面:
按一下「建立 TPU」。
在「Name」(名稱) 欄位中,輸入 TPU 的名稱。
在「Zone」(區域) 方塊中,選取要建立 TPU 的區域。
在「TPU type」(TPU 類型) 方塊中,選取加速器類型。 加速器類型會指定要建立的 Cloud TPU 版本和大小。如要進一步瞭解各個 TPU 版本支援的加速器類型,請參閱「TPU 版本」。
在「TPU 軟體版本」方塊中,選取軟體版本。建立 Cloud TPU VM 時,TPU 軟體版本會指定要安裝的 TPU 執行階段版本。詳情請參閱「TPU 軟體版本」。
按一下「建立」即可建立資源。
curl
下列指令會使用 curl
建立 TPU。
$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v5litepod-8', \ runtime_version:'tpu-vm-tf-2.17.1-pjrt', \ network_config: {enable_external_ips: true}, \ shielded_instance_config: { enable_secure_boot: true }}" \ https://tpu.googleapis.com/v2/projects/project-id/locations/us-central2-b/nodes?node_id=node_name
必填欄位
runtime_version
- 要使用的 Cloud TPU 執行階段版本。
project-id
- 已註冊專案的名稱。 Google Cloud
zone
- 您要建立 Cloud TPU 的區域。
node_name
- :您要建立的 TPU VM 名稱。
Java
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
執行開機指令碼
gcloud
建立 TPU VM 時,您可以指定 --metadata startup-script
標記,在每個 TPU VM 上執行開機指令碼。下列指令會使用開機指令碼建立 TPU VM。
$ gcloud compute tpus tpu-vm create tpu-name \ --zone=us-central2-b \ --accelerator-type=v5litepod-8 \ --version=tpu-software-version \ --metadata startup-script='#! /bin/bash pip3 install numpy EOF'
Java
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
連線至 Cloud TPU
您可以使用 SSH 連線至 Cloud TPU。
如果無法使用 SSH 連線至 TPU VM,可能是因為 TPU VM 沒有外部 IP 位址。如要存取沒有外部 IP 位址的 TPU VM,請按照「連線至沒有公開 IP 位址的 TPU VM」一文中的操作說明進行。
gcloud
使用 SSH 連線至 Cloud TPU:
$ gcloud compute tpus tpu-vm ssh tpu-name --zone=zone
如果要求的配量大於單一主機,Cloud TPU 會為每個主機建立 TPU VM。每個主機的 TPU 晶片數量取決於 TPU 版本。
如要安裝二進位檔或執行程式碼,請使用 tpu-vm ssh command
連線至每個 TPU VM。
$ gcloud compute tpus tpu-vm ssh tpu-name --zone=zone
如要使用 SSH 連線至特定 TPU VM,請使用 --worker
旗標,該旗標會遵循以 0 為基準的索引:
$ gcloud compute tpus tpu-vm ssh tpu-name --zone=zone --worker=1
如要透過單一指令在所有 TPU VM 上執行指令,請使用 --worker=all
和 --command
標記:
$ gcloud compute tpus tpu-vm ssh tpu-name \ --zone=zone \ --worker=all \ --command='pip install "jax[tpu]==0.4.20" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html'
如果是 Multislice,您可以使用列舉的 TPU 名稱,在單一 VM 上執行指令,每個切片前置字串和數字都會附加到該名稱。如要在所有切片的所有 TPU VM 上執行指令,請使用 --node=all
、--worker=all
和 --command
標記,並視需要使用 --batch-size
標記。
$ gcloud compute tpus queued-resources ssh ${QUEUED_RESOURCE_ID} \ --zone=zone \ --node=all \ --worker=all \ --command='pip install jax[tpu] -f https://storage.googleapis.com/jax-releases/libtpu_releases.html' \ --batch-size=4
控制台
如要透過 Google Cloud 控制台連線至 TPU,請使用瀏覽器中的 SSH:
前往 Google Cloud 控制台的「TPUs」頁面:
在 TPU VM 清單中,找到要連線的 TPU VM,然後按一下該列中的「SSH」SSH。
列出 Cloud TPU 資源
您可以列出指定區域中的所有 Cloud TPU。
gcloud
$ gcloud compute tpus tpu-vm list --zone=zone
控制台
前往 Google Cloud 控制台的「TPUs」頁面:
Java
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
擷取 Cloud TPU 的相關資訊
您可以擷取指定 Cloud TPU 的相關資訊。
gcloud
$ gcloud compute tpus tpu-vm describe tpu-name \ --zone=zone
控制台
前往 Google Cloud 控制台的「TPUs」頁面:
按一下 Cloud TPU 的名稱。主控台會顯示 Cloud TPU 詳細資料頁面。
Java
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
停止 Cloud TPU 資源
您可以停止單一 Cloud TPU,避免產生費用,同時保留 VM 的設定和軟體。
gcloud
$ gcloud compute tpus tpu-vm stop tpu-name \ --zone=zone
控制台
前往 Google Cloud 控制台的「TPUs」頁面:
選取 Cloud TPU 旁的核取方塊。
按一下「停止」
。
Java
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
啟動 Cloud TPU 資源
您可以啟動已停止的 Cloud TPU。
gcloud
$ gcloud compute tpus tpu-vm start tpu-name \ --zone=zone
控制台
前往 Google Cloud 控制台的「TPUs」頁面:
選取 Cloud TPU 旁的核取方塊。
按一下「開始」
。
Java
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
刪除 Cloud TPU
在工作階段結束時刪除 TPU VM 節點。
gcloud
$ gcloud compute tpus tpu-vm delete tpu-name \ --zone=zone \ --quiet
指令旗標說明
zone
- 您要刪除 Cloud TPU 的區域。
quiet
- 執行 gcloud CLI 指令時,停用所有互動式提示。
控制台
前往 Google Cloud 控制台的「TPUs」頁面:
選取 Cloud TPU 旁的核取方塊。
按一下「刪除」圖示
。
Java
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要驗證 Cloud TPU,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。