Architettura di sistema

Le TPU (Tensor Processing Unit) sono circuiti integrati specifici per le applicazioni (ASIC) progettati da Google per accelerare i carichi di lavoro di machine learning. Cloud TPU è un servizio 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 carichi di lavoro di machine learning. Puoi eseguire carichi di lavoro di machine learning sulle TPU utilizzando 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 della produzione pipeline in genere su una grande quantità di input. L'inferenza batch viene utilizzata per la modalità offline come l'etichettatura dei dati e la valutazione del 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 la versione del chip TPU. Ogni TensorCore è composto da uno o più 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. Tutte le moltiplicazioni prendono bfloat16, ma tutti gli accumuli vengono eseguiti 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, il calcolo degli indirizzi di memoria e altre le operazioni di manutenzione.

Cubo TPU

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

Inferenza

L'inferenza è il processo che prevede l'utilizzo di un modello addestrato per fare previsioni su nuovi e i dati di Google Cloud. Viene utilizzato dal processo di pubblicazione.

Più sezioni e sezioni singole

L'opzione Multislice è un gruppo di sezioni, che estende la connettività TPU oltre le connessioni inter-chip Interconnect (ICI) e sfruttare le risorse rete (DCN) per la trasmissione dei dati oltre una sezione. I dati all'interno di ogni sezione sono trasmessi da ICI. Utilizzo di questo modello ibrido la connettività multisezione consente il parallelismo tra le sezioni e consente di utilizzare un numero maggiore per un singolo job rispetto a quelli che è in grado di accogliere con una singola sezione.

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

Resilienza ICI di Cloud TPU

La resilienza dell'ICI aiuta a migliorare la tolleranza di errore dei collegamenti ottici e interruttori a 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 OCS e ICI ottica di errore. Di conseguenza, migliora la disponibilità della pianificazione delle TPU sezioni, con il compromesso di un peggioramento temporaneo delle prestazioni di ICI.

Come per Cloud TPU v4, la resilienza di 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 di un ambiente TPU a una o più sezioni. Consulta la guida dell'utente sulle risorse in coda per ulteriori informazioni.

Pubblicazione

La pubblicazione è il processo di deployment di un modello di machine learning addestrato 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 collegate tramite inter-chip ad alta velocità (ICI). Le sezioni vengono 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 che sono Dataflow che accelerano i modelli basati sugli incorporamenti presenti nei suggerimenti di grandi dimensioni.

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 è anche noto come lavoratore.

TensorCores

I chip TPU hanno uno o due TensorCore per eseguire la moltiplicazione delle matrici. Per ulteriori informazioni su TensorCores, consulta questo articolo 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, vedi le pagine seguenti:

Architetture TPU

Esistono due architetture TPU che descrivono come una VM sia fisicamente connesso al dispositivo TPU: nodo TPU e VM TPU. Il nodo TPU era l'originale Architettura TPU per le versioni TPU v2 e v3. Con la versione v4, la VM TPU è diventata predefinita, ma erano supportate entrambe. Il nodo TPU è deprecata ed è supportata solo la VM TPU. Se utilizzando i nodi TPU, consulta la sezione Spostamento dal nodo TPU all'architettura VM TPU per eseguire la conversione dal nodo TPU all'architettura delle VM TPU.

Architettura VM TPU

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

immagine

Architettura del nodo TPU

L'architettura dei nodi TPU è composta da una VM utente che comunica con la TPU tramite gRPC. Quando utilizzi questa architettura, non puoi accedere direttamente alla TPU Host, rendendo 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, attieniti alla procedura seguente per e di 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 la TPU ed eseguirne nuovamente il provisioning.
  2. Elimina ed esegui nuovamente il provisioning della TPU.

    Consulta la sezione Gestione delle TPU per Istruzioni sull'eliminazione e le TPU di reprovisioning.

Passaggi successivi