Architettura di sistema

Le TPU (Tensor Processing Unit) sono circuiti integrati per applicazioni specifiche (ASIC) progettati da Google per accelerare i carichi di lavoro di machine learning. Cloud TPU è un servizio di Google Cloud che rende disponibili le TPU come risorse scalabili.

Le TPU sono progettate per eseguire rapidamente operazioni con le matrici, il che le rende ideali per i carichi di lavoro di machine learning. È possibile eseguire carichi di lavoro di machine learning sulle TPU utilizzando framework come TensorFlow, Pytorch e JAX.

Termini di Cloud TPU

Se non hai mai utilizzato le Cloud TPU, consulta la home page della documentazione delle TPU. Le seguenti sezioni spiegano i termini e i concetti correlati utilizzati in questo documento.

Inferenza batch

L'inferenza batch o offline si riferisce all'esecuzione dell'inferenza al di fuori delle pipeline di produzione, in genere su una maggior parte degli input. L'inferenza batch è usata per attività offline come l'etichettatura dei dati e anche per valutare il modello addestrato. Gli SLO di latenza non sono una priorità per l'inferenza batch.

Chip TPU

Un chip TPU contiene uno o più TensorCore. Il numero di TensorCore dipende dalla versione del chip TPU. Ciascun TensorCore è composto da una o più unità di moltiplicazione matriciale (MXU), un'unità vettoriale e un'unità scalare.

Un MXU è composto da 128 moltiplicatori x 128 in un array sistolica. Gli MXU forniscono la maggior parte della potenza di calcolo di un TensorCore. Ogni MXU è in grado di eseguire 16.000 operazioni di moltiplicazione per ciclo. Tutti i multipli ricevono input bfloat16, ma tutti gli accumuli vengono eseguiti nel formato numerico FP32.

L'unità vettoriale viene utilizzata per calcoli generici come attivazioni e softmax. L'unità scalare viene utilizzata per il flusso di controllo, per il calcolo degli indirizzi di memoria e per altre operazioni di manutenzione.

Cubo TPU

Una topologia 4x4x4. Questo vale solo per le topologie 3D (a partire dalla versione TPU v4).

Inferenza

L'inferenza è il processo che prevede l'utilizzo di un modello addestrato per fare previsioni sulla base di nuovi dati. Viene utilizzato dal processo di pubblicazione.

Più sezioni e sezioni singole

Multislice è un gruppo di sezioni che estende la connettività TPU oltre le connessioni ICI (Inter-chip Interconnect) e sfrutta la rete di data center (DCN) per la trasmissione di dati oltre una sezione. I dati all'interno di ogni sezione sono ancora trasmessi da ICI. Grazie a questa connettività ibrida, l'opzione Multislice consente il parallelismo tra le sezioni e consente di utilizzare un numero di core TPU per un singolo job superiore rispetto a quanto consentito da un'unica sezione.

Le TPU possono essere utilizzate per eseguire un job su una singola sezione o su più sezioni. Per ulteriori dettagli, consulta l'introduzione a Multislice.

Resilienza ICI di Cloud TPU

La resilienza ICI contribuisce a migliorare la tolleranza di errore dei collegamenti ottici e degli interruttori del circuito ottico (OCS) che collegano le TPU tra cubi. (Le connessioni ICI all'interno di un cubo utilizzano maglie in rame che non sono interessate). La resilienza di ICI consente di instradare le connessioni ICI intorno a errori OCS e ICI. Di conseguenza, migliora la disponibilità della pianificazione delle sezioni TPU, con il compromesso di un peggioramento temporaneo delle prestazioni di ICI.

Come in Cloud TPU v4, la resilienza ICI è abilitata per impostazione predefinita per le sezioni v5p di un cubo o più grandi:

  • v5p-128 quando si specifica il tipo di accleratore
  • 4:4x4 quando specifichi la configurazione dell'acceleratore

Risorsa in coda

Una rappresentazione delle risorse TPU, utilizzata per accodare e gestire una richiesta per un ambiente TPU a una o più sezioni. Per ulteriori informazioni, consulta la guida dell'utente sulle risorse in coda.

Pubblicazione

La pubblicazione è il processo di deployment di un modello addestrato di machine learning in un ambiente di produzione in cui può essere utilizzato per fare previsioni o prendere decisioni. La latenza e la disponibilità a livello di servizio sono importanti per la distribuzione.

Host singolo e multi host

Un host TPU è una VM in esecuzione su un computer fisico collegato all'hardware TPU. I carichi di lavoro TPU possono utilizzare uno o più host.

Un carico di lavoro con host singolo è limitato a una VM TPU. Un carico di lavoro multi-host distribuisce l'addestramento su più VM TPU.

Sezioni

Una sezione di pod è una raccolta di chip tutti situati all'interno dello stesso pod di TPU collegati da interconnessioni tra chip (ICI) ad alta velocità. Le sezioni sono descritte in termini di chip o TensorCore, a seconda della versione della TPU.

Anche forma chip e topologia chip fanno riferimento alle forme delle sezioni.

SparseCore

v5p include quattro SparseCore per chip, ovvero processori Dataflow che accelerano i modelli basati sugli incorporamenti presenti nei modelli di suggerimento.

pod di TPU

Un pod di TPU è un insieme contiguo di TPU raggruppate su una rete specializzata. Il numero di chip TPU in un pod di TPU dipende dalla versione della TPU.

VM o worker TPU

Una macchina virtuale che esegue Linux che ha accesso alle TPU sottostanti. Una VM TPU è nota anche come worker.

TensorCores

I chip TPU hanno uno o due TensorCore per eseguire la moltiplicazione delle matrici. Per ulteriori informazioni su TensorCore, consulta questo articolo su ACM.

Worker

Vedi VM TPU.

Versioni TPU

L'architettura esatta di un chip TPU dipende dalla versione della TPU utilizzata. Ogni versione di TPU supporta anche dimensioni e configurazioni delle sezioni diverse. Per ulteriori informazioni sull'architettura di sistema e sulle configurazioni supportate, consulta le seguenti pagine:

Architetture TPU

Esistono due architetture TPU che descrivono come una VM è fisicamente connessa al dispositivo TPU: nodo TPU e VM TPU. Il nodo TPU era l'architettura TPU originale per le versioni TPU v2 e v3. Con la versione 4, la VM TPU è diventata l'architettura predefinita, ma entrambe le architetture erano supportate. L'architettura dei nodi TPU è deprecata ed è supportata solo la VM TPU. Se utilizzi i nodi TPU, consulta la sezione relativa al passaggio dal nodo TPU all'architettura delle VM TPU per convertire il nodo TPU all'architettura delle VM TPU.

Architettura VM TPU

L'architettura VM TPU consente di connetterti direttamente alla VM fisicamente connessa al dispositivo TPU tramite SSH. Hai accesso root alla VM, quindi puoi eseguire codice arbitrario. Puoi accedere ai messaggi di errore e ai log di debug del compilatore e di runtime.

immagine

Architettura del nodo TPU

L'architettura dei nodi TPU è composta da una VM utente che comunica con l'host TPU tramite gRPC. Quando utilizzi questa architettura, non puoi accedere direttamente all'host TPU, il che rende difficile il debug degli errori di addestramento e di TPU.

immagine

Spostamento dal nodo TPU all'architettura delle VM TPU

Se hai TPU che utilizzano l'architettura dei nodi TPU, segui questi passaggi per identificarle, eliminarle ed eseguirne nuovamente il provisioning come VM TPU.

  1. Vai alla pagina TPU:

    Vai alle TPU

    1. Individua la tua TPU e la sua architettura sotto l'intestazione Architecture. Se l'architettura è"TPU VM", non è richiesta alcuna azione da parte tua. Se l'architettura è "Nodo TPU", devi eliminare ed eseguire nuovamente il provisioning della TPU.
  2. Elimina ed esegui nuovamente il provisioning della TPU.

    Consulta la sezione Gestione delle TPU per le istruzioni sull'eliminazione e sul reprovisioning delle TPU.

Passaggi successivi