Crea un clúster de GKE optimizado para IA que use G2 o G4

En este documento, se describe cómo puedes crear clústeres de Google Kubernetes Engine (GKE) optimizados para la IA que usan las series de máquinas optimizadas para aceleradores G2 (NVIDIA L4) o G4 (NVIDIA RTX PRO 6000) para admitir tus cargas de trabajo de inteligencia artificial (IA) y aprendizaje automático (AA). Las series de máquinas G2 y G4 son GPU generales, que proporcionan recursos de procesamiento independientes diseñados para tareas de IA convencionales, como la inferencia de pequeña a mediana escala y las aplicaciones con uso intensivo de gráficos. Además de los tipos de máquinas con una sola GPU y con varias GPU, la serie de máquinas G4 admite GPU virtuales (vGPU) en tipos de máquinas que tienen menos de una GPU:

  • g4-standard-6 (un octavo de una GPU)
  • g4-standard-12 (un cuarto de GPU)
  • g4-standard-24 (la mitad de una GPU)

GKE proporciona una sola plataforma para ejecutar un conjunto diverso de cargas de trabajo para tu organización, lo que reduce la carga operativa de administrar varias plataformas.

Para crear un clúster de GKE optimizado para IA con G2 o G4, completa los siguientes pasos:

  1. Crea el entorno de GKE
  2. Conéctate a tu clúster.
  3. Configura tus manifiestos de Pod

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste la gcloud CLI, ejecuta el comando gcloud components update para obtener la versión más reciente. Es posible que las versiones anteriores de gcloud CLI no admitan la ejecución de los comandos que se indican en este documento.

Roles obligatorios

Para obtener los permisos que necesitas para crear y administrar un clúster de GKE, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Elige una opción de consumo y obtén capacidad

  1. Elige una opción de consumo. Elige en función de cómo deseas obtener y usar los recursos de GPU. Para obtener más información, consulta Elige una opción de consumo.

    En el caso de GKE, ten en cuenta la siguiente información adicional cuando elijas una opción de consumo:

  2. Obtener capacidad Obtén más información para obtener capacidad para tu opción de consumo.

Requisitos

Para crear un clúster de GKE optimizado para IA que use G2 o G4, asegúrate de cumplir con los siguientes requisitos:

  • Versión de GKE: Las máquinas G4 (NVIDIA RTX PRO 6000) requieren las siguientes versiones mínimas de GKE:
    • Modo estándar:
      • Tipos de máquinas que tienen una o más GPUs: 1.34.0-gke.1662000 o posterior
      • Tipos de máquinas que tienen menos de una GPU (g4-standard-6, g4-standard-12 y g4-standard-24):
        • 1.35: 1.35.8-gke.1518000 o una versión posterior
        • 1.36 o una versión posterior: 1.36.4-gke.1082000 o una versión posterior
    • Modo Autopilot:
      • Tipos de máquinas que tienen una o más GPUs: 1.34.1-gke.1829001 o posterior
      • Tipos de máquinas que tienen menos de una GPU (g4-standard-6, g4-standard-12 y g4-standard-24):
        • 1.35: 1.35.8-gke.1518000 o una versión posterior
        • 1.36 o una versión posterior: 1.36.4-gke.1082000 o una versión posterior
  • Controladores de GPU:
    • Los nodos G2 (NVIDIA L4) deben usar la versión 535 o posterior del controlador NVIDIA.
    • Los nodos G4 (NVIDIA RTX PRO 6000) deben usar la versión 580 o posterior del controlador NVIDIA.

Limitaciones

Las siguientes limitaciones se aplican a las series de máquinas G2 y G4 como GPU general:

  • SSD locales: Los tipos de máquinas G2 y G4 no incluyen discos SSD locales de forma predeterminada. Si es necesario, debes adjuntarlos de forma manual. El tipo de máquina g4-standard-6 (un octavo de GPU) no admite SSD locales.
  • Fast Socket de NCCL: No puedes usar Fast Socket de NCCL con máquinas G2 o G4 en GKE. Si bien las máquinas G2 y G4 admiten la comunicación de varios nodos, usan redes de VPC estándar. Para el entrenamiento distribuido a gran escala que requiere la máxima capacidad de procesamiento de la red, te recomendamos que uses la serie de máquinas con GPU en clúster, como A3 High o A3 Mega (que usan GPUDirect TCPX) o A3 Ultra y A4 (que usan GPUDirect RDMA).
  • Tipos de máquinas G4 que tienen menos de una GPU: Para g4-standard-6, g4-standard-12 y g4-standard-24:

Crea el entorno de GKE

Puedes crear un clúster en modo Autopilot o Standard.

Autopilot

Para crear un clúster de Autopilot, ejecuta el siguiente comando:

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

Reemplaza lo siguiente:

  • CLUSTER_NAME: El nombre de tu clúster.
  • REGION: Es la región de tu clúster.

Estándar

Crea un clúster de Standard y un grupo de nodos de GPU:

  1. Para crear un clúster de Standard, ejecuta el siguiente comando:

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

    Reemplaza lo siguiente:

    • CLUSTER_NAME: El nombre de tu clúster.
    • REGION: Es la región de tu clúster.
  2. Crea el grupo de nodos. Después de crear el clúster, puedes agregar un grupo de nodos con G2 o G4. Para las cargas de trabajo de varios nodos que usan G2 (L4) o G4 (RTX PRO 6000), te recomendamos que uses una política de posición compacta para minimizar la latencia de red entre los nodos.

    Para crear un grupo de nodos, usa el siguiente 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
    

    Estación de trabajo virtual (vWS) G4

    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
    

    Reemplaza lo siguiente:

    • NODE_POOL_NAME: es el nombre de tu grupo de nodos.
    • CLUSTER_NAME: El nombre de tu clúster.
    • REGION: Es la región de tu clúster.
    • ZONE: Una o más zonas dentro de tu región que tienen las GPUs solicitadas disponibles, por ejemplo, us-central1-a. Esto es obligatorio cuando se usa la posición de compactación.
    • MACHINE_TYPE: Es el tipo de máquina para tus nodos, por ejemplo, g2-standard-4 para máquinas G2, g4-standard-48 para una máquina G4 con una sola GPU o g4-standard-6, g4-standard-12 o g4-standard-24 para tipos de máquinas G4 que tienen menos de una GPU (con el tipo de acelerador nvidia-rtx-pro-6000).
    • AMOUNT: Es la cantidad de GPUs que se deben adjuntar a cada nodo. Si usas un tipo de máquina G4 que tiene menos de una GPU (g4-standard-6, g4-standard-12 o g4-standard-24), o g4-standard-48 (una GPU), debes establecer AMOUNT en 1.
    • LOCAL_SSD_COUNT: es la cantidad de volumenes SSD locales que se aprovisionarán en cada nodo. Omite la marca --local-ssd-count si usas el tipo de máquina g4-standard-6, ya que g4-standard-6 no admite SSD locales.

Conéctate a tu clúster.

Conéctate a tu clúster para poder ejecutar los comandos de kubectl en las siguientes secciones:

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

Reemplaza lo siguiente:

  • CLUSTER_NAME: El nombre de tu clúster.
  • REGION: Es la región de tu clúster.

Para obtener más información, consulta Instala kubectl y configura el acceso al clúster.

Configura tus manifiestos de Pods (solo para Autopilot)

Si creaste un clúster de Autopilot, debes seleccionar las GPUs adecuadas en los manifiestos de tu Pod para que GKE aprovisione el hardware.

  1. Especifica el tipo de GPU elegido y la reserva específica con selectores de nodos:

    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"
    

    Reemplaza lo siguiente:

    • ACCELERATOR: Es el acelerador que reservaste. Debes usar nvidia-l4 (para G2), nvidia-rtx-pro-6000 (para G4) o nvidia-rtx-pro-6000-vws (para G4 con estación de trabajo virtual).
    • RESERVATION_NAME: Es el nombre de la reserva de capacidad de Compute Engine. Para consumir reservas compartidas o bloques y subbloques específicos de reservas, consulta las secciones correspondientes en Consume recursos de ruta de zona reservados.
  2. Agrega los siguientes recursos al contenedor que solicita GPUs:

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

    Reemplaza AMOUNT por la cantidad de GPUs que consumirá el contenedor. Para solicitar un tipo de máquina G4 que tenga menos de una GPU (g4-standard-6, g4-standard-12 o g4-standard-24) en un clúster de Autopilot, debes usar un ComputeClass personalizado que especifique el tipo de máquina y debes establecer nvidia.com/gpu en 1. Para obtener instrucciones, consulta Solicita tipos de máquinas G4 que tengan menos de una GPU.

¿Qué sigue?