Gestisci risorse TPU
Questa pagina descrive come gestire le risorse Cloud TPU utilizzando:
- Google Cloud CLI, che fornisce l'interfaccia a riga di comando principale per Google Cloud.
- La console Google Cloud, che fornisce una console di gestione integrata per le risorse Google Cloud.
Cloud TPU ha due architetture VM: Nodo TPU e VM TPU. Le due architetture VM sono descritte in Architettura di sistema.
Puoi utilizzare i comandi gcloud
descritti in questo documento con entrambe le configurazioni TPU. I comandi gcloud
che utilizzi dipendono dalla configurazione TPU in uso. Ogni comando gcloud
è visualizzato in una sezione a schede. Scegli la scheda relativa alla configurazione TPU che vuoi utilizzare e la pagina web mostrerà il comando gcloud
appropriato. Se non sai di dover utilizzare i nodi TPU, ti consigliamo di utilizzare le VM TPU. Per Cloud TPU v4 e versioni successive, è supportata solo l'architettura delle VM TPU.
Prerequisiti
Prima di eseguire queste procedure, devi installare Google Cloud CLI, creare un progetto Google Cloud e abilitare l'API Cloud TPU. Per le istruzioni, consulta Configurare un progetto e abilitare l'API Cloud TPU.
Se usi Google Cloud CLI, puoi usare Google Cloud Shell, una VM di Compute Engine, oppure installare Google Cloud CLI in locale. Google Cloud Shell ti consente di interagire con le Cloud TPU senza dover installare alcun software. Google Cloud Shell potrebbe disconnettersi dopo un periodo di inattività. Se esegui comandi a lunga esecuzione, ti consigliamo di installare
Google Cloud CLI sulla tua macchina locale. Per maggiori informazioni su Google Cloud CLI, consulta la documentazione di riferimento gcloud
.
Esegui il provisioning delle Cloud TPU
Puoi eseguire il provisioning di una Cloud TPU utilizzando gcloud
, la console Google Cloud o l'API Cloud TPU.
Con gcloud
, esistono due metodi per il provisioning delle TPU:
- Utilizzo delle risorse in coda:
gcloud alpha compute tpus queued-resources create
- Utilizzo dell'API Create Node:
gcloud alpha compute tpus tpu-vm create
La best practice prevede il provisioning con risorse in coda. Quando richiedi risorse in coda, la richiesta viene aggiunta a una coda gestita dal servizio Cloud TPU. Quando la risorsa richiesta diventa disponibile, viene assegnata al tuo progetto Google Cloud per un uso esclusivo immediato.
Per creare una TPU utilizzando le risorse in coda, consulta Risorse in coda.
Se utilizzerai Multislice, consulta l'Introduzione a Multislice per ulteriori informazioni.
Se utilizzi la sezione multisezione, specifica i seguenti parametri aggiuntivi quando richiedi risorse in coda:
export NODE_COUNT=node_count export NODE_PREFIX=your_tpu_prefix # Optional
crea una Cloud TPU utilizzando l'API Create Node
Per creare una TPU utilizzando l'API Create Node, esegui
il comando gcloud compute tpus tpu-vm create
.
VM TPU
Puoi specificare le configurazioni TPU in termini di TensorCore o chip TPU. Per ulteriori informazioni, consulta la sezione relativa alla versione di TPU che stai utilizzando in Architettura di sistema.
Il comando seguente utilizza una configurazione basata su TensorCore:
$ gcloud alpha compute tpus tpu-vm create tpu-name \
--zone=us-central2-b \
--accelerator-type=v4-8 \
--version=tpu-software-version
Descrizioni flag comando
zone
- La zona in cui prevedi di creare la Cloud TPU.
accelerator-type
- Il tipo di acceleratore specifica la versione e le dimensioni della Cloud TPU che vuoi creare. Per maggiori informazioni sui tipi di acceleratori supportati per ogni versione di TPU, consulta Versioni TPU.
version
- La versione del software TPU.
shielded-secure-boot
(facoltativo)- Specifica che le istanze TPU vengono create con l'avvio protetto abilitato. Questo le rende implicitamente istanze di Shielded VM. Consulta Cos'è la Shielded VM? per ulteriori informazioni.
Il comando seguente crea una TPU con una topologia specifica:
$ gcloud alpha 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 stai creando la Cloud TPU.
type
- La versione della Cloud TPU che vuoi creare. Per maggiori informazioni sulle versioni TPU, consulta la pagina relativa alle versioni TPU.
topology
- Consulta la sezione relativa alla topologia per le topologie supportate.
version
- La versione del software TPU che vuoi utilizzare. Per maggiori informazioni, consulta la pagina relativa alle versioni software TPU
Per ulteriori informazioni sui tipi di TPU e le topologie supportati, consulta la pagina relativa alle versioni TPU.
Nodi TPU
$ gcloud compute tpus execution-groups create --name=tpu-name \
--zone=us-central1-a \
--tf-version=2.12.0 \
--machine-type=n1-standard-1 \
--accelerator-type=v3-8
Descrizioni flag comando
zone
- La zona in cui prevedi di creare la Cloud TPU.
tf-version
- La versione di Tensorflow che il comando
gcloud
viene installata sulla tua VM. machine-type
- Il tipo di macchina della VM di Compute Engine da creare.
accelerator-type
- Il tipo di acceleratore specifica la versione e le dimensioni della Cloud TPU che vuoi creare. Per maggiori informazioni sui tipi di acceleratori supportati per ogni versione di TPU, consulta Versioni TPU.
Creazione di una Cloud TPU nella console Google Cloud
- Vai alla console Google Cloud.
- Dal menu di navigazione, seleziona Compute Engine > TPU.
- Fai clic su CREA NODO TPU.
- Nella casella Nome, digita un nome di istanza TPU.
- Nella casella Zona, seleziona la zona in cui creare la TPU.
- In Impostazioni TPU, seleziona Architettura VM TPU o Architettura dei nodi TPU. La configurazione TPU determina se la TPU viene creata come VM TPU o Nodo TPU. Per ulteriori informazioni, consulta Architettura di sistema.
- Per Tipo TPU, seleziona il tipo TPU che vuoi creare.
- Per Versione software TPU, seleziona la versione software. Quando crei una VM Cloud TPU, la versione software TPU specifica la versione del runtime TPU da installare. Durante la creazione di un nodo Cloud TPU, la versione software TPU consente di scegliere il framework ML installato sulla VM del nodo. Non sono necessarie altre impostazioni. Per ulteriori informazioni, vedi Modelli supportati.
- Fai clic su CREA per creare le tue risorse.
Creazione di una VM Cloud TPU utilizzando curl
in corso...
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 Cloud TPU che vuoi utilizzare.
project
- Il nome del tuo progetto Google Cloud registrato.
zone
- La zona in cui stai creando la 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 il parametro --metadata startup-script
durante la creazione della VM TPU. Il seguente comando 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'
Connessione a una Cloud TPU
Puoi connetterti a una TPU tramite SSH.
VM TPU
Se utilizzi le VM TPU, devi connetterti in modo esplicito alla VM TPU tramite SSH.
Connettiti alla VM TPU su SSH utilizzando il comando
gcloud compute tpus tpu-vm ssh
.Quando richiedi sezioni con più di 4 chip, Cloud TPU crea una VM TPU per ogni gruppo di 4 chip.
Per installare i programmi binari o eseguire codice, puoi connetterti a ogni VM TPU utilizzando
tpu-vm ssh command
.gcloud compute tpus tpu-vm ssh ${TPU_NAME}
Per accedere a una VM TPU specifica o per installare programmi binari su ogni VM TPU con SSH, utilizza il flag
--worker
che segue un indice basato su 0:gcloud compute tpus tpu-vm ssh ${TPU_NAME} --worker=1
Se hai più di una VM TPU, utilizza i flag
--worker=all
e--command
per eseguire un comando contemporaneamente su tutte le VM TPU. Ad esempio:gcloud compute tpus tpu-vm ssh ${TPU_NAME} --project ${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 il multislice, puoi eseguire un comando su una singola VM (utilizzando il nome tpu enumerato) o utilizzare i flag
--node=all
,--worker=all
e--command
per eseguire il comando su tutte le VM TPU di tutte le sezioni del multislice, con un campo--batch-size
facoltativo.gcloud alpha 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
$ gcloud compute tpus tpu-vm ssh tpu-name --zone=zone
Utilizza SSH nel browser procedendo nel seguente modo:
Nella console Google Cloud, vai alla pagina TPU:
Nell'elenco delle VM TPU, fai clic su SSH nella riga della VM TPU a cui vuoi connetterti.
Nodi TPU
Per impostazione predefinita, il comando gcloud
che utilizzi per creare nodi TPU tenta automaticamente di connettersi tramite SSH al nodo TPU. Se utilizzi nodi TPU e non sei connesso all'istanza di Compute Engine tramite il comando gcloud
, puoi connetterti eseguendo questo comando:
$ gcloud compute ssh tpu-name \
--zone=zone
Dopo aver creato la VM TPU, puoi visualizzare i log dello script di avvio connettendoti alla VM TPU tramite SSH
ed eseguendo:
$ cat /var/log/syslog | grep startup-script
Elenco delle risorse Cloud TPU
Puoi elencare tutte le tue Cloud TPU in una zona specificata.
Elenco delle risorse Cloud TPU utilizzando gcloud
I comandi da utilizzare dipendono dall'utilizzo di VM TPU o nodi TPU. Per ulteriori informazioni, consulta Architettura di sistema.
VM TPU
$ gcloud compute tpus tpu-vm list --zone=zone
Nodi TPU
$ gcloud compute tpus execution-groups list --zone=zone
Questo comando elenca le risorse Cloud TPU nella zona specificata. Se al momento non sono configurate risorse, l'output mostrerà solo trattini per la VM e la TPU. Se una risorsa è attiva e l'altra non lo è, verrà visualizzato un messaggio che indica che lo stato non è integro. Devi avviare o riavviare qualsiasi risorsa non in esecuzione.
Elenco delle risorse Cloud TPU nella console Google Cloud
Vai alla console Google Cloud.
Dal menu di navigazione, seleziona Compute Engine > TPU. Nella console viene visualizzata la pagina delle TPU.
Recupero delle informazioni su Cloud TPU
Puoi recuperare informazioni su una Cloud TPU specificata.
Recupera le informazioni su una Cloud TPU utilizzando gcloud
I comandi da utilizzare dipendono dall'utilizzo di VM TPU o nodi TPU. Per ulteriori informazioni, consulta Architettura di sistema.
VM TPU
$ gcloud compute tpus tpu-vm describe tpu-name \
--zone=zone
Nodi TPU
$ gcloud compute tpus execution-groups describe tpu-name \
--zone=zone
Recupera le informazioni su una Cloud TPU nella console Google Cloud
- Vai alla console Google Cloud.
- Dal menu di navigazione, seleziona Compute Engine > TPU. Nella console viene visualizzata la pagina delle TPU.
- Fai clic sul nome della tua Cloud TPU. Viene visualizzata la pagina dei dettagli di Cloud TPU.
Arresto delle risorse Cloud TPU
Puoi arrestare una singola Cloud TPU per evitare addebiti senza perdere la configurazione e il software della VM. L'arresto delle TPU o dei pod TPU allocati tramite l'API delle risorse in coda non è supportato. Per interrompere il pagamento di addebiti per le TPU allocate tramite l'API delle risorse in coda, devi eliminare la TPU.
Arresto di una Cloud TPU mediante gcloud
I comandi da utilizzare per arrestare una Cloud TPU dipendono dall'utilizzo o meno di VM TPU o nodi TPU. Per ulteriori informazioni, consulta Architettura di sistema.
VM TPU
$ gcloud compute tpus tpu-vm stop tpu-name \
--zone=zone
Nodi TPU
$ gcloud compute tpus stop tpu-name \
--zone=zone
Arresto di una Cloud TPU nella console Google Cloud
Vai alla console Google Cloud.
Dal menu di navigazione, seleziona Compute Engine > TPU. Nella console viene visualizzata la pagina delle TPU.
Seleziona la casella di controllo accanto alla Cloud TPU e fai clic su Arresta.
Avvio delle risorse Cloud TPU
Puoi avviare una Cloud TPU quando è arrestata.
Avvio di una Cloud TPU utilizzando gcloud
Puoi avviare una Cloud TPU arrestata per riprendere a utilizzarla.
Il comando da utilizzare per avviare una Cloud TPU arrestata dipende dall'utilizzo o meno di VM TPU o nodi TPU. Per ulteriori informazioni, consulta Architettura di sistema.
VM TPU
$ gcloud compute tpus tpu-vm start tpu-name --zone=zone
Nodi TPU
$ gcloud compute tpus start tpu-name --zone=zone
Avvio di una Cloud TPU nella console Google Cloud
Vai alla console Google Cloud.
Dal menu di navigazione, seleziona Compute Engine > TPU. Nella console viene visualizzata la pagina delle TPU.
Seleziona la casella di controllo accanto alla Cloud TPU e fai clic su Avvia.
Elimina la VM TPU
Il comando da utilizzare varia a seconda che tu stia utilizzando VM TPU o nodi TPU. Per ulteriori informazioni, consulta Architettura di sistema.
VM TPU
Elimina le sezioni di VM TPU alla fine della sessione.
gcloud compute tpus tpu-vm delete ${TPU_NAME} --project=${PROJECT_ID} --zone=${ZONE} --quiet
Descrizioni flag comando
zone
- La zona in cui prevedi di eliminare la Cloud TPU.
Nodi TPU
$ gcloud compute tpus execution-groups delete tpu-name \
--zone=zone
Descrizioni flag comando
zone
- La zona in cui prevedi di eliminare la Cloud TPU.
Eliminazione di una Cloud TPU nella console Google Cloud
Vai alla console Google Cloud.
Dal menu di navigazione, seleziona Compute Engine > TPU. Nella console viene visualizzata la pagina delle TPU.
Seleziona la casella di controllo accanto alla Cloud TPU e fai clic su Elimina.
Configurazioni avanzate
Risorse di reti personalizzate
Quando crei la TPU, puoi scegliere di specificare la rete e/o una subnet. Puoi farlo inviando un comando gcloud
o una chiamata curl
.
Per specificare la rete o la subnet nell'interfaccia a riga di comando gcloud
, utilizza:
--network [NETWORK] --subnetwork [SUBNETWORK]
Per specificare la rete o la subnet in una chiamata curl
, usa:
network_config: {network: '[NETWORK]', subnet: '[SUBNETWORK]', enable_external_ips: true}
Rete
Facoltativamente, puoi specificare la rete da utilizzare per la TPU. Se non specificata, viene utilizzata 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 la subnet in modo da utilizzarne una specifica. La subnet specificata 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}
Accesso privato Google
Per accedere tramite SSH alle VM TPU, devi aggiungere configurazioni di accesso per le VM TPU o attivare l'accesso privato Google per la subnet a cui sono connesse le VM TPU.
Per aggiungere configurazioni di accesso, è necessario impostare enable_external_ips
. Quando crei una TPU, l'impostazione predefinita è enable_external_ips
. Se vuoi disattivare questa opzione, specifica il seguente comando:
--internal-ips
Oppure utilizza una chiamata curl
:
network_config: {enable_external_ips: true}
Dopo aver configurato l'accesso privato Google, connettiti alla VM tramite SSH.
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 utilizzano questo account di servizio per chiamare le API Cloud TPU, accedere a Cloud Storage e ad altri servizi. Per impostazione predefinita, la VM TPU utilizza l'account di servizio predefinito di Compute Engine.
Puoi specificare un account di servizio personalizzato quando crei una VM TPU utilizzando il flag --service-account
. L'account di servizio deve essere definito nello stesso progetto Google Cloud in cui crei la VM TPU. Gli account di servizio personalizzati utilizzati per le VM TPU devono avere il ruolo Visualizzatore TPU per chiamare l'API Cloud TPU. Se il codice in esecuzione nella VM TPU chiama altri servizi Google Cloud, deve disporre dei ruoli necessari per accedere a questi servizi.
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.
Crea una VM TPU utilizzando l'interfaccia a riga di comando gcloud
$ gcloud alpha 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
Crea una VM TPU utilizzando 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
Per utilizzare un account di servizio personalizzato, devi autorizzarlo per i bucket Google Cloud Storage. Per maggiori informazioni, consulta Connessione ai bucket Cloud Storage.
Metodi SSH per VM personalizzate
Configurare un firewall per SSH.
La rete predefinita è preconfigurata per consentire l'accesso SSH a tutte le VM. Se non utilizzi la rete predefinita o se le impostazioni di rete predefinite sono state modificate, potrebbe essere necessario abilitare in modo esplicito l'accesso SSH aggiungendo una regola firewall:
$ gcloud CLI compute firewall-rules create \ --network=network allow-ssh \ --allow=tcp:22
SSH nelle VM TPU.
$ gcloud compute tpus tpu-vm ssh tpu-name \ --zone=us-central2-b \ --project=project-id
Campi obbligatori
tpu-name
: nome del nodo TPU.zone
: la posizione del nodo TPU. Al momento è supportato soltanto l'IDus-central2-b
.project-id
: il progetto creato prima.
Per un elenco dei campi facoltativi, consulta la documentazione dell'API
gcloud
.