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.
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
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
Private Dienstzugriffsverbindung herstellen
$ gcloud services vpc-peerings connect --service=servicenetworking.googleapis.com \ --ranges=sn-range-1 \ --network=network-name
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
Ein VPC-Peering löschen.
$ gcloud compute networks peerings delete peering-name --network=network-name