Informazioni sulle TPU in GKE


Questa pagina introduce Cloud TPU con Google Kubernetes Engine (GKE). Elaborazione del tensore Le TPU (TPU) sono gli strumenti integrati per applicazioni (ASIC) utilizzati per accelerare i carichi di lavoro di machine learning (ML) che utilizzano framework come TensorFlow PyTorch e JAX.

Prima di utilizzare le TPU in GKE, ti consigliamo di scoprire come gli acceleratori del machine learning Introduzione a Cloud TPU.

Questa pagina ti aiuta a comprendere le nozioni di base di Cloud TPU con Google Kubernetes Engine (GKE), compresi la terminologia, i vantaggi delle TPU e il carico di lavoro considerazioni sulla pianificazione.

Per scoprire come configurare Cloud TPU in GKE, consulta le seguenti risorse:

Vantaggi dell'utilizzo delle TPU in GKE

GKE fornisce il supporto completo per la gestione del ciclo di vita dei nodi TPU e del pool di nodi, incluse la creazione, la configurazione e l'eliminazione delle VM TPU. GKE supporta anche le VM spot e l'utilizzo Cloud TPU prenotato. La i vantaggi dell'utilizzo delle TPU in GKE includono:

  • Ambiente operativo coerente: puoi utilizzare un'unica piattaforma per tutto il machine learning e altri carichi di lavoro.
  • Upgrade automatici: GKE automatizza gli aggiornamenti delle versioni, riduce i costi operativi.
  • Bilanciamento del carico: GKE distribuisce il carico, riducendo così la latenza e il miglioramento dell'affidabilità.
  • Scalabilità reattiva: GKE scala automaticamente le risorse TPU per soddisfare le esigenze dei tuoi carichi di lavoro.
  • Gestione delle risorse: con Kueue, un sistema di accodamento dei job nativo di Kubernetes, puoi gestire le risorse a più tenant all'interno dell'organizzazione usando accodamento, prerilascio priorità ed equa condivisione.

Terminologia relativa a TPU in GKE

Questa pagina utilizza la seguente terminologia relativa alle TPU:

  • Tipo TPU: il tipo di Cloud TPU, ad esempio v5e.
  • Nodo sezione TPU:un nodo Kubernetes rappresentato da una singola VM con uno o più chip TPU interconnessi.
  • Pool di nodi della sezione TPU:un gruppo di nodi Kubernetes all'interno di un cluster che che hanno la stessa configurazione TPU.
  • Topologia TPU: il numero e la disposizione fisica dei chip TPU in una sezione TPU.
  • Atomico: GKE tratta tutti i nodi interconnessi come un una singola unità. Durante le operazioni di scalabilità, GKE scala l'intero di nodi a 0 e ne crea di nuovi. Se una macchina nel gruppo presenta errori GKE ricrea l'intero set di nodi come nuovo unità.
  • Immutabile: non puoi aggiungere manualmente nuovi nodi al set di nodi interconnessi nodi. Tuttavia, puoi creare un nuovo pool di nodi con la topologia TPU che desideri e pianificare i carichi di lavoro sul nuovo pool di nodi.

Tipo di pool di nodi della sezione TPU

GKE supporta due tipi di pool di nodi TPU:

Il tipo e la topologia di TPU determinano se il nodo della sezione TPU può essere multi-host o singolo host. Ti consigliamo di:

  • Per i modelli su larga scala, utilizza nodi delle sezioni TPU multi-host
  • Per i modelli su scala ridotta, utilizza nodi sezione TPU con host singolo

Pool di nodi della sezione TPU multi-host

Un pool di nodi della sezione TPU multi-host è un pool di nodi che contiene due o più VM TPU interconnesse. A ogni VM è connesso un dispositivo TPU. Le TPU una sezione TPU multi-host è connessa tramite un'interconnessione ad alta velocità (ICI). Una volta È stato creato un pool di nodi della sezione TPU multi-host, non puoi aggiungere nodi. Ad esempio: non puoi creare un pool di nodi v4-32 per poi aggiungere un altro pool di nodi (VM TPU) al pool di nodi. Per aggiungere un'ulteriore sezione TPU a un cluster GKE, devi creare un nuovo pool di nodi.

Le VM in un pool di nodi della sezione TPU multi-host vengono trattate come una singola unità atomica. Se GKE non è in grado di eseguire il deployment di un nodo nella sezione, dei nodi nel nodo della sezione TPU.

Se è necessario riparare un nodo all'interno di una sezione TPU multi-host, GKE arresta tutte le VM nella sezione TPU, forzando tutti i pod Kubernetes da rimuovere. Quando tutte le VM nella sezione TPU sono in esecuzione, I pod Kubernetes possono essere pianificati sulle VM nella nuova sezione TPU.

Il seguente diagramma mostra una TPU multi-host v5litepod-16 (v5e) sezione. Questa sezione TPU ha quattro VM. Ogni VM nella sezione TPU ha quattro chip TPU v5e connessi con interconnessioni ad alta velocità (ICI) e ogni chip TPU v5e ha un TensorCore.

Diagramma della sezione TPU multi-host

Il seguente diagramma mostra un cluster GKE che contiene uno Sezione TPU v5litepod-16 (v5e) TPU (topologia: 4x4) e una TPU v5litepod-8 (v5e) sezione (topologia: 2x4):

Diagramma del pod TPU v5e

Pool di nodi della sezione TPU con host singolo

Un pool di nodi con una sezione dell'host singolo è un pool di nodi che contiene una o più VM TPU indipendenti. A ogni VM è connesso un dispositivo TPU. Mentre le VM all'interno di un pool di nodi con sezione dell'host singolo possono comunicare rete (DCN), le TPU collegate alle VM non sono interconnesse.

Il diagramma seguente mostra un esempio di sezione TPU a host singolo che contiene sette v4-8 macchina:

Diagramma del pool di nodi della sezione dell'host singolo

Caratteristiche delle TPU in GKE

Le TPU hanno caratteristiche uniche che richiedono una pianificazione e una configurazione speciali.

Topologia

La topologia definisce la disposizione fisica delle TPU all'interno di una sezione TPU. GKE esegue il provisioning di una sezione TPU topologie bidimensionali o tridimensionali, a seconda la versione di TPU. Specifica una topologia come il numero di chip TPU in ogni , come indicato di seguito:

Per TPU v4 e v5p pianificati nei pool di nodi delle sezioni TPU multi-host, devi definire a tre tuple ({A}x{B}x{C}), ad esempio 4x4x4. Il prodotto di {A}x{B}x{C} definisce il numero di chip TPU nel pool di nodi. Ad esempio, puoi definire piccole topologie con meno di 64 chip TPU con forme di topologia come 2x2x2, 2x2x4 o 2x4x4. Se utilizzi topologie più grandi con più di 64 chip TPU, I valori assegnati a {A}, {B} e {C} devono soddisfare le seguenti condizioni:

  • {A}, {B} e {C} devono essere multipli di quattro.
  • La topologia più grande supportata per la versione 4 è 12x16x16, mentre la topologia v5p è 16x16x24.
  • I valori assegnati devono mantenere A ≤ B ≤ C pattern. Ad esempio, 4x4x8 o 8x8x8.

Tipo di macchina

I tipi di macchina che supportano le risorse TPU seguono una convenzione di denominazione che include la versione di TPU e il numero di chip TPU per sezione di nodo, come ct<version>-hightpu-<node-chip-count>t. Ad esempio, la macchina il tipo ct5lp-hightpu-1t supporta TPU v5e e contiene solo un chip TPU.

Modalità con privilegi

La modalità con privilegi ha la precedenza su molte delle altre impostazioni di sicurezza della securityContext. Per accedere alle TPU, i container in esecuzione nei nodi GKE tra:

  • La versione 1.28 e le versioni precedenti devono attivare la modalità con privilegi.
  • Le versioni 1.28 o successive non richiedono la modalità con privilegi.

Come funzionano le TPU in GKE

La gestione e l'assegnazione della priorità delle risorse di Kubernetes trattano le VM sulle TPU come le altre VM di testo. Per richiedere chip TPU, utilizza il nome risorsa google.com/tpu:

    resources:
        requests:
          google.com/tpu: 4
        limits:
          google.com/tpu: 4

Quando utilizzi le TPU GKE, devi considerare le seguenti caratteristiche di TPU:

  • Una VM può accedere a un massimo di 8 chip TPU.
  • Una sezione TPU contiene un numero fisso di chip TPU, con il numero a seconda del tipo di macchina TPU che scegli.
  • Il numero di richieste google.com/tpu deve essere uguale al numero totale di chip TPU disponibili sul nodo della sezione TPU. Qualsiasi container in un pod GKE che richiede le TPU, deve consumare all dai chip TPU nel nodo. In caso contrario, il deployment non va a buon fine, GKE non può consumare parzialmente le risorse TPU. Considera i seguenti scenari:
    • Il tipo di macchina ct5l-hightpu-8t ha un singolo nodo della sezione TPU con 8 chip TPU, quindi su un nodo:
      • Può eseguire il deployment di un pod GKE che richiede otto chip TPU.
      • Impossibile eseguire il deployment di due pod GKE che richiedono quattro chip TPU ciascuno.
    • Il tipo di macchina ct5lp-hightpu-4t con una topologia 2x4 contiene due Nodi della sezione TPU con quattro chip TPU ciascuno, per un totale di otto chip TPU. Con questo tipo di macchina:
      • Impossibile eseguire il deployment di un pod GKE che richiede otto chip TPU sui nodi in questo pool di nodi.
      • Può eseguire il deployment di due pod che richiedono quattro chip TPU ciascuno, ciascun pod su uno dei due nodi in questo pool di nodi.
    • TPU v5e con topologia 4x4 ha 16 chip TPU in quattro nodi. Lo strumento GKE Il carico di lavoro Autopilot che seleziona questa configurazione deve richiederne quattro Chip TPU in ogni replica, per una o quattro repliche.
  • Nei cluster Standard, è possibile pianificare più pod Kubernetes ma solo un container in ciascun pod può accedere ai chip TPU.
  • Per creare pod kube-system, come kube-dns, ogni modello il cluster deve avere almeno un pool di nodi con sezione non TPU.
  • Per impostazione predefinita, i nodi delle sezioni TPU hanno lo google.com/tpu incompatibilità che impedisce la pianificazione di carichi di lavoro non TPU sui nodi delle sezioni TPU. I carichi di lavoro che non utilizzano TPU vengono eseguiti su nodi non TPU, liberando computing su nodi della sezione TPU per il codice che utilizza le TPU. Tieni presente che l'incompatibilità per garantire l'utilizzo completo delle risorse TPU.
  • GKE raccoglie i log emessi dai container in esecuzione sui nodi delle sezioni TPU. Per saperne di più, vedi Logging.
  • Le metriche di utilizzo delle TPU, ad esempio le prestazioni di runtime, sono disponibili in e configurazione in Cloud Monitoring. Per saperne di più, vedi Osservabilità e metriche.

Passaggi successivi