Questa pagina ti consente di valutare le opzioni per richiedere GPU in Google Kubernetes Engine (GKE), tra cui:
- Scelta delle risorse GPU e delle funzionalità per l'efficienza per i carichi di lavoro GKE
- Scegli la tua quota GPU, ovvero il numero massimo di GPU che puoi eseguire nel tuo progetto.
- Scegliere tra le modalità Autopilot e Standard
- Scegliere 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
- Gestione delle interruzioni dovute alla manutenzione dei nodi
L'hardware GPU disponibile per l'uso in GKE è un sottoinsieme il GPU di Compute Engine per i carichi di lavoro di calcolo. L'hardware specifico disponibile dipende dalla regione o dalla regione di Compute Engine zona di accesso del tuo cluster. Per informazioni sulla disponibilità specifica, consulta Regioni e zone GPU.
GKE offre alcune funzionalità specifiche per le GPU migliorare l'utilizzo efficiente delle risorse GPU dei carichi di lavoro in esecuzione sui nodi, tra cui: condivisione del tempo, GPU a più istanze e GPU multi-istanza con NVIDIA MPS.
Pianifica quota GPU
La quota GPU è il numero massimo di GPU che possono essere eseguite in progetto Google Cloud. Per utilizzare GPU nei cluster GKE, il progetto deve avere una quota GPU sufficiente.
La tua quota di GPU deve essere almeno uguale al numero totale di GPU che intendi per l'esecuzione nel tuo cluster. Se attivi scalabilità automatica del cluster, deve richiedere una quota GPU almeno equivalente al numero massimo di nodi moltiplicati 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 in
Richiedere un limite di quota più elevato, 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, scalabilità, isolamento dei pod e provisioning dei nodi.
La tabella seguente fornisce 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 nei tuoi cluster e poi alloca le risorse GPU dei carichi di lavoro containerizzati in esecuzione sui nodi. |
Disponibilità hardware GPU |
|
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 GKE e gestisce i tuoi nodi. Per selezionare un modello specifico, della versione del driver in Autopilot, consulta Selezione dei driver NVIDIA per i pod GPU Autopilot. |
Esegui i passaggi descritti in Eseguire GPU su Standard
pool di nodi:
|
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 alle per i carichi di lavoro, consulta Scegliere una modalità operativa di GKE.
Ottimizza l'utilizzo delle risorse utilizzando le funzionalità GPU in GKE
Per impostazione predefinita, Kubernetes supporta solo l'assegnazione delle GPU nel complesso le unità ai container, ma GKE fornisce funzionalità aggiuntive che puoi usare per ottimizzare l'utilizzo delle risorse per i carichi di lavoro GPU.
In GKE sono disponibili le seguenti funzionalità per ridurne la quantità delle risorse GPU sottoutilizzate:
Funzionalità GPU | |
---|---|
GPU multi-istanza |
Disponibile su: Autopilot e Standard Suddividi una singola GPU in un massimo di sette istanze separate dall'hardware possono essere assegnate come GPU singole ai container su un nodo. Ciascuna il container assegnato ottiene le risorse disponibili per quell'istanza. |
GPU con condivisione del tempo |
Disponibile su: Autopilot e Standard Presenta una singola GPU come più unità in 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 in più container. NVIDIA MPS è un'implementazione alternativa e compatibile con il programma binario dell'API CUDA, progettata per consentire in modo trasparente l'esecuzione contemporanea di applicazioni CUDA con processi multi-processo cooperativi su un singolo dispositivo GPU. |
Accedi alle librerie NVIDIA CUDA-X per le applicazioni CUDA
CUDA
è la piattaforma di computing parallelo e il modello di programmazione per GPU NVIDIA. A
utilizzare le applicazioni CUDA, l'immagine che utilizzi deve contenere le librerie. Per aggiungere le librerie NVIDIA CUDA-X, puoi creare e utilizzare una tua immagine includendo i seguenti valori nella variabile di ambiente LD_LIBRARY_PATH
nella specifica del container:
/usr/local/cuda-CUDA_VERSION/lib64
: il valore 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: vedi CUDA Toolkit e versioni di driver compatibili.
/usr/local/nvidia/lib64
: la posizione del Driver di dispositivi NVIDIA.
Nei cluster Autopilot, GKE gestisce la versione del driver la selezione e l'installazione.
Monitorare le prestazioni dei carichi di lavoro del nodo GPU
Se il tuo cluster GKE metriche di sistema attivata, le seguenti metriche sono disponibili in Cloud Monitoring per monitorare le prestazioni dei carichi di lavoro GPU:
- Ciclo di lavoro (
container/accelerator/duty_cycle
): Percentuale di tempo nell'ultimo periodo campione (10 secondi) durante il quale dell'acceleratore stava elaborando attivamente. 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 dashboard predefinite per monitorare i cluster con nodi GPU. Per ulteriori informazioni, vedi Visualizza le metriche di osservabilità. Per informazioni generali sul monitoraggio per i tuoi cluster e le relative risorse, 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:
Vai alla pagina Carichi di lavoro nella console Google Cloud.
Vai a Carichi di lavoro- Seleziona un carico di lavoro.
La dashboard Carichi di lavoro mostra i grafici relativi all'utilizzo e alla capacità della memoria GPU, e dal ciclo di servizio della GPU.
Visualizza 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 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 Raccogli e visualizza le metriche di NVIDIA Data Center GPU Manager (DCGM).
Gestisci l'interruzione dovuta alla manutenzione del nodo
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 controllo che esegue la versione 1.29.1-gke.1425000 e successive, puoi ridurre l'interruzione dei carichi di lavoro configurando GKE per terminare i carichi di lavoro in modo controllato.
Puoi configurare GKE in modo che invii un segnale SIGTERM
ai pod sui nodi che stanno per essere arrestati, concedendo un periodo di tolleranza per terminare il lavoro in corso prima dell'eliminazione. Nel
nel campo spec.terminationGracePeriodSeconds
del manifest del pod, specifica il numero di secondi fino a un massimo di 3600
secondi (un'ora).
GKE offre un'esperienza
per terminare questi pod in modo controllato ed eseguire l'azione di terminazione
da te definiti, come il salvataggio
dello stato di addestramento.
GKE rispetta qualsiasi configurazione
fino a 60 minuti
PodDisruptionBudget
o
terminationGracePeriodSeconds
impostazioni. Per saperne di più, incluso il modo in cui queste due impostazioni interagiscono, vedi
Configura la terminazione controllata dei nodi GPU.