TPU prerilasciabili

Le TPU prerilasciabili costano molto meno delle TPU non prerilasciabili. Il servizio Cloud TPU potrebbe prerilasciare (arresto) queste TPU in qualsiasi momento, se richiede ulteriori risorse TPU.

Se stai creando una VM TPU prerilasciabile, utilizza il comando gcloud. Se stai creando un nodo TPU prerilasciabile, puoi utilizzare il comando gcloud o la console. Per informazioni sulle differenze tra le VM TPU e i nodi TPU, consulta Architettura di sistema.

Creazione di una VM TPU prerilasciabile

gcloud

$ gcloud compute tpus tpu-vm create demo-tpu \
  --zone=europe-west4-a \
  --accelerator-type=v3-8 \
  --version=tpu-vm-tf-2.16.1-pjrt \
  --preemptible
  

dove:

  • demo-tpu è un nome per la TPU.
  • --accelerator-type specifica il tipo di TPU.
  • --version specifica la versione del software TPU VM da installare.
  • --preemptible consente a Cloud TPU di prerilasciare la TPU.

Creazione di un nodo TPU prerilasciabile

Console

  1. Vai alla pagina TPU in Compute Engine nella pagina principale.
  2. Fai clic su CREA NODO TPU per aprire la pagina di creazione del nodo TPU.
  3. Digita un nome per il nodo TPU.
  4. Seleziona la zona in cui creare il nodo TPU.
  5. Seleziona un tipo di TPU per il nodo TPU.
  6. Fai clic su Attiva la prerilasciabilità per questo nodo per rendere prerilasciabile il nodo TPU.
  7. Seleziona la versione di TensorFlow o PyTorch da installare sulla VM.

gcloud

$ gcloud compute tpus execution-groups create \
  --name=demo-tpu \
  --zone=europe-west4-a \
  --accelerator-type=v3-8 \
  --tf-version=2.12.0 \
  --preemptible
  

dove:

  • demo-tpu è un nome per la TPU.
  • "--accelerator-type specifica il tipo di TPU.
  • --tf-version specifica la versione di Tensorflow o PyTorch da installare sulla VM.
  • --preemptible consente a Cloud TPU di prerilasciare la TPU.

Con i nodi TPU, lo stato prerilasciabile di una TPU è indipendente dallo stato prerilasciabile dell'istanza VM.

Prezzi e quota per le TPU prerilasciabili

I prezzi delle TPU prerilasciabili sono notevolmente inferiori rispetto a quelli delle TPU normali. Per informazioni dettagliate, consulta la pagina dei prezzi. Non ti viene addebitato alcun costo per le TPU che vengono prerilasciate nel primo minuto dopo la creazione.

La quota per le TPU prerilasciabili è generalmente superiore ed è separata da quella per le TPU normali. Consulta la pagina della quota.

Rilevamento del prerilascio di una TPU

Usa il seguente comando gcloud per verificare se il servizio Cloud TPU ha prerilasciato la tua TPU:

Elenca le TPU disponibili:

VM TPU

gcloud compute tpus tpu-vm list --zone=us-central1-b

Nodo TPU

(vm)$ gcloud compute tpus list --zone=us-central1-b

L'output del comando mostra i dettagli delle TPU create nel progetto. Se una TPU è stata prerilasciata, lo stato cambia da READY a PREEMPTED.

Ad esempio:

NAME       ZONE           ACCELERATOR_TYPE  NETWORK_ENDPOINT   NETWORK  RANGE          STATUS
demo-tpu   us-central1-b  v2-8              10.240.1.2:8470    default  10.240.1.0/29  PREEMPTED

VM e TPU prerilasciabili (solo nodi TPU)

Come descritto nella guida rapida per il tuo framework, hai bisogno di una macchina virtuale (VM) Compute Engine per connetterti a una TPU. Tieni presente che lo stato prerilasciabile della TPU è indipendente dallo stato prerilasciabile della VM. Puoi definire la TPU come prerilasciabile e la VM come non prerilasciabile o viceversa. Puoi anche definirli entrambi prerilasciabili.

La combinazione più probabile è una TPU prerilasciabile e una VM non prerilasciabile. Tieni presente quanto segue:

  • È probabile che i costi per la VM siano bassi rispetto a quelli per la TPU. Gli addebiti delle VM dipendono dal tipo di macchina utilizzato. Consulta la pagina dei prezzi per un esempio dei costi relativi.
  • Cloud TPU non coordina il prerilascio della VM e della TPU. Se le definisci entrambi come prerilasciabili, la VM e la TPU possono essere prerilasciate in momenti diversi.
  • Se Compute Engine prerilascia la tua VM, ti viene comunque addebitato il costo della TPU (a meno che la TPU stessa non venga prerilasciata). Tieni presente che la TPU è inattiva mentre la VM è prerilasciata.
  • Le istanze prerilasciabili, sia VM di Compute Engine che istanze Cloud TPU, vengono sempre prerilasciate dopo 24 ore di esecuzione. Determinate azioni reimpostano questo contatore di 24 ore.

Rilevare se un'istanza VM è stata prerilasciata (solo nodi TPU)

Per verificare se l'istanza VM è stata prerilasciata, utilizza il comando gcloud compute operations list per ottenere un elenco delle operazioni di sistema recenti. Aggiungi un filtro name per visualizzare solo le istanze in esecuzione oppure aggiungi il filtro operationType per visualizzare solo le risorse prerilasciate. Ad esempio, utilizza il comando seguente per visualizzare solo le istanze con il nome istanza specificato:

$ gcloud compute operations list--filter="name=( 'NAME' my-vm)"

L'esempio seguente mostra solo le risorse che sono state prerilasciate:

$ gcloud compute operations list --filter="operationType=compute.instances.preempted"

Per ulteriori dettagli, consulta la guida di Compute Engine.

Progettazione dell'applicazione di machine learning per l'esecuzione su TPU prerilasciabili

Assicurati che la tua applicazione sia resiliente ai riavvii della VM e della TPU, salvando regolarmente i checkpoint del modello e configurando l'applicazione per ripristinare il checkpoint più recente al riavvio.