Informazioni sulle GPU in Google Kubernetes Engine (GKE)


Questa pagina ti consente di valutare le opzioni per richiedere GPU in Google Kubernetes Engine (GKE), tra cui:

In GKE, il modo in cui richiedi l'hardware GPU dipende dal fatto che tu stia utilizzando la modalità Autopilot o Standard. In Autopilot, richiedi l'hardware GPU specificando le risorse GPU nei carichi di lavoro. In modalità GKE Standard, puoi collegare l'hardware GPU ai nodi nei tuoi cluster e poi allocare le risorse GPU dei carichi di lavoro containerizzati in esecuzione sui nodi. Per istruzioni dettagliate su come collegare e utilizzare le GPU nei tuoi carichi di lavoro, consulta Eseguire il deployment dei carichi di lavoro GPU su Autopilot o Eseguire le GPU sui pool di nodi standard.

L'hardware GPU disponibile per l'utilizzo in GKE è un sottoinsieme delle GPU di Compute Engine per i carichi di lavoro di calcolo. L'hardware specifico disponibile dipende dalla regione o dalla zona di Compute Engine del cluster. Per informazioni sulla disponibilità specifica, consulta Regioni e zone GPU.

GKE offre alcune funzionalità specifiche per le GPU per migliorare l'utilizzo efficiente delle risorse GPU dei carichi di lavoro in esecuzione sui tuoi nodi, tra cui il tempo di condivisione, le GPU a più istanze e le GPU a più istanze con NVIDIA MPS.

Quota GPU del piano

La quota GPU è il numero massimo di GPU che possono essere eseguite nel tuo progetto Google Cloud. Per utilizzare GPU nei cluster GKE, il progetto deve avere una quota GPU sufficiente.

La quota GPU deve essere almeno uguale al numero totale di GPU che intendi eseguire nel cluster. Se attivi la scalabilità automatica del cluster, devi richiedere una quota GPU almeno equivalente al numero massimo di nodi del cluster moltiplicato per il numero di GPU per nodo.

Ad esempio, se prevedi di utilizzare tre nodi con due GPU ciascuno, la quota GPU richiesta per il tuo progetto sarà sei.

Per richiedere una quota GPU aggiuntiva, segui le istruzioni riportate in Richiedere un limite di quota più alto, utilizzando gpus come metrica.

Scegli il supporto GPU utilizzando Autopilot o Standard

Le GPU sono disponibili in Autopilot e Standard cluster. Ti consigliamo di usare i cluster Autopilot per un ambiente Kubernetes un'esperienza senza intervento manuale. In Autopilot, GKE gestisce l'installazione dei driver, la scalabilità dei nodi, l'isolamento dei pod e il provisioning dei nodi.

La seguente tabella offre una panoramica delle differenze tra il supporto GPU Autopilot e Standard:

Descrizione Autopilot Standard
Richiesta di hardware GPU Specifica le risorse GPU nei carichi di lavoro. Collega l'hardware GPU ai nodi dei tuoi cluster e poi alloca le risorse GPU ai carichi di lavoro containerizzati in esecuzione su questi nodi.
Disponibilità dell'hardware GPU
  • NVIDIA T4
  • NVIDIA L4
  • NVIDIA A100 da 40 GB
  • NVIDIA A100 da 80 GB
  • NVIDIA H100 da 80 GB
Tutti i tipi di GPU supportati da Compute Engine
Selezione di una GPU Richiedi una quantità di GPU e digita la specifica del carico di lavoro. Per impostazione predefinita, Autopilot installa il driver predefinito per la versione GKE in questione e gestisce i tuoi nodi. Per selezionare una versione specifica del driver in Autopilot, consulta la sezione Selezione dei driver NVIDIA per i pod GPU Autopilot. Esegui i passaggi descritti in Eseguire GPU su pool di nodi standard:
  1. Crea un pool di nodi con il tipo di GPU specifico e il corrispondente tipo di macchina Compute Engine e scegli un driver da installare.
  2. Installa manualmente i driver GPU sui nodi se non hai utilizzato l'installazione automatica.
  3. Richiedi le quantità di GPU nella specifica del pod.
Migliora l'utilizzo della GPU
Sicurezza GPU con GKE Sandbox GPU con GKE Sandbox
Prezzi Prezzi dei pod GPU Autopilot Prezzi delle GPU di Compute Engine

Per scegliere la modalità operativa GKE più adatta ai tuoi carichi di lavoro, consulta Scegliere una modalità operativa GKE.

Gestisci lo stack GPU tramite GKE o l'operatore GPU NVIDIA su GKE

Per impostazione predefinita, GKE gestisce l'intero ciclo di vita dei nodi GPU, tra cui l'installazione automatica del driver GPU, monitorando i carichi di lavoro GPU su GKE con Gestore GPU NVIDIA Data Center (DCGM) e le strategie di condivisione delle GPU.

Ti consigliamo di utilizzare GKE per gestire i nodi GPU, poiché GKE gestisce completamente il ciclo di vita dei nodi GPU. Per iniziare a utilizzare GKE per la gestione dei nodi GPU, scegli una delle seguenti opzioni:

L'operatore GPU NVIDIA può essere usato in alternativa al supporto GPU completamente gestito su GKE sulle immagini dei nodi sia Container-Optimized OS (COS) sia Ubuntu. Seleziona questa opzione se stai cercando un'esperienza coerente su più provider di servizi cloud, se utilizzi già l'operatore GPU NVIDIA o se utilizzi software che dipende dall'operatore GPU NVIDIA. Per saperne di più, vedi Gestisci lo stack GPU con l'operatore GPU NVIDIA.

Per selezionare l'opzione migliore per il tuo caso d'uso, consulta la tabella seguente che confronta i due metodi di gestione dei nodi GPU su GKE.

Descrizione Utilizza GKE per gestire i nodi GPU Utilizza l'operatore GPU NVIDIA su GKE
Gestione del ciclo di vita dei nodi GPU (installazione, upgrade) Completamente gestito da GKE. Gestiti dall'utente.
Installazione dei driver Installazione automatica e manuale dei driver GPU. Installazione manuale dei driver GPU.
Selettori di nodi cloud.google.com/gke-gpu=true nvidia.com/gpu=true
Strategie di condivisione delle GPU
  • Servizio multiprocesso: non supportato.
Controllo di integrità dei nodi GPU
  • Attiva la riparazione del nodo tra 15 minuti se il numero di GPU allocabili non è uguale alla capacità e la riparazione automatica è abilitata.
  • Monitora tutti i codici di errore per impostazione predefinita.
  • Attiva la riparazione del nodo in 15 minuti se il numero di GPU allocabili non è uguale alla capacità e la riparazione automatica è abilitata.
Metriche e osservabilità
  • Con le metriche di sistema abilitate, in Cloud Monitoring sono disponibili le seguenti metriche GPU: ciclo di lavoro, utilizzo della memoria e capacità della memoria.
  • DCGM autogestito fornito dall'operatore GPU.
  • Anche se le metriche di sistema GPU di GKE sono abilitate, le metriche di sistema relative alla GPU non vengono raccolte, inclusi ciclo di lavoro, utilizzo della memoria e capacità della memoria.

Ottimizza l'utilizzo delle risorse utilizzando le funzionalità GPU in GKE

Per impostazione predefinita, Kubernetes supporta solo l'assegnazione di GPU come unità complete ai contenitori, ma GKE fornisce funzionalità aggiuntive che puoi utilizzare per ottimizzare l'utilizzo delle risorse dei carichi di lavoro GPU.

In GKE sono disponibili le seguenti funzionalità per ridurne la quantità delle risorse GPU sottoutilizzate:

Funzionalità GPU
GPU a più istanze

Disponibile su: Autopilot e Standard

Suddividi una singola GPU in un massimo di sette istanze separate dall'hardware che possono essere assegnate come singole GPU ai container su un nodo. Ogni contenitore assegnato riceve le risorse disponibili per quell'istanza.

GPU con condivisione del tempo

Disponibile su: Autopilot e Standard

Presenta una singola GPU come più unità a più container su un nodo. Il driver GPU cambia contesto e alloca la GPU completa a ciascun container assegnato, secondo le necessità nel tempo.

NVIDIA MPS

Disponibile su: Standard

Condividi una singola GPU NVIDIA fisica su più container. NVIDIA MPS è un'implementazione alternativa compatibile con i binari dell'API CUDA progettata per consentire in modo trasparente l'esecuzione in contemporanea su un singolo dispositivo GPU di applicazioni CUDA cooperative con più processi.

Accedi alle librerie NVIDIA CUDA-X per le applicazioni CUDA

CUDA è la piattaforma di calcolo parallelo e il modello di programmazione di NVIDIA per le GPU. Per utilizzare le applicazioni CUDA, l'immagine che utilizzi deve avere le librerie. Per aggiungere le librerie NVIDIA CUDA-X, puoi creare e utilizzare la tua immagine includendo i seguenti valori nella variabile di ambiente LD_LIBRARY_PATH nella specifica del contenitore:

  • /usr/local/cuda-CUDA_VERSION/lib64: il posizione delle librerie NVIDIA CUDA-X sul nodo.

    Sostituisci CUDA_VERSION con la versione dell'immagine CUDA-X che che hai utilizzato. Alcune versioni contengono anche utilità di debug /usr/local/nvidia/bin. Per maggiori dettagli, vedi l'immagine NVIDIA CUDA su DockerHub.

    Per controllare la versione minima del driver GPU richiesta per la tua versione di CUDA, consulta CUDA Toolkit e versioni dei driver compatibili.

  • /usr/local/nvidia/lib64: la posizione del Driver di dispositivi NVIDIA.
Assicurati che la versione della patch GKE in esecuzione sui tuoi nodi includa una versione del driver GPU compatibile con la versione di CUDA scelta. Per un elenco delle versioni dei driver GPU associate alla versione GKE, consulta la pagina del sistema operativo Container-Optimized OS corrispondente collegata nella tabella delle versioni correnti di GKE.

Nei cluster Autopilot, GKE gestisce la selezione e l'installazione della versione del driver.

Monitorare il rendimento del carico di lavoro del nodo GPU

Se nel tuo cluster GKE sono attivate le metriche di sistema, in Cloud Monitoring sono disponibili le seguenti metriche per monitorare le prestazioni del carico di lavoro GPU:

  • Duty cycle (container/accelerator/duty_cycle): Percentuale di tempo nell'ultimo periodo di campionamento (10 secondi) durante il quale l'acceleratore ha eseguito attivamente l'elaborazione. Tra 1 e 100.
  • Memoria utilizzata (container/accelerator/memory_used): Quantità di memoria dell'acceleratore allocata in byte.
  • Capacità memoria (container/accelerator/memory_total): Memoria dell'acceleratore totale in byte.

Puoi utilizzare le dashboard predefinite per monitorare i cluster con nodi GPU. Per ulteriori informazioni, consulta Visualizzare le metriche di osservabilità. Per informazioni generali sul monitoraggio dei cluster e delle relative risorse, consulta Osservabilità per GKE.

Visualizza le metriche di utilizzo per i carichi di lavoro

Puoi visualizzare le metriche di utilizzo della GPU dei carichi di lavoro dal Carichi di lavoro nella console Google Cloud.

Per visualizzare l'utilizzo delle GPU del carico di lavoro, segui questi passaggi:

  1. Vai alla pagina Carichi di lavoro nella console Google Cloud.

    Vai a Carichi di lavoro
  2. Seleziona un carico di lavoro.

La dashboard Carichi di lavoro mostra i grafici relativi all'utilizzo e alla capacità della memoria GPU, nonché al ciclo di lavoro della GPU.

Visualizzare le metriche di NVIDIA Data Center GPU Manager (DCGM)

Puoi raccogliere e visualizzare le metriche NVIDIA DCGM utilizzando Google Cloud Managed Service per Prometheus. Per i cluster Autopilot, GKE installa i driver. Per i cluster Standard, devi installare i driver NVIDIA.

Per istruzioni su come eseguire il deployment del pacchetto DCGM gestito da GKE, consulta Raccogliere e visualizzare le metriche di NVIDIA Data Center GPU Manager (DCGM).

Gestire l'interruzione a causa della manutenzione dei nodi

I nodi GKE che ospitano le GPU sono soggetti a manutenzione o altre interruzioni che potrebbero causare l'arresto del nodo. Nei cluster GKE con il piano di controllo che esegue la versione 1.29.1-gke.1425000 e successive, puoi ridurre l'interruzione dei carichi di lavoro configurando GKE in modo che li interrompa in modo corretto.

Per comprendere, configurare e monitorare gli eventi di interruzione che potrebbero verificarsi sui nodi GKE che eseguono carichi di lavoro di AI/ML, vedi Gestire l'interruzione dei nodi GKE per GPU e TPU.

Passaggi successivi