Crea un cluster GKE personalizzato ottimizzato per l'AI che utilizza G2 o G4

Questo documento descrive come creare cluster Google Kubernetes Engine (GKE) personalizzati che utilizzano le serie di macchine ottimizzate per l'acceleratore G2 (NVIDIA L4) o G4 (NVIDIA RTX PRO 6000) per supportare i carichi di lavoro di intelligenza artificiale (AI) e machine learning (ML). G2 e G4 sono serie di macchine GPU generiche, che forniscono risorse di calcolo indipendenti progettate per le attività di AI mainstream, come l'inferenza da piccola a media e le applicazioni ad alta intensità di grafica.

GKE fornisce una singola superficie della piattaforma per eseguire un insieme diversificato di carichi di lavoro per la tua organizzazione, riducendo l'onere operativo della gestione di più piattaforme.

Per creare un cluster GKE ottimizzato per l'AI con G2 o G4, procedi nel seguente modo:

  1. Crea l'ambiente GKE
  2. Connettiti al tuo cluster
  3. Configura i manifest dei pod

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  • Abilita l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installala e poi inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima versione eseguendo il gcloud components update comando. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare e gestire un cluster GKE, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Scegli un'opzione di consumo e ottieni la capacità

  1. Scegli un'opzione di consumo. Fai la tua scelta in base a come vuoi ottenere e utilizzare le risorse GPU. Per ulteriori informazioni, consulta la sezione Scegli un'opzione di consumo.

    Per GKE, tieni presente le seguenti informazioni aggiuntive quando scegli un'opzione di consumo:

  2. Ottieni la capacità. Scopri come ottenere la capacità per la tua opzione di consumo.

Requisiti

Per creare un cluster GKE ottimizzato per l'AI che utilizza G2 o G4, assicurati di soddisfare i seguenti requisiti:

  • Versione GKE: le macchine G4 (RTX PRO 6000) richiedono la versione 1.32.4-gke.1698000 di GKE o versioni successive.
  • Driver GPU: i nodi GPU devono utilizzare la versione 535 o successive dei driver NVIDIA.

Limitazioni

Le seguenti limitazioni si applicano a G2 e G4 come serie di macchine GPU generiche:

  • SSD locali: i tipi di macchine G2 e G4 non includono i dischi SSD locali per impostazione predefinita. Devi collegarli manualmente, se necessario.
  • NCCL Fast Socket: non puoi utilizzare NCCL Fast Socket con le macchine G2 o G4 su GKE. Sebbene le macchine G2 e G4 supportino la comunicazione multi-nodo, utilizzano il networking VPC standard. Per l'addestramento distribuito su larga scala che richiede il massimo throughput di rete, ti consigliamo di utilizzare la serie di macchine GPU in cluster Clustered GPU machine series, come A3 High o A3 Mega (che utilizzano GPUDirect TCPX) o A3 Ultra e A4 (che utilizzano GPUDirect RDMA).

Crea l'ambiente GKE

Puoi creare un cluster in modalità Autopilot o Standard.

Autopilot

Per creare un cluster Autopilot, esegui questo comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --region=REGION

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del tuo cluster.
  • REGION: la regione del cluster.

Standard

Crea un cluster standard e un pool di nodi GPU:

  1. Per creare un cluster standard, esegui questo comando:

    gcloud container clusters create CLUSTER_NAME \
        --region=REGION \
        --enable-ip-alias
    

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del tuo cluster.
    • REGION: la regione del cluster.
  2. Crea il pool di nodi. Dopo aver creato il cluster, puoi aggiungere un pool di nodi con G2 o G4. Per i carichi di lavoro multi-nodo che utilizzano G2 (L4) o G4 (RTX PRO 6000), ti consigliamo di utilizzare una policy di posizionamento compatto per ridurre al minimo la latenza di rete tra i nodi.

    Per creare un pool di nodi, utilizza questo comando:

    G2 (NVIDIA L4)

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --node-locations=ZONE \
        --machine-type=MACHINE_TYPE \
        --accelerator=type=nvidia-l4,count=AMOUNT,gpu-driver-version=LATEST \
        --placement-type=COMPACT \
        --scopes="https://www.googleapis.com/auth/cloud-platform" \
        --local-ssd-count=LOCAL_SSD_COUNT
    

    G4 (NVIDIA RTX PRO 6000)

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --node-locations=ZONE \
        --machine-type=MACHINE_TYPE \
        --accelerator=type=nvidia-rtx-pro-6000,count=AMOUNT,gpu-driver-version=LATEST \
        --disk-type=hyperdisk-balanced \
        --placement-type=COMPACT \
        --scopes="https://www.googleapis.com/auth/cloud-platform" \
        --local-ssd-count=LOCAL_SSD_COUNT
    

    Workstation virtuale G4 (vWS)

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --node-locations=ZONE \
        --machine-type=MACHINE_TYPE \
        --accelerator=type=nvidia-rtx-pro-6000-vws,count=AMOUNT,gpu-driver-version=LATEST \
        --disk-type=hyperdisk-balanced \
        --placement-type=COMPACT \
        --scopes="https://www.googleapis.com/auth/cloud-platform" \
        --local-ssd-count=LOCAL_SSD_COUNT
    

    Sostituisci quanto segue:

    • NODE_POOL_NAME: il nome del pool di nodi.
    • CLUSTER_NAME: il nome del tuo cluster.
    • REGION: la regione del cluster.
    • ZONE: una o più zone all'interno della regione in cui sono disponibili le GPU richieste, ad esempio us-central1-a. Questo è obbligatorio quando si utilizza il posizionamento compatto.
    • MACHINE_TYPE: il tipo di macchina per i nodi, ad esempio g2-standard-4 per le macchine G2 e g4-standard-48 per le macchine G4.
    • AMOUNT: il numero di GPU da collegare a ogni nodo.
    • LOCAL_SSD_COUNT: il numero di volumi SSD locali di cui eseguire il provisioning su ogni nodo.

Connettiti al tuo cluster

Connettiti al cluster in modo da poter eseguire i comandi kubectl nelle sezioni successive:

gcloud container clusters get-credentials CLUSTER_NAME \
    --region=REGION

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del tuo cluster.
  • REGION: la regione del cluster.

Per ulteriori informazioni, consulta Installare kubectl e configurare l'accesso al cluster.

Configura i manifest dei pod (solo Autopilot)

Se hai creato un cluster Autopilot, devi selezionare le GPU appropriate nei manifest dei pod in modo che GKE esegua il provisioning dell'hardware.

  1. Specifica il tipo di GPU scelto e la prenotazione specifica utilizzando i selettori di nodi:

    spec:
      nodeSelector:
        cloud.google.com/gke-accelerator: ACCELERATOR
        cloud.google.com/gke-gpu-driver-version: latest
        # Optional: Include if using reserved capacity
        cloud.google.com/reservation-name: RESERVATION_NAME
        cloud.google.com/reservation-affinity: "specific"
    

    Sostituisci quanto segue:

    • ACCELERATOR: l'acceleratore che hai prenotato. Devi utilizzare nvidia-l4 (per G2), nvidia-rtx-pro-6000 (per G4) o nvidia-rtx-pro-6000-vws (per G4 con workstation virtuale).
    • RESERVATION_NAME: il nome della prenotazione della capacità di Compute Engine. Per utilizzare le prenotazioni condivise o blocchi e sottoblocchi specifici di prenotazioni, consulta le sezioni pertinenti in Utilizzo delle risorse del percorso zonale riservato.
  2. Aggiungi le seguenti risorse al container che richiede le GPU:

    containers:
      - name: my-container
        resources:
          limits:
            nvidia.com/gpu: AMOUNT
    

    Sostituisci AMOUNT con il numero di GPU da collegare a ogni nodo.

Passaggi successivi