TPU mit einem freigegebenen VPC-Netzwerk verbinden

Wie Sie einen TPU-Host mit einer freigegebene VPC verbinden, hängt davon ab, welche TPU-Architektur (TPU-VM oder TPU-Knoten) Sie verwenden. Weitere Informationen zu TPU-Architekturen finden Sie unter TPU-Systemarchitektur.

TPU-VM mit einem freigegebenen VPC-Netzwerk verbinden

VPC-Hostprojekt konfigurieren

Wenn Sie die TPU-VM-Architektur verwenden, müssen Sie dem TPU-Dienstkonto in Ihrem Dienstprojekt Berechtigungen zum Verwalten von Ressourcen im Hostprojekt erteilen. Dazu verwenden Sie die Rolle „TPU Shared VPC Agent“ (roles/tpu.xpnAgent). Führen Sie die folgenden gcloud-Befehle aus, um diese Rollenbindung zu gewähren.

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 erstellen, die mit einem freigegebenen VPC-Netzwerk verbunden ist

Bestimmen Sie zuerst, welche Beschleunigertypen und -versionen in der Zone verfügbar sind

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

Sie verbinden eine TPU-VM mit einem freigegebenen VPC-Netzwerk, wenn Sie Ihre TPU erstellen. Geben Sie die freigegebene VPC mit dem Tag --network an:

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

Mit dem Befehl gcloud compute tpus tpu-vm describe können Sie prüfen, ob die TPU-VM mit der freigegebenen VPC verbunden ist:

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

Die Antwort enthält das Netzwerk, mit dem die TPU-VM verbunden ist:

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 löschen

Wenn Sie mit der TPU-VM fertig sind, müssen Sie sie löschen.

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

TPU-Knoten mit einer freigegebene VPC verbinden

Privaten Dienstzugriff konfigurieren

Bevor Sie TPU-Knoten mit freigegebenen VPCs verwenden, müssen Sie eine Verbindung für den privaten Dienstzugriff herstellen.

  1. Aktivieren Sie die Service Networking API mit dem folgenden Google Cloud CLI-Befehl. Dieser Vorgang muss nur einmal pro Cloud Platform-Projekt ausgeführt werden.

    gcloud services enable servicenetworking.googleapis.com
    
  2. Weisen Sie einen reservierten Adressbereich zu, der vom Service Networking verwendet wird. prefix-length darf nicht größer als 24 sein. Beispiel:

    gcloud compute addresses create sn-range-1 --global \
    --addresses=10.110.0.0 \
    --prefix-length=16 \
    --purpose=VPC_PEERING \
    --network=network-name
  3. Private Dienstzugriffsverbindung herstellen

    $ gcloud services vpc-peerings connect --service=servicenetworking.googleapis.com \
    --ranges=sn-range-1 \
    --network=network-name
    
  4. Prüfen Sie, ob das VPC-Peering erstellt wurde. Mit dem folgenden Befehl werden alle VPC-Peerings für das angegebene Netzwerk aufgelistet.

    gcloud services vpc-peerings list --network=network-name
    

TPU-Knoten mit einem freigegebenen VPC-Netzwerk verbinden

Sie verbinden einen TPU-Knoten mit einem freigegebenen VPC-Netzwerk, wenn Sie Ihre TPU erstellen. Geben Sie die freigegebene VPC mit dem Tag --network an:

$ gcloud compute tpus execution-groups create \
  --name=tpu-name \
  --zone=zone \
  --tf-version=2.12.0 \
  --machine-type=n1-standard-1 \
  --accelerator-type=v3-8 \
  --network=network-name

Informationen zu einem bestimmten TPU-Knoten abrufen

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

Die Antwort enthält die folgenden Informationen:

acceleratorType: v3-8
apiVersion: V1
cidrBlock: 00.0.000.000/29
createTime: '2022-11-30T18:59:20.655858097Z'
health: HEALTHY
ipAddress: 00.000.0.000
name: projects/ml-writers/locations/us-central1-a/nodes/mikegre-vcp
network: global/networks/mikegre-vpc
networkEndpoints:
- ipAddress: 00.0.000.000
  port: 8470
port: '8470'
schedulingConfig: {}
serviceAccount: service-00000000000@cloud-tpu.iam.gserviceaccount.com
state: READY
tensorflowVersion: 2.10.0

TPU-Knoten löschen

Wenn Sie mit dem TPU-Knoten fertig sind, müssen Sie ihn löschen.

$ gcloud compute tpus execution-groups delete tpu-name \
  --zone=zone
### VPC-Peering löschen Eine Peering-Verbindung kann über die Compute Networking API getrennt werden. Diese Aufrufe sollten in freigegebenen VPC-Hostprojekten vorgenommen werden. 1. Listen Sie alle VPC-Peerings auf, um den Namen des zu löschenden Peerings zu ermitteln.
   $ gcloud compute networks peerings list --network=network-name
   
  1. Ein VPC-Peering löschen.

    $ gcloud compute networks peerings delete peering-name --network=network-name