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 le TPU disponibili come risorsa scalabile.

Le TPU sono progettate per eseguire rapidamente operazioni con matrice, ideali per i carichi di lavoro di machine learning. Puoi 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 per TPU. Le seguenti sezioni illustrano i termini e i concetti correlati utilizzati in questo documento.

Inferenza batch

L'inferenza batch o offline si riferisce all'inferenza al di fuori delle pipeline di produzione, in genere su una maggior parte degli input. L'inferenza batch viene utilizzata per attività offline come l'etichettatura dei dati, nonché per 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 dalla versione del chip TPU. Ogni TensorCore è costituito da una o più unità di moltiplicazione matriciale (MXU), da un'unità vettoriale e da un'unità scalare.

Un MXU è composto da 128 x 128 accumulatori multipli in un array sistolico. Le MXU forniscono la maggior parte della potenza di calcolo di un oggetto TensorCore. Ogni MXU è in grado di eseguire 16.000 operazioni a accumulazione moltiplicata per ciclo. Tutti i moltiplicamenti prendono gli input bfloat16, ma tutti gli accumuli vengono eseguiti nel formato numerico FP32.

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

Cubo TPU

Una topologia 4x4x4. Si applica solo alle topologie 3D (a partire dalla versione TPU v4).

Inferenza

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

Multisezione o sezione singola

Multislice è un gruppo di sezioni che estende la connettività TPU oltre le connessioni Inter-Chip Interconnect (ICI) e sfrutta la rete di data center (DCN) per la trasmissione di dati oltre una sezione. I dati all'interno di ogni sezione sono comunque trasmessi da ICI. Grazie a questa connettività ibrida, Multislice consente il parallelismo tra le sezioni e consente di utilizzare per un singolo job un numero maggiore di core TPU rispetto a quanto consentito da una singola 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 aiuta a migliorare la tolleranza di errore dei collegamenti ottici e degli switch di circuito ottici (OCS) che collegano le TPU tra cubi. (le connessioni ICI all'interno di un cubo usano maglie in rame non interessate). La resilienza ICI consente il routing delle connessioni ICI intorno a OCS e guasti ICI ottici. Di conseguenza, migliora la disponibilità di pianificazione delle sezioni TPU, con il compromesso del degrado temporaneo delle prestazioni ICI.

Analogamente a Cloud TPU v4, la resilienza ICI è abilitata per impostazione predefinita per le sezioni v5p di almeno un cubo:

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

Risorsa in coda

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

Gestione

La pubblicazione è il processo di deployment di un modello di machine learning addestrato 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 gestione.

Host singolo e multihost

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

Un carico di lavoro con un solo host è 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 situati all'interno dello stesso pod di TPU collegato tramite interconnessioni di 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 facendo affidamento sugli incorporamenti trovati 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 con Linux che ha accesso alle TPU sottostanti. Una VM TPU è anche nota come worker.

TensorCores

I chip TPU hanno uno o due TensorCore per eseguire la moltiplicazione della matrice. Per ulteriori informazioni sui TensorCore, consulta questo articolo di ACM.

Worker

Vedi TPU VM.

Versioni TPU

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

Architetture VM di Cloud TPU

La modalità di interazione con l'host TPU (e la scheda TPU) dipende dall'architettura della VM TPU che stai utilizzando: nodi TPU o VM TPU.

Architettura VM TPU

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

immagine

Architettura dei nodi TPU

L'architettura del nodo 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, rendendo difficile il debug degli errori di addestramento e di TPU.

immagine

Passaggi successivi