TPU prerilasciabili

Le TPU prerilasciabili costano molto meno rispetto alle TPU non prerilasciabili. Il servizio Cloud TPU potrebbe prerilasciare (disattivare) queste TPU in qualsiasi momento, se richiedono risorse TPU aggiuntive.

Se stai creando una VM TPU prerilasciabile, utilizza il comando gcloud. Se stai creando un nodo TPU prerilasciabile, puoi utilizzare il comando gcloud o Console. Per informazioni sulle differenze tra le VM TPU e i nodi TPU, consulta l'articolo sull'architettura di sistema.

Creazione di una VM TPU prerilasciabile

gcloud

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

dove:

  • demo-tpu è un nome per la TPU.
  • `--accelerator-type specifica il tipo di TPU.
  • --version specifica la versione del software della VM TPU 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 TPU NODE 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 prerilasciabilità per questo nodo per rendere il nodo TPU prerilasciabile.
  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.7.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 della tua istanza VM.

Prezzi e quota per le TPU prerilasciabili

Il prezzo delle TPU prerilasciabili è notevolmente inferiore rispetto alle TPU normali. Per i dettagli, consulta la pagina sui prezzi. Non viene addebitato alcun costo per le TPU che vengono prerilasciate nel primo minuto dopo la loro creazione.

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

Rilevamento se una TPU è stata prerilasciata

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

Elenca le tue 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

Il comando riportato sopra 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 framework, è necessaria una macchina virtuale (VM) Compute Engine per connettersi 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 definirle entrambe come prerilasciabili.

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

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

Rilevamento 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 che hai attualmente in esecuzione o aggiungi il filtro operationType per visualizzare solo le risorse che sono state 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 prerilasciate:

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

Per maggiori dettagli, consulta la guida di Compute Engine.

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

Assicurati che l'applicazione sia resiliente ai riavvii della VM e della TPU, salvando regolarmente i punti di controllo del modello e configurando l'applicazione in modo da ripristinare il checkpoint più recente al riavvio.