Gestisci le risorse TPU

Questa pagina descrive come gestire le risorse Cloud TPU utilizzando:

  • Google Cloud CLI, che fornisce l'interfaccia a riga di comando principale a Google Cloud.
  • La console Google Cloud, che offre un e la console di gestione integrata per le tue risorse Google Cloud.

Prerequisiti

Prima di eseguire queste procedure, devi installare Google Cloud CLI, creare un progetto Google Cloud e abilitare l'API Cloud TPU. Per istruzioni, consulta Configurazione dell'ambiente Cloud TPU.

Se utilizzi Google Cloud CLI, puoi eseguire i comandi utilizzando Cloud Shell, una VM di Compute Engine o la tua macchina locale. Lo Cloud Shell ti consente di interagire con le Cloud TPU senza dover per installare qualsiasi software. Cloud Shell si disconnette dopo un periodo di di inattività. Se esegui comandi a lunga esecuzione, ti consigliamo di installare Google Cloud CLI sulla tua macchina locale. Per ulteriori informazioni sul Google Cloud CLI, consulta la documentazione di riferimento di gcloud.

Esegui il provisioning delle Cloud TPU

Puoi eseguire il provisioning di una Cloud TPU utilizzando gcloud, la console Google Cloud, oppure l'API Cloud TPU.

Esistono due metodi per eseguire il provisioning delle TPU utilizzando gcloud:

  1. Utilizzo delle risorse in coda: gcloud alpha compute tpus queued-resources create
  2. Utilizzo dell'API Create Node: gcloud compute tpus tpu-vm create

La best practice è eseguire il provisioning delle TPU utilizzando le risorse in coda. Quando richiedi risorse in coda, questa viene aggiunta a una coda gestita da il servizio Cloud TPU. Quando la risorsa richiesta diventa disponibile, assegnate al tuo progetto Google Cloud per uso immediato ed esclusivo. Per Per ulteriori informazioni, consulta Risorse in coda gestite.

Quando utilizzi più sezioni, devi utilizzare risorse in coda e specificare i seguenti parametri aggiuntivi:

export NODE_COUNT=node_count
export NODE_PREFIX=your_tpu_prefix # Optional

dove:

  • ${NODE_COUNT} è il numero di sezioni da creare
  • ${NODE_PREFIX} è il prefisso specificato per generare i nomi per ogni sezione. Per ogni sezione viene aggiunto un numero al prefisso. Ad esempio, se imposti ${NODE_PREFIX} a mySlice, i nomi delle sezioni sono: mySlice-0, mySlice-1, continuando numericamente per ogni sezione.

Per ulteriori informazioni su Multisezione, vedi Introduzione a più sezioni

Crea una Cloud TPU utilizzando l'API Create Node

Quando crei una Cloud TPU, devi specificare l'immagine VM TPU (detta anche TPU la versione software). Per determinare quale immagine VM utilizzare, consulta VM TPU immagini.

Devi anche specificare la configurazione TPU in termini di TensorCores o TPU chip. Per ulteriori informazioni, consulta la sezione relativa alla versione di TPU in uso in Architettura di sistema.

gcloud

Per creare una TPU con l'API Create Node, usa il comando gcloud compute tpus tpu-vm create.

Il seguente comando utilizza una configurazione basata su TensorCore:

$ gcloud compute tpus tpu-vm create tpu-name \
  --zone=us-central2-b \
  --accelerator-type=v4-8 \
  --version=tpu-software-version

Descrizioni flag di comando

zone
La zona in cui prevedi di creare la tua Cloud TPU.
accelerator-type
Il tipo di acceleratore specifica la versione e le dimensioni della Cloud TPU che vuoi creare. Per ulteriori informazioni sui tipi di acceleratori supportati per ogni versione di TPU, vedi Versioni TPU.
version
La versione del software TPU.
shielded-secure-boot (facoltativo)
Specifica che le istanze TPU vengono create con l'avvio protetto abilitato. Ciò le rende implicitamente istanze Shielded VM. Consulta la sezione Che cos'è Shielded VM? per ulteriori informazioni.

Il comando seguente crea una TPU con una topologia specifica:

$ gcloud compute tpus tpu-vm create tpu-name \
  --zone=us-central2-b \
  --type=v4 \
  --topology=2x2x1 \
  --version=tpu-software-version

Flag obbligatori

tpu-name
Il nome della VM TPU che stai creando.
zone
La zona in cui ti trovi creando la tua Cloud TPU.
type
La versione di TPU che vuoi utilizzare. Per ulteriori informazioni, vedi Versioni TPU.
topology
La disposizione fisica dei chip TPU, specificando il numero di in ogni dimensione. Per ulteriori informazioni per ogni versione di TPU, vedere Versioni TPU.
version
La versione del software TPU che vuoi utilizzare. Per ulteriori informazioni, vedi Versioni software TPU.

Console

  1. Nella console Google Cloud, vai alla pagina TPU:

    Vai alle TPU

  2. Fai clic su Crea TPU.

  3. Nel campo Nome, inserisci un nome per la TPU.

  4. Nella casella Zona, seleziona la zona in cui creare la TPU.

  5. Nella casella Tipo TPU, seleziona un tipo di acceleratore. Il tipo di acceleratore specifica la versione e la dimensione della Cloud TPU che vuoi creare. Per saperne di più sui tipi di acceleratori supportati per ogni versione di TPU, consulta la sezione Versioni TPU.

  6. Nella casella Versione software TPU, seleziona una versione software. Quando crei un VM Cloud TPU, la versione software TPU specifica la versione della TPU il runtime per l'installazione. Per maggiori informazioni, consulta la sezione Immagini VM TPU.

  7. Fai clic su Crea per creare le risorse.

curl

Il seguente comando utilizza curl per creare una TPU.

$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
runtime_version:'tpu-vm-tf-2.16.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

Campi obbligatori

runtime_version
La versione del runtime di Cloud TPU che vuoi utilizzare.
project
Il nome del tuo progetto Google Cloud registrato.
zone
La zona in cui creerai la tua Cloud TPU.
node_name
Il nome della VM TPU che stai creando.

Esegui uno script di avvio

Puoi eseguire uno script di avvio su ogni VM TPU specificando Flag --metadata startup-script durante la creazione della VM TPU. Le seguenti crea una VM TPU utilizzando uno script di avvio.

$ gcloud compute tpus tpu-vm create tpu-name \
    --zone=us-central2-b \
    --accelerator-type=tpu-type \
    --version=tpu-vm-tf-2.16.1-pjrt \
    --metadata startup-script='#! /bin/bash
      pip3 install numpy
      EOF'

Connettiti a una Cloud TPU

gcloud

Connettiti a Cloud TPU tramite SSH:

$ gcloud compute tpus tpu-vm ssh tpu-name --zone=zone

Quando richiedi una sezione più grande di un singolo host, Cloud TPU crea una VM TPU per ogni host. Il numero di chip TPU per host dipende dalla Versione TPU.

Per installare programmi binari o eseguire codice, connettiti a ogni VM TPU utilizzando tpu-vm ssh command.

$ gcloud compute tpus tpu-vm ssh tpu-name

Per connettersi a una VM TPU specifica mediante SSH, usa il flag --worker che segue un indice in base a 0:

$ gcloud compute tpus tpu-vm ssh tpu-name --worker=1

Per eseguire un comando su tutte le VM TPU con un solo comando, utilizza la classe Flag --worker=all e --command:

$ gcloud compute tpus tpu-vm ssh tpu-name \
  --project=your_project_ID \
  --zone=zone \
  --worker=all \
  --command='pip install "jax[tpu]==0.4.20" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html'

Per più sezioni, puoi eseguire un comando su una singola VM utilizzando il nome TPU enumerato, di ogni prefisso della sezione e del numero aggiunto. Per eseguire un su tutte le VM TPU in tutte le sezioni, usa i comandi --node=all, --worker=all e --command, con un oggetto --batch-size flag.

$ gcloud compute tpus queued-resources ssh ${QUEUED_RESOURCE_ID} \
  --project=project_ID \
  --zone=zone \
  --node=all \
  --worker=all \
  --command='pip install "jax[tpu]==0.4.20" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html' \
  --batch-size=4

Console

Per connetterti alle TPU nella console Google Cloud, utilizza SSH nel browser:

  1. Nella console Google Cloud, vai alla pagina TPU:

    Vai alle TPU

  2. Nell'elenco delle VM TPU, fai clic su SSH nella riga della VM TPU a cui vuoi connetterti.

Elenca le tue risorse Cloud TPU

Puoi elencare tutte le Cloud TPU in una zona specificata.

gcloud

$ gcloud compute tpus tpu-vm list --zone=zone

Console

Nella console Google Cloud, vai alla pagina TPU:

Vai alle TPU

Recupera le informazioni su Cloud TPU

Puoi recuperare le informazioni su una Cloud TPU specificata.

gcloud

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

Console

  1. Nella console Google Cloud, vai alla pagina TPU:

    Vai alle TPU

  2. Fai clic sul nome della tua Cloud TPU. Nella console vengono visualizzati i Pagina dei dettagli di Cloud TPU.

Arresta le tue risorse Cloud TPU

Puoi arrestare una singola Cloud TPU per interrompere gli addebiti senza perdere le configurazione e software.

gcloud

$ gcloud compute tpus tpu-vm stop tpu-name \
  --zone=zone

Console

  1. Nella console Google Cloud, vai alla pagina TPU:

    Vai alle TPU

  2. Seleziona la casella di controllo accanto alla tua Cloud TPU.

  3. Fai clic su Interrompi.

Avvia le tue risorse Cloud TPU

Puoi avviare una Cloud TPU quando viene arrestata.

gcloud

$ gcloud compute tpus tpu-vm start tpu-name \
  --zone=zone

Console

  1. Nella console Google Cloud, vai alla pagina TPU:

    Vai alle TPU

  2. Seleziona la casella di controllo accanto alla tua Cloud TPU.

  3. Fai clic su Avvia.

Elimina una Cloud TPU

Elimina le sezioni di VM TPU al termine della sessione.

gcloud

$ gcloud compute tpus tpu-vm delete tpu-name \
  --project=project-id \
  --zone=zone \
  --quiet

Descrizioni flag di comando

zone
La zona in cui prevedi di eliminare Cloud TPU.

Console

  1. Nella console Google Cloud, vai alla pagina TPU:

    Vai alle TPU

  2. Seleziona la casella di controllo accanto alla tua Cloud TPU.

  3. Fai clic su Elimina.

Configurazioni avanzate

Specifica risorse di rete personalizzate

Quando crei la TPU, puoi scegliere di specificare una rete o una subnet.

gcloud

Per specificare la rete o la subnet utilizzando l'interfaccia a riga di comando gcloud, usa quanto segue flag dei comandi:

--network NETWORK --subnetwork SUBNETWORK

curl

Per specificare la rete o la subnet in una chiamata curl, aggiungi quanto segue parametri al corpo della richiesta:

network_config: {network: 'NETWORK', subnet: 'SUBNETWORK', enable_external_ips: true}

Rete

Facoltativamente, puoi specificare la rete da utilizzare per la TPU. Se non specificato, è in uso la rete default.

Formati di rete validi:

https://www.googleapis.com/compute/{version}/projects/{proj-id}/global/networks/{network}
compute/{version}/projects/{proj-id}/global/networks/{network}
compute/{version}/projects/{proj-##}/global/networks/{network}
projects/{proj-id}/global/networks/{network}
projects/{proj-##}/global/networks/{network}
global/networks/{network}
{network}

Subnet

Puoi specificare una subnet specifica da utilizzare per la TPU. Il valore specificato la subnet deve trovarsi nella stessa regione della zona in cui viene eseguita la TPU.

Formati validi:

https://www.googleapis.com/compute/{version}/projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
compute/{version}/projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
compute/{version}/projects/{proj-##}/regions/{region}/subnetworks/{subnetwork}
projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
projects/{proj-##}/regions/{region}/subnetworks/{subnetwork}
regions/{region}/subnetworks/{subnetwork}
{subnetwork}

Abilita l'accesso privato Google

Per connetterti alle VM TPU tramite SSH, devi aggiungere configurazioni di accesso per le VM TPU, oppure attiva Accesso privato Google per la subnet a cui sono connesse le VM TPU.

Per aggiungere configurazioni di accesso, devi impostare enable_external_ips. Quando crea una TPU, enable_external_ips è impostato per impostazione predefinita.

Se vuoi disattivare questa opzione, abilita gli IP interni:

gcloud

Utilizza il flag --internal-ips durante la creazione di una TPU:

--internal-ips

curl

Aggiungi i seguenti parametri al corpo della richiesta:

network_config: {enable_external_ips: false}

Dopo aver configurato l'accesso privato Google, connetterti alla VM tramite SSH.

Collega un account di servizio personalizzato

A ogni VM TPU è associato un account di servizio che utilizza per effettuare richieste API per tuo conto. Le VM TPU usano questo account di servizio per chiamare Cloud TPU API e accedere a Cloud Storage e ad altri servizi. Per impostazione predefinita, la VM TPU utilizza account di servizio Compute Engine predefinito.

L'account di servizio deve essere definito nel campo Progetto Google Cloud in cui creare la VM TPU. Account di servizio personalizzati utilizzati Per le VM TPU, è necessario disporre del visualizzatore TPU per chiamare l'API Cloud TPU. Se il codice in esecuzione sulla VM TPU chiama altri ai servizi Google Cloud, deve avere i ruoli necessari per accedervi.

Quando crei una TPU, puoi scegliere di specificare un account di servizio personalizzato utilizzando il flag --service-account. Per ulteriori informazioni sugli account di servizio, consulta Account di servizio.

Utilizza i comandi seguenti per specificare un account di servizio personalizzato.

gcloud

$ gcloud compute tpus tpu-vm create tpu-name \
  --zone=us-central2-b \
  --accelerator-type=tpu-type \
  --version=tpu-vm-tf-2.16.1-pjrt \
  --service-account=your-service-account

curl

$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
runtime_version:'tpu-vm-tf-2.16.1-pjrt', \
network_config: {enable_external_ips: true}, \
shielded_instance_config: { enable_secure_boot: true }}" \
service_account: {email: 'your-service-account'} \
https://tpu.googleapis.com/v2/projects/project-id/locations/us-central2-b/nodes?node_id=node_name

Abilita metodi SSH personalizzati

  1. Configura un firewall per SSH.

    La rete predefinita è preconfigurata per consentire l'accesso SSH a tutte le VM. Se non è in uso la rete predefinita o è stata modificata la rete predefinita potrebbe essere necessario abilitare esplicitamente l'accesso SSH aggiungendo regola firewall:

    $ gcloud compute tpus tpu-vm compute firewall-rules create \
      --network=network allow-ssh \
      --allow=tcp:22
    
  2. Connettiti alle VM TPU tramite SSH.

    $ gcloud compute tpus tpu-vm ssh tpu-name \
      --zone=us-central2-b \
      --project=project-id
    

    Campi obbligatori

    • tpu-name: nome della VM TPU.
    • zone: la zona in cui hai creato la VM TPU.
    • project-id: il nome del tuo progetto Google Cloud.

    Per un elenco dei campi facoltativi, consulta Documentazione dell'API gcloud.