Questa pagina descrive le GPU in Google Kubernetes Engine (GKE) per aiutarti a selezionare la configurazione GPU ottimale per i tuoi carichi di lavoro. Se vuoi eseguire il deployment di carichi di lavoro GPU che utilizzano Slurm, consulta Crea un cluster Slurm ottimizzato per l'AI invece.
Puoi utilizzare le GPU per accelerare le attività che richiedono molte risorse, come il machine learning e l'elaborazione dei dati. Le informazioni in questa pagina possono aiutarti a:
- Garantire la disponibilità della GPU quando necessario.
- Decidi se utilizzare le GPU in modalità GKE Autopilot o nei cluster in modalità GKE Standard.
- Scegli le funzionalità correlate alla GPU per utilizzare in modo efficiente la capacità della GPU.
- Monitora le metriche dei nodi GPU.
- Migliora l'affidabilità del workload GPU gestendo le interruzioni in modo più efficace.
Questa pagina è destinata agli amministratori e operatori della piattaforma e agli ingegneri di machine learning (ML) che vogliono assicurarsi che l'infrastruttura dell'acceleratore sia ottimizzata per i tuoi workload.
Prima di leggere questa pagina, assicurati di avere familiarità con quanto segue:
Selezione della GPU in GKE
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 tuoi workload. In modalità GKE Standard, puoi collegare hardware GPU ai nodi dei tuoi cluster e poi allocare risorse GPU ai carichi di lavoro containerizzati in esecuzione su questi nodi. Per istruzioni dettagliate su come collegare e utilizzare le GPU nei carichi di lavoro, consulta Esegui il deployment di carichi di lavoro GPU su Autopilot o Esegui GPU su pool di nodi standard.
GKE offre alcune funzionalità specifiche per le GPU per migliorare l'utilizzo efficiente delle risorse GPU dei carichi di lavoro in esecuzione sui nodi, tra cui time-sharing, GPU multi-istanza e GPU multi-istanza con NVIDIA MPS.
Questa pagina ti aiuta a valutare le scelte per richiedere GPU in GKE, tra cui:
- Scegliere la quota di GPU, il numero massimo di GPU che possono essere eseguite nel tuo progetto
- Scegliere tra le modalità Autopilot e Standard
- Gestire lo stack GPU tramite GKE o NVIDIA GPU Operator su GKE
- Scelta delle funzionalità per ridurre la quantità di risorse GPU sottoutilizzate
- Accesso alle librerie NVIDIA CUDA-X per le applicazioni CUDA
- Monitoraggio delle metriche dei nodi GPU
- Gestire l'interruzione dovuta alla manutenzione dei nodi
- Utilizzare GKE Sandbox per proteggere i carichi di lavoro GPU
Modelli di GPU disponibili
L'hardware GPU disponibile per l'utilizzo in GKE è un sottoinsieme dei modelli di GPU disponibili su Compute Engine. L'hardware specifico disponibile dipende dalla regione o dalla zona Compute Engine del cluster. Per saperne di più sulla disponibilità specifica, consulta Regioni e zone GPU.
I tipi di macchine più performanti diGoogle Cloud, come A4X, A4 e A3 Ultra, richiedono una configurazione specifica per massimizzare le prestazioni dell'hardware sottostante. I dettagli su come configurare i cluster GKE per utilizzare questi tipi di macchine GPU si trovano nella documentazione di AI Hypercomputer, che illustra le funzionalità del sistema di supercomputing integrato di Google Cloud.
Per informazioni su come creare cluster GKE ottimizzati per l'AI con questi tipi di macchine, consulta quanto segue:
- Per eseguire rapidamente il deployment di cluster GKE pronti per la produzione, crea un cluster GKE ottimizzato per l'AI con la configurazione predefinita.
Per la personalizzazione o l'espansione precise degli ambienti GKE di produzione esistenti, utilizza Google Cloud CLI per creare un cluster GKE. Scegli una delle seguenti istruzioni in base al tipo di macchina e alla GPU che vuoi utilizzare:
Per informazioni sui prezzi delle GPU, consulta gli SKUGoogle Cloud e la pagina dei prezzi delle GPU.
Pianificare la quota di GPU
La quota di GPU è il numero massimo di GPU che possono essere eseguite nel tuo progettoGoogle Cloud . Per utilizzare le GPU nei cluster GKE, il progetto deve disporre di una quota GPU sufficiente. Consulta la pagina Quote per assicurarti di disporre di un numero sufficiente di GPU nel progetto.
La quota GPU deve essere almeno pari al numero totale di GPU che intendi eseguire nel cluster. Se abiliti la scalabilità automatica del cluster, devi richiedere una quota di 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, sei è la quota di GPU richiesta per il tuo progetto.
Per richiedere una quota GPU aggiuntiva, segui le istruzioni per
richiedere un aggiustamento della quota utilizzando
gpus come metrica.
Scegliere il supporto GPU utilizzando Autopilot o Standard
Le GPU sono disponibili nei cluster Autopilot e Standard.
Utilizza i cluster Autopilot per un'esperienza Kubernetes completamente gestita. In Autopilot, GKE gestisce l'installazione dei driver, lo scaling dei nodi, l'isolamento dei pod e il provisioning dei nodi.
La seguente tabella fornisce una panoramica delle differenze tra il supporto delle GPU Autopilot e Standard:
| Descrizione | Autopilot | Standard |
|---|---|---|
| Richiesta di hardware GPU | Specifica le risorse GPU nei tuoi workload. | Collega l'hardware GPU ai nodi dei cluster e poi alloca le risorse GPU ai workload containerizzati in esecuzione su questi nodi. |
| Disponibilità dell'hardware GPU |
|
Tutti i tipi di GPU supportati da Compute Engine |
| Selezionare una GPU | Specifichi la quantità e il tipo di GPU nella specifica del carico di lavoro. Per impostazione predefinita, Autopilot installa il driver predefinito per quella versione di GKE e gestisce i nodi. Per selezionare una versione specifica del driver in Autopilot, consulta Selezione dei driver NVIDIA per i pod GPU Autopilot. |
Esegui i passaggi descritti in Esegui GPU sui node pool Standard:
|
| Migliorare l'utilizzo della GPU | ||
| Sicurezza | ||
| Prezzi | Prezzi dei pod GPU Autopilot | Prezzi delle GPU di Compute Engine |
Per scegliere la modalità operativa GKE più adatta ai tuoi workload, consulta Scegliere una modalità operativa GKE.
Consuma GPU
GKE offre opzioni di consumo di GPU che variano in base ai requisiti del tuo workload. Utilizza la pagina Informazioni sulle opzioni di consumo degli acceleratori per i workload AI/ML in GKE per scegliere l'opzione migliore per il tuo caso d'uso.
Gestisci lo stack GPU tramite GKE o NVIDIA GPU Operator su GKE
Per impostazione predefinita, GKE gestisce l'intero ciclo di vita dei nodi GPU, inclusi l'installazione automatica dei driver GPU, il monitoraggio dei carichi di lavoro GPU su GKE con NVIDIA Data Center GPU Manager (DCGM) e le strategie di condivisione delle GPU.
Utilizza GKE per gestire i nodi GPU, poiché GKE gestisce completamente il ciclo di vita dei nodi GPU.
Inizia a utilizzare GKE per la gestione dei nodi GPU scegliendo una delle seguenti opzioni:
- Esegui il deployment dei carichi di lavoro GPU in Autopilot
- Esegui GPU nei node pool Standard
- Deployment di cluster con GPU NVIDIA B200 o NVIDIA H200 da 141 GB
L'operatore GPU NVIDIA può essere utilizzato in alternativa al supporto GPU completamente gestito su GKE sia sulle immagini dei nodi Container-Optimized OS (COS) sia su Ubuntu. Seleziona questa opzione se cerchi 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ù, consulta Gestire lo stack GPU con l'operatore GPU NVIDIA.
Per selezionare l'opzione migliore per il tuo caso d'uso, consulta la seguente tabella che confronta i due metodi di gestione dei nodi GPU su GKE.
| Descrizione | Utilizzare GKE per gestire i nodi GPU | Utilizzare NVIDIA GPU Operator su GKE |
|---|---|---|
| Gestione del ciclo di vita dei nodi GPU (installazione, upgrade) | Completamente gestito da GKE. | Gestita dall'utente. |
| Installazione del 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 GPU |
|
|
| Controllo di integrità dei nodi GPU |
|
|
| Metriche e osservabilità |
|
|
Ottimizzare l'utilizzo delle risorse utilizzando le funzionalità della GPU in GKE
Per impostazione predefinita, Kubernetes supporta l'assegnazione di GPU solo come unità intere ai container, ma GKE fornisce funzionalità aggiuntive che puoi utilizzare per ottimizzare l'utilizzo delle risorse dei tuoi carichi di lavoro GPU.
In GKE sono disponibili le seguenti funzionalità per ridurre la quantità di risorse GPU sottoutilizzate:
| Funzionalità della GPU | |
|---|---|
| GPU multi-istanza |
Disponibile su:Autopilot e Standard Dividi una singola GPU in un massimo di sette istanze separate a livello hardware che possono essere assegnate come GPU individuali ai container su un nodo. Ogni container assegnato riceve le risorse disponibili per l'istanza. |
| GPU in time-sharing |
Disponibile su:Autopilot e Standard Presenta una singola GPU come più unità a più container su un nodo. Il driver GPU esegue il cambio di contesto e alloca le risorse GPU complete a ogni container assegnato in base alle necessità nel tempo. |
| NVIDIA MPS |
Funzionalità disponibile su:Standard Condividere una singola GPU NVIDIA fisica tra più container. NVIDIA MPS è un'implementazione alternativa e compatibile a livello binario dell'API CUDA progettata per consentire in modo trasparente l'esecuzione simultanea di applicazioni CUDA multi-processo cooperative su un singolo dispositivo GPU. |
Accedere 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 container:
/usr/local/nvidia/lib64: la posizione dei driver del dispositivo NVIDIA./usr/local/cuda-CUDA_VERSION/lib64: la posizione delle librerie NVIDIA CUDA-X sul nodo.Sostituisci
CUDA_VERSIONcon la versione dell'immagine CUDA-X che hai utilizzato. Alcune versioni contengono anche utilità di debug in/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 Toolkit CUDA e versioni dei driver compatibili.
Nei cluster Autopilot, GKE gestisce la selezione e l'installazione della versione del driver.
Monitorare le prestazioni del carico di lavoro del nodo GPU
Se nel tuo cluster GKE sono abilitate le metriche di sistema, le seguenti metriche sono disponibili in Cloud Monitoring per monitorare le prestazioni del carico di lavoro della GPU:
-
Ciclo di lavoro (
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. -
Utilizzo memoria (
container/accelerator/memory_used): quantità di memoria dell'acceleratore allocata in byte. -
Capacità di memoria (
container/accelerator/memory_total): memoria acceleratore totale in byte.
Queste metriche vengono applicate a livello di container (container/accelerator) e non vengono
raccolte per i container pianificati su una GPU che utilizza la condivisione del tempo della GPU o NVIDIA MPS.
Puoi utilizzare dashboard predefinite per monitorare i cluster con nodi GPU. Per ulteriori informazioni, vedi Visualizzare le metriche di osservabilità. Per informazioni generali sul monitoraggio dei cluster e delle relative risorse, consulta Osservabilità per GKE.
Visualizzare le metriche di utilizzo per i workload
Puoi visualizzare le metriche di utilizzo della GPU del workload dalla dashboard Workload nella console Google Cloud .
Per visualizzare l'utilizzo della GPU del tuo workload, segui questi passaggi:
-
Vai alla pagina Workload nella console Google Cloud .
Vai a Carichi di lavoro - Seleziona un workload.
La dashboard Workloads mostra grafici relativi all'utilizzo e alla capacità della memoria GPU e 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).
Metriche di JobSet e integrità dei nodi per i workload GPU
Oltre alle metriche DCGM, puoi utilizzare le seguenti metriche per monitorare l'integrità e le prestazioni dei tuoi carichi di lavoro GPU, soprattutto quando li esegui come JobSet.
Metriche JobSet
Le seguenti metriche si applicano sia ai set di job GPU che TPU con un singolo job replicato:
kubernetes.io/jobset/times_between_interruptionskubernetes.io/jobset/times_to_recoverkubernetes.io/jobset/uptime
Per ulteriori informazioni su queste metriche di sistema, consulta Metriche Kubernetes.
Puoi anche utilizzare la dashboard JobSet nella console Google Cloud per visualizzare e monitorare i carichi di lavoro GPU:
Metriche di integrità del nodo
Le seguenti metriche a livello di nodo si applicano a tutti i nodi, inclusi quelli con GPU:
-
kubernetes.io/node/status_condition: questa metrica richiede GKE versione 1.32.1-gke.1357001 o successive.
Le metriche di interruzione dei nodi e dei pool di nodi si applicano anche ai nodi non TPU.
Kube-state-metrics per JobSet
kube-state-metrics per JobSet può essere utilizzato con le GPU. La raccolta di queste metriche richiede GKE versione 1.32.1-gke.1357001 o successive. Per saperne di più, consulta la documentazione sulle metriche JobSet.
Gestire l'interruzione dovuta alla manutenzione dei nodi
I nodi GKE che ospitano le GPU sono soggetti a eventi di manutenzione o ad altre interruzioni che potrebbero causare l'arresto del nodo. Nei cluster GKE con il control plane che esegue la versione 1.29.1-gke.1425000 e successive, puoi ridurre le interruzioni dei workload configurando GKE in modo che li termini in modo controllato.
Per comprendere, configurare e monitorare gli eventi di interruzione che potrebbero verificarsi sui nodi GKE che eseguono carichi di lavoro AI/ML, consulta Gestire l'interruzione dei nodi GKE per GPU e TPU.