Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Tipi e topologie TPU

Panoramica

Quando crei una configurazione TPU, devi specificare un tipo e delle dimensioni TPU oppure un tipo e una topologia TPU (una disposizione logica del chip). Esistono due modi per eseguire questa operazione in un'operazione gcloud create:

  • Crea una singola stringa accelerator-type che specifichi il tipo (v2, v3 o v4) e il numero di TensorCore richiesti
  • Specifica il parametro TPU type insieme al flag topology.

Consulta i tipi di TPU per esempi di creazione di TPU mediante la stringa accelerator-type o i flag type e topology.

Ulteriori informazioni sulle diverse versioni e topologie di Cloud TPU sono disponibili nel documento System Architecture,

Tipi di TPU

Utilizza il flag "accelerator-type" del comando gcloud per specificare una configurazione TPU. Una configurazione TPU è composta da una versione TPU e dal numero di TensorCore. Ad esempio, il seguente comando gcloud crea una TPU di v3 con 128 TensorCore:

    $ gcloud compute tpus tpu-vm create tpu-name
      --zone=zone
      --accelerator-type=v3-128
      --version=tpu-vm-tf-2.11.0

Puoi anche specificare la configurazione TPU come numero di chip TPU e disposizione logica (la topologia). Per ulteriori informazioni, consulta la pagina relativa alle configurazioni di TPU basate su chip.

Configurazioni TPU basate su TensorCore

Per tutti i tipi di TPU, la versione è seguita dal numero di TensorCore (ad es. 8, 32, 128). Ad esempio, --accelerator-type=v2-8 specifica un'istanza TPU di tipo v2 con 8 TensorCore e v3-1024 specifica una TPU di v3 con 1024 TensorCore (una sezione di un pod di v3).

Configurazioni TPU basate su chip

Le configurazioni v4 vengono specificate con una versione TPU e una topologia. La topologia è specificata con tre tuple che descrivono il modo in cui sono disposti i chip. Ad esempio, la configurazione 32-TensorCore può essere rappresentata nei chip come 2 x 2 x 4 (16 chip, ognuno con 2 TensorCore). La tripla specifica solo la topologia, non la configurazione, che richiede una versione TPU.

La rappresentazione di una topologia v4 è AxBxC dove A<=B<=C e A,B,C sono tutti <=4 o tutti i numeri interi interi di 4. I valori A, B e C sono i conteggi dei chip delle tre dimensioni. Le topologie in cui 2A=B=C o 2A=2B=C hanno anche varianti ottimizzate per la comunicazione complessiva, ad esempio 4×4×8, 8×8×16 e 12×12×24.

Per ulteriori informazioni sulle topologie v4, consulta Configurazioni TPU v4.

Creazione di topologie basate su chip-topology (v4)

La versione 4 mostra dispositivi anziché TensorCore, un dispositivo per chip. Per specificare le topologie basate su chipologia, la versione 4 ha introdotto i formati di topologia tridimensionale (ad esempio, 4 x 4 x 4) e un flag --topology per l'operazione di creazione di TPU di tipo gcloud. Le tabelle mostrate in Varianti di topologia includono esempi di altre topologie basate su chip-topologia supportate.

Puoi specificare un tipo e una topologia v4 utilizzando i flag type e topology per l'operazione di creazione gcloud. Ad esempio, il seguente comando gcloud crea una TPU v4 con 64 chip in una topologia cubo 4x4x4.

  $ gcloud alpha compute tpus tpu-vm create tpu-name
    --zone=zone
    --type=v4
    --topology=4x4x4
    --version=tpu-vm-tf-2.11.0

Il valore supportato per --type è v4.

Varianti di topologia

La topologia standard associata a un determinato TensorCore o numero di chip è la più simile a un cubo (vedi Forme di topologia). Questa forma rende probabilmente la scelta migliore per l'addestramento ML parallelo di dati. Altre topologie possono essere utili per carichi di lavoro con più tipi di parallelismo (ad esempio parallelismo di modelli e dati o partizionamento spaziale di una simulazione). Questi carichi di lavoro hanno un rendimento migliore se la forma della porzione viene abbinata al parallelismo utilizzato. Ad esempio, posizionando il parallelismo del modello a 4 vie sull'asse X e il parallelismo dei dati a 256 vie sulle dimensioni Y e Z corrisponde a una topologia 4x16x16.

I modelli con più dimensioni di parallelismo hanno un rendimento migliore: le dimensioni di parallelismo vengono mappate a quelle di Torus. Si tratta in genere di modelli DDM (data-model parallelo) per modelli di grandi dimensioni. Ad esempio, per una porzione di pod TPU v4 con topologia 8x16x16, le dimensioni di torus sono 8, 16 e 16. È più efficiente utilizzare il parallelismo dei modelli a 8 o 16 vie (associato a una delle dimensioni del torso fisico). Un parallelismo del modello a 4 vie sarebbe non ottimale con questa topologia, poiché non è in linea con alcuna dimensione torus, ma sarebbe ottimale con una topologia 4x16x32 sullo stesso numero di chip.

Piccole topologie v4

Cloud TPU supporta le seguenti sezioni TPU v4 di dimensioni inferiori a 64 chip, un cubo 4x4x4. Puoi creare queste piccole topologie v4 utilizzando il nome basato su TensorCore (ad esempio v4-32) o la loro topologia (ad esempio 2x2x4):

Nome (in base al conteggio di TensorCore) Numero di chip Topologia
versione 4-8 4 2x2x1
versione 4-16 8 2x2x2
v4-32 16 2x2x4
versione 4-64 32 2x4x4

Topologie v4 di grandi dimensioni

Le sezioni TPU v4 sono disponibili in incrementi di 64 chip, con forme che sono multipli di 4 in tutte e tre le dimensioni. Anche le dimensioni devono essere in ordine crescente. Di seguito sono riportati diversi esempi. Alcune di queste topologie sono topologie "personalizzate" che possono essere lanciate solo utilizzando l'API topology perché hanno lo stesso numero di chip di una topologia denominata più comunemente usata.

Nome (in base al conteggio di TensorCore) Numero di chip Topologia
versione 4-128 64 4x4x4
versione 4-256 128 4x4x8
versione 4-512 256 4x8x8
Consulta la pagina relativa all'API Topology 256 4x4x16
versione 4-1024 512 8x8x8
versione 4-1536 768 8x8x12
versione 4-2048 1024 8x8x16
Consulta la pagina relativa all'API Topology 1024 4x16x16
versione 4-4096 2048 8x16x16

API Topology

Per creare sezioni del pod di Cloud TPU con topologia personalizzata, puoi utilizzare l'API TPU gcloud come segue:

     $ gcloud alpha compute tpus tpu-vm create tpu-name \
        --zone=us-central2-b \
        --subnetwork=tpusubnet \
        --type=v4 \
        --topology=4x4x16 \
        --version=runtime-version

Forme di topologia

L'immagine seguente mostra tre possibili forme di topologia e le relative impostazioni di flag topology associate.

immagine

Compatibilità con i tipi di TPU

Puoi cambiare il tipo di TPU con un altro tipo con lo stesso numero di TensorCore o chip (ad esempio, v3-128 e v4-128) ed eseguire il tuo script di addestramento senza modifiche al codice. Tuttavia, se passi a un tipo TPU con un numero maggiore o minore di chip o TensorCore, dovrai eseguire ottimizzazioni e ottimizzazioni significative. Per ulteriori informazioni, consulta Formazione sui pod TPU.

Passaggi successivi