Connecter un TPU à un réseau VPC partagé
La manière dont vous connectez un hôte TPU à un VPC partagé dépend de l'architecture TPU (VM TPU ou nœud TPU) que vous utilisez. Pour en savoir plus sur les architectures TPU, consultez la page Architecture du système TPU.
Connecter une VM TPU à un réseau VPC partagé
Configurer un projet hôte de VPC
Lorsque vous utilisez l'architecture de VM TPU, vous devez accorder au compte de service TPU de votre projet de service des autorisations pour gérer les ressources du projet hôte.
Pour ce faire, utilisez le rôle "Agent VPC partagé TPU" (roles/tpu.xpnAgent
). Exécutez les commandes gcloud suivantes pour accorder cette liaison de rôle.
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
Créer une VM TPU connectée à un réseau VPC partagé
Commencez par déterminer les types et versions d'accélérateurs disponibles dans la zone.
gcloud compute tpus accelerator-types list --zone zone
gcloud compute tpus versions list --zone zone
Vous connectez une VM TPU à un réseau VPC partagé lorsque vous créez votre TPU. Spécifiez votre VPC partagé à l'aide du tag --network
:
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
Vous pouvez vérifier que votre VM TPU est connectée à votre VPC partagé à l'aide de la commande gcloud compute tpus tpu-vm describe
:
$ gcloud compute tpus tpu-vm describe tpu-name --zone zone
La réponse inclut le réseau auquel votre VM TPU est associée:
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
Supprimer la VM TPU
Lorsque vous n'avez plus besoin de la VM TPU, veillez à la supprimer.
gcloud compute tpus tpu-vm delete tpu-name \ --zone zone \
Connecter un nœud TPU à un VPC partagé
Configurer l'accès aux services privés
Avant d'utiliser des nœuds TPU avec des VPC partagés, vous devez établir une connexion d'accès privée aux services.
Activez l'API Service Networking à l'aide de la commande Google Cloud CLI suivante. Cette opération ne doit être effectuée qu'une seule fois par projet Cloud Platform.
gcloud services enable servicenetworking.googleapis.com
Allouez une plage d'adresses réservée à utiliser par Service Networking. La valeur de
prefix-length
doit être inférieure ou égale à 24. Exemple :gcloud compute addresses create sn-range-1 --global \ --addresses=10.110.0.0 \ --prefix-length=16 \ --purpose=VPC_PEERING \ --network=network-name
Établissez une connexion d'accès aux services privés.
$ gcloud services vpc-peerings connect --service=servicenetworking.googleapis.com \ --ranges=sn-range-1 \ --network=network-name
Vérifiez que l'appairage de VPC a bien été créé. La commande suivante répertorie tous les appairages de VPC pour le réseau spécifié.
gcloud services vpc-peerings list --network=network-name
Connecter un nœud TPU à un réseau VPC partagé
Vous connectez un nœud TPU à un réseau VPC partagé lorsque vous créez votre TPU. Spécifiez votre VPC partagé à l'aide du tag --network
:
$ 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
Récupérer des informations sur un nœud TPU spécifique
$ gcloud compute tpus describe tpu-name --zone zone
La réponse contient les informations suivantes:
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
Supprimer le nœud TPU
Lorsque vous n'avez plus besoin du nœud TPU, veillez à le supprimer.
$ gcloud compute tpus execution-groups delete tpu-name \
--zone=zone
### Supprimez l'appairage de VPC
Une connexion d'appairage peut être déconnectée à l'aide de l'API Compute Network.
Ces appels doivent être effectués dans des projets hôtes de VPC partagé.
1. Répertoriez tous les appairages VPC pour trouver le nom de l'appairage à supprimer.
$ gcloud compute networks peerings list --network=network-name
Supprimez un appairage de VPC.
$ gcloud compute networks peerings delete peering-name --network=network-name