Informazioni sulle GPU in Google Kubernetes Engine (GKE)


Questa pagina ti aiuta a prendere in considerazione 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 Autopilot o Standard. In Autopilot, richiedi l'hardware GPU specificando le risorse GPU nei carichi di lavoro. In GKE Standard, puoi collegare l'hardware GPU ai nodi nei tuoi cluster e poi allocare risorse GPU per i carichi di lavoro containerizzati in esecuzione su questi nodi. Per istruzioni dettagliate su come collegare e utilizzare le GPU nei carichi di lavoro, consulta Eseguire il deployment di carichi di lavoro GPU su Autopilot o Eseguire GPU su pool di nodi standard.

L'hardware GPU disponibile 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 delle GPU.

GKE offre alcune funzionalità specifiche per le GPU per migliorare l'utilizzo efficiente delle risorse GPU da parte dei carichi di lavoro in esecuzione sui nodi, tra cui condivisione del tempo, GPU multi-istanza e GPU multi-istanza con NVIDIA MPS.

Pianifica quota GPU

La quota GPU è il numero massimo di GPU che possono essere eseguite nel tuo progetto Google Cloud. Per usare le 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 eseguire nel cluster. Se abiliti la scalabilità automatica dei cluster, dovresti 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 superiore, utilizzando come metrica gpus.

Scegli il supporto GPU utilizzando Autopilot o Standard

Le GPU sono disponibili nei cluster Autopilot e Standard. Ti consigliamo di usare i cluster Autopilot per un'esperienza Kubernetes completamente gestita. In Autopilot, GKE gestisce l'installazione dei driver, la scalabilità dei nodi, l'isolamento dei pod

La tabella seguente fornisce una panoramica delle differenze tra il supporto di 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, quindi alloca le risorse GPU ai carichi di lavoro containerizzati in esecuzione su questi nodi.
Disponibilità 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 quella versione GKE e gestisce i nodi. Per selezionare una versione del driver specifica in Autopilot, consulta la 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 tipo di macchina Compute Engine corrispondente, quindi scegli un driver da installare.
  2. Installa manualmente i driver GPU sui nodi se non hai utilizzato l'installazione automatica.
  3. Richiedi 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, vedi 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 di GPU come unità intere ai container, ma GKE fornisce funzionalità aggiuntive che puoi utilizzare per ottimizzare l'utilizzo delle risorse da parte dei carichi di lavoro GPU.

In GKE sono disponibili le seguenti funzionalità per ridurre la quantità di 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 che possono essere assegnate come GPU singole a container su un nodo. Ogni 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à a più container su un nodo. Il driver GPU cambia contesto e alloca le risorse GPU complete 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 maniera 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 di NVIDIA. Per utilizzare 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: la posizione delle librerie NVIDIA CUDA-X sul nodo.

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

    Per verificare la versione minima del driver GPU richiesta per la tua versione di CUDA, consulta Versioni del toolkit CUDA e dei driver compatibili.

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

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

Monitorare le prestazioni dei carichi di lavoro del nodo GPU

Se nel cluster GKE sono abilitate le metriche di sistema, in Cloud Monitoring sono disponibili le seguenti metriche per monitorare le prestazioni del carico di lavoro della 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.
  • Utilizzo memoria (container/accelerator/memory_used): quantità di memoria dell'acceleratore allocata in byte.
  • Capacità di memoria (container/accelerator/memory_total): memoria dell'acceleratore totale in byte.

Puoi utilizzare dashboard predefinite per monitorare i cluster con nodi GPU. Per maggiori 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 delle GPU dei carichi di lavoro nella dashboard Carichi di lavoro della 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 e al 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 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 NVIDIA Data Center GPU Manager (DCGM).

Gestisci l'interruzione dovuta alla manutenzione del nodo

I nodi GKE che ospitano le GPU sono soggetti a eventi di manutenzione o altre interruzioni che potrebbero causare l'arresto dei nodi.

Nei cluster GKE con il piano di controllo che esegue la versione 1.29.1-gke.1425000 e successive, puoi ridurre le interruzioni dei carichi di lavoro configurando GKE in modo da terminarli in modo controllato.

Puoi configurare GKE in modo che invii un segnale SIGTERM ai pod sui nodi che stanno per essere arrestati, offrendo un periodo di tolleranza per terminare i lavori in corso prima dell'eliminazione. Nel campo spec.terminationGracePeriodSeconds del manifest del pod, specifica il numero di secondi fino a un massimo di 3600 secondi (un'ora). GKE fa il possibile per terminare questi pod in modo controllato e per eseguire l'azione di terminazione da te definita, come il salvataggio dello stato di addestramento.

GKE rispetta qualsiasi configurazione fino a 60 minuti per le impostazioni di PodDisruptionBudget o terminationGracePeriodSeconds. Per ulteriori informazioni, incluso il modo in cui interagiscono queste due impostazioni, consulta Configurare la terminazione controllata dei nodi GPU.

Passaggi successivi