將 TPU 連線至共用虛擬私有雲網路

本指南說明如何設定使用集中管理的共用虛擬私有雲網路的 Cloud TPU。本文假設您已熟悉虛擬私有雲,並已建立共用虛擬私有雲。如要進一步瞭解如何建立及管理共用虛擬私有雲網路,請參閱「建立及修改共用虛擬私有雲網路」。

設定虛擬私有雲主專案

您必須在服務專案中,授予 TPU 服務帳戶管理主專案資源的權限。您可以使用「TPU 共用虛擬私有雲代理程式」(roles/tpu.xpnAgent) 角色執行這項操作。執行下列 gcloud 指令,授予這個角色繫結。

gcloud projects add-iam-policy-binding host-project-id \
--member=serviceAccount:service-your-service-project-number@gcp-sa-tpu.iam.gserviceaccount.com \
--role=roles/tpu.xpnAgent

建立連線至共用虛擬私有雲網路的 TPU VM

首先,請判斷區域中可用的加速器類型和版本

gcloud compute tpus accelerator-types list --zone zone
gcloud compute tpus versions list --zone zone

建立 TPU 時,您可以將 TPU VM 連線至共用虛擬私有雲網路。使用 --network 標記指定共用 VPC:

gcloud compute tpus tpu-vm create tpu-name \
   --zone zone \
   --accelerator-type accelerator-type \
   --network projects/host-project-id/global/networks/host-network \
   --version tpu-image-version \
   --project your-service-project-id

您可以使用 gcloud describe 指令,確認 TPU VM 是否已連線至共用 VPC:

$ gcloud compute tpus tpu-vm describe tpu-name --zone zone

回應會包含 TPU VM 連接的網路:

acceleratorType: v3-8
apiVersion: V2
cidrBlock: 10.128.0.0/20
createTime: '2022-06-17T21:32:13.859274143Z'
health: HEALTHY
id: '0000000000000000000'
name: projects/my-project/locations/us-central1-b/nodes/my-tpu
networkConfig:
  enableExternalIps: true
  network: projects/my-project/global/networks/default
  subnetwork: projects/my-project/regions/us-central1/subnetworks/default
networkEndpoints:
- accessConfig:
    externalIp: 000.000.000.000
  ipAddress: 10.128.0.104
  port: 8470
runtimeVersion: tpu-vm-tf-2.8.0
schedulingConfig: {}
serviceAccount:
  email: 00000000000-compute@developer.gserviceaccount.com
  scope:
  - https://www.googleapis.com/auth/devstorage.read_write
  - https://www.googleapis.com/auth/logging.write
  - https://www.googleapis.com/auth/service.management
  - https://www.googleapis.com/auth/servicecontrol
  - https://www.googleapis.com/auth/cloud-platform
  - https://www.googleapis.com/auth/pubsub
shieldedInstanceConfig: {}
state: READY

刪除 TPU VM

使用完 TPU VM 後,請務必刪除。

gcloud compute tpus tpu-vm delete tpu-name --zone zone