En esta página se describen las GPUs de Google Kubernetes Engine (GKE) para ayudarte a seleccionar la configuración de GPU óptima para tus cargas de trabajo. Si quieres desplegar cargas de trabajo de GPU que usen Slurm, consulta Crear un clúster de Slurm optimizado para IA.
Puedes usar GPUs para acelerar tareas que consuman muchos recursos, como el aprendizaje automático y el procesamiento de datos. La información de esta página puede ayudarte a hacer lo siguiente:
- Asegúrate de que las GPUs estén disponibles cuando las necesites.
- Decide si quieres usar GPUs en clústeres del modo Autopilot de GKE o del modo Estándar de GKE.
- Elige funciones relacionadas con la GPU para usar de forma eficiente su capacidad.
- Monitoriza las métricas de los nodos de GPU.
- Mejora la fiabilidad de las cargas de trabajo de la GPU gestionando las interrupciones de forma más eficaz.
Esta página está dirigida a administradores y operadores de plataformas y a ingenieros de aprendizaje automático (ML) que quieran asegurarse de que la infraestructura de aceleradores esté optimizada para sus cargas de trabajo.
Antes de leer esta página, asegúrate de que conoces los siguientes conceptos:
Selección de GPU en GKE
En GKE, la forma de solicitar hardware de GPU depende de si utilizas el modo Autopilot o el modo Estándar. En Autopilot, puedes solicitar hardware de GPU especificando recursos de GPU en tus cargas de trabajo. En el modo Estándar de GKE, puedes conectar hardware de GPU a los nodos de tus clústeres y, a continuación, asignar recursos de GPU a las cargas de trabajo contenerizadas que se ejecutan en esos nodos. Para obtener instrucciones detalladas sobre cómo adjuntar y usar GPUs en tus cargas de trabajo, consulta Desplegar cargas de trabajo de GPU en Autopilot o Ejecutar GPUs en grupos de nodos Estándar.
GKE ofrece algunas funciones específicas de GPU para mejorar el uso eficiente de los recursos de GPU de las cargas de trabajo que se ejecutan en tus nodos, como el tiempo compartido, las GPUs con varias instancias y las GPUs con varias instancias con NVIDIA MPS.
En esta página se describen las opciones para solicitar GPUs en GKE, entre las que se incluyen las siguientes:
- Elegir la cuota de GPU: el número máximo de GPUs que se pueden ejecutar en tu proyecto
- Elegir entre los modos Autopilot y Standard
- Gestionar la pila de GPU a través de GKE o NVIDIA GPU Operator en GKE
- Elegir funciones para reducir la cantidad de recursos de GPU infrautilizados
- Acceder a bibliotecas NVIDIA CUDA-X para aplicaciones CUDA
- Monitorizar métricas de nodos de GPU
- Gestionar las interrupciones debidas al mantenimiento de los nodos
- Usar GKE Sandbox para proteger las cargas de trabajo de GPU
Modelos de GPU disponibles
El hardware de GPU que se puede usar en GKE es un subconjunto de los modelos de GPU disponibles en Compute Engine. El hardware específico que está disponible depende de la región o la zona de Compute Engine de tu clúster. Para obtener más información sobre la disponibilidad específica, consulta Regiones y zonas de las GPUs.
Los tipos de máquinas con mejor rendimiento deGoogle Cloud, como A4X, A4 y A3 Ultra, requieren una configuración específica para maximizar el rendimiento del hardware subyacente. En la documentación de AI Hypercomputer se explica cómo configurar clústeres de GKE para usar estos tipos de máquinas con GPU, que ilustran las funciones del sistema de supercomputación integrado de Google Cloud.
Para obtener información sobre cómo crear clústeres de GKE optimizados para IA con estos tipos de máquinas, consulta lo siguiente:
- Para desplegar rápidamente clústeres de GKE listos para producción, crea un clúster de GKE optimizado para IA con la configuración predeterminada.
Para personalizar o ampliar con precisión los entornos de producción de GKE, usa la CLI de Google Cloud para crear un clúster de GKE. Elige una de las siguientes instrucciones en función del tipo de máquina y la GPU que quieras usar:
Para obtener información sobre los precios de las GPUs, consulta las Google Cloud SKUs y la página de precios de las GPUs.
Cuota de GPU del plan
Tu cuota de GPUs es el número máximo de GPUs que pueden ejecutarse en tuGoogle Cloud proyecto. Para usar GPUs en tus clústeres de GKE, tu proyecto debe tener suficiente cuota de GPU. Consulta la página Cuotaspara comprobar que tienes suficientes GPUs disponibles en tu proyecto.
Tu cuota de GPU debe ser al menos igual al número total de GPUs que quieras ejecutar en tu clúster. Si habilitas el autoescalado de clústeres, debes solicitar una cuota de GPU que sea al menos equivalente al número máximo de nodos de tu clúster multiplicado por el número de GPUs por nodo.
Por ejemplo, si tienes previsto usar tres nodos con dos GPUs cada uno, la cuota de GPUs que necesita tu proyecto es de seis.
Para solicitar una cuota de GPU adicional, sigue las instrucciones para solicitar un ajuste de cuota y usa gpus como métrica.
Elegir la compatibilidad con GPUs mediante Autopilot o Standard
Las GPUs están disponibles en los clústeres Autopilot y Standard.
Usa clústeres de Autopilot para disfrutar de una experiencia de Kubernetes totalmente gestionada. En Autopilot, GKE gestiona la instalación de controladores, el escalado de nodos, el aislamiento de pods y el aprovisionamiento de nodos.
En la siguiente tabla se resumen las diferencias entre la compatibilidad con GPU de Autopilot y la de Estándar:
| Descripción | Autopilot | Estándar |
|---|---|---|
| Solicitar hardware de GPU | Especifica los recursos de GPU en tus cargas de trabajo. | Monta hardware de GPU en los nodos de tus clústeres y, a continuación, asigna recursos de GPU a las cargas de trabajo contenerizadas que se ejecutan en esos nodos. |
| Disponibilidad del hardware de GPU |
|
Todos los tipos de GPU compatibles con Compute Engine |
| Seleccionar una GPU | Solicitas una cantidad y un tipo de GPU en la especificación de tu carga de trabajo. De forma predeterminada, Autopilot instala el controlador predeterminado para esa versión de GKE y gestiona tus nodos. Para seleccionar una versión específica del controlador en Autopilot, consulta Selección de controladores de NVIDIA para pods de GPU de Autopilot. |
Sigue los pasos descritos en Ejecutar GPUs en grupos de nodos Standard:
|
| Mejorar el uso de la GPU | ||
| Seguridad | ||
| Precios | Precios de los pods de GPU de Autopilot | Precios de GPUs de Compute Engine |
Para elegir el modo de funcionamiento de GKE que mejor se adapte a tus cargas de trabajo, consulta Elegir un modo de funcionamiento de GKE.
Consumir GPUs
GKE ofrece opciones de consumo de GPUs que varían en función de los requisitos de tu carga de trabajo. Consulta la página Acerca de las opciones de consumo de aceleradores para cargas de trabajo de IA y aprendizaje automático en GKE para elegir la opción que mejor se adapte a tu caso práctico.
Gestionar la pila de GPU a través de GKE o del operador de GPU de NVIDIA en GKE
De forma predeterminada, GKE gestiona todo el ciclo de vida de los nodos de GPU, lo que incluye la instalación automática de controladores de GPU, la monitorización de cargas de trabajo de GPU en GKE con NVIDIA Data Center GPU Manager (DCGM) y las estrategias de uso compartido de GPU.
Usa GKE para gestionar tus nodos de GPU, ya que GKE gestiona por completo el ciclo de vida de los nodos de GPU.
Para empezar a usar GKE para gestionar nodos de GPU, elige una de las siguientes opciones:
- Desplegar cargas de trabajo de GPU en Autopilot
- Ejecutar GPUs en grupos de nodos estándar
- Desplegar clústeres con GPUs NVIDIA B200 o NVIDIA H200 de 141 GB
El operador de GPU NVIDIA se puede usar como alternativa a la compatibilidad con GPU totalmente gestionada en GKE tanto en imágenes de nodo de Container-Optimized OS (COS) como de Ubuntu. Selecciona esta opción si quieres disfrutar de una experiencia coherente en varios proveedores de servicios en la nube, si ya usas el operador de GPU de NVIDIA o si usas software que depende de él. Para obtener más información, consulta Gestionar la pila de GPU con el operador de GPU de NVIDIA.
Para seleccionar la mejor opción para tu caso práctico, consulta la siguiente tabla, en la que se comparan los dos métodos para gestionar nodos de GPU en GKE.
| Descripción | Usar GKE para gestionar nodos de GPU | Usar el operador de GPU de NVIDIA en GKE |
|---|---|---|
| Gestión del ciclo de vida de los nodos de GPU (instalación y actualización) | Totalmente gestionado por GKE. | Gestionado por el usuario. |
| Instalación de controladores | Instalación automática y manual de controladores de GPU. | Instalación manual de controladores de GPU. |
| Selectores de nodos | cloud.google.com/gke-gpu=true |
nvidia.com/gpu=true |
| Estrategias de uso compartido de GPU |
|
|
| Comprobación del estado de los nodos de GPU |
|
|
| Métricas y observabilidad |
|
|
Optimizar el uso de recursos con las funciones de GPU en GKE
De forma predeterminada, Kubernetes solo admite la asignación de GPUs como unidades completas a contenedores, pero GKE ofrece funciones adicionales que puedes usar para optimizar el uso de recursos de tus cargas de trabajo de GPU.
GKE ofrece las siguientes funciones para reducir la cantidad de recursos de GPU infrautilizados:
| Funciones de GPU | |
|---|---|
| GPUs con varias instancias |
Disponible en: Autopilot y Standard Divide una sola GPU en hasta siete instancias separadas por hardware que se pueden asignar como GPUs individuales a contenedores de un nodo. Cada contenedor asignado obtiene los recursos disponibles para esa instancia. |
| GPUs de tiempo compartido |
Disponible en: Autopilot y Standard Presentar una sola GPU como varias unidades a varios contenedores en un nodo. El controlador de la GPU cambia de contexto y asigna todos los recursos de la GPU a cada contenedor asignado según sea necesario a lo largo del tiempo. |
| NVIDIA MPS |
Disponible en: Estándar Compartir una única GPU física de NVIDIA entre varios contenedores. MPS de NVIDIA es una implementación alternativa y compatible con binarios de la API de CUDA diseñada para permitir de forma transparente que las aplicaciones de CUDA multiproceso cooperativas se ejecuten simultáneamente en un solo dispositivo de GPU. |
Acceder a las bibliotecas de NVIDIA CUDA-X para aplicaciones CUDA
CUDA
es la plataforma de computación paralela y el modelo de programación de NVIDIA para GPUs. Para usar aplicaciones CUDA, la imagen que utilices debe tener las bibliotecas. Para añadir las bibliotecas NVIDIA CUDA-X, puedes crear y usar tu propia imagen incluyendo los siguientes valores en la variable de entorno LD_LIBRARY_PATH de la especificación de tu contenedor:
/usr/local/nvidia/lib64: la ubicación de los controladores de dispositivos NVIDIA./usr/local/cuda-CUDA_VERSION/lib64: la ubicación de las bibliotecas NVIDIA CUDA-X en el nodo.Sustituye
CUDA_VERSIONpor la versión de la imagen de CUDA-X que has usado. Algunas versiones también contienen utilidades de depuración en/usr/local/nvidia/bin. Para obtener más información, consulta la imagen de NVIDIA CUDA en Docker Hub.Para comprobar la versión mínima del controlador de la GPU que se necesita para tu versión de CUDA, consulta CUDA Toolkit and Compatible Driver Versions (CUDA Toolkit y versiones de controladores compatibles).
En los clústeres de Autopilot, GKE gestiona la selección e instalación de la versión del controlador.
Monitorizar el rendimiento de la carga de trabajo de los nodos de GPU
Si tu clúster de GKE tiene habilitadas las métricas del sistema, las siguientes métricas están disponibles en Cloud Monitoring para monitorizar el rendimiento de tu carga de trabajo de GPU:
-
Ciclo de trabajo (
container/accelerator/duty_cycle): porcentaje del tiempo durante el periodo de muestreo anterior (10 segundos) en el que el acelerómetro ha estado procesando activamente. Entre 1 y 100. -
Uso de memoria (
container/accelerator/memory_used): cantidad de memoria del acelerador asignada en bytes. -
Capacidad de memoria (
container/accelerator/memory_total): memoria total del acelerador en bytes.
Estas métricas se aplican a nivel de contenedor (container/accelerator) y no se recogen en los contenedores programados en una GPU que usa el tiempo compartido de la GPU o NVIDIA MPS.
Puedes usar paneles de control predefinidos para monitorizar tus clústeres con nodos de GPU. Para obtener más información, consulta Ver métricas de observabilidad. Para obtener información general sobre la monitorización de tus clústeres y sus recursos, consulta Observabilidad de GKE.
Ver métricas de uso de cargas de trabajo
Puedes ver las métricas de uso de GPU de tu carga de trabajo en el panel de control Cargas de trabajo de la Google Cloud consola.
Para ver el uso de GPU de tu carga de trabajo, sigue estos pasos:
-
Ve a la página Cargas de trabajo de la Google Cloud consola.
Ir a Cargas de trabajo - Selecciona una carga de trabajo.
En el panel de control Cargas de trabajo se muestran gráficos sobre el uso y la capacidad de la memoria de la GPU, así como el ciclo de actividad de la GPU.
Ver métricas de NVIDIA Data Center GPU Manager (DCGM)
Puedes recoger y visualizar métricas de NVIDIA DCGM mediante Google Cloud Managed Service para Prometheus. En los clústeres de Autopilot, GKE instala los controladores. En los clústeres Estándar, debes instalar los controladores de NVIDIA.
Para obtener instrucciones sobre cómo implementar el paquete DCGM gestionado por GKE, consulta el artículo Recoger y ver métricas de NVIDIA Data Center GPU Manager (DCGM).
Métricas de estado de JobSet y de nodos para cargas de trabajo de GPU
Además de las métricas de DCGM, puede usar las siguientes métricas para monitorizar el estado y el rendimiento de sus cargas de trabajo de GPU, especialmente cuando las ejecute como JobSets.
Métricas de JobSet
Las siguientes métricas se aplican a los JobSets de GPU y TPU que tienen un solo trabajo replicado:
kubernetes.io/jobset/times_between_interruptionskubernetes.io/jobset/times_to_recoverkubernetes.io/jobset/uptime
Para obtener más información sobre estas métricas del sistema, consulta las métricas de Kubernetes.
También puedes usar el panel de control JobSet de la consola de Google Cloud para visualizar y monitorizar tus cargas de trabajo de GPU:
Métricas de estado de los nodos
Las siguientes métricas a nivel de nodo se aplican a todos los nodos, incluidos los que tienen GPUs:
-
kubernetes.io/node/status_condition: esta métrica requiere la versión 1.32.1-gke.1357001 de GKE o una posterior.
Las métricas de interrupción de nodos y de grupos de nodos también se aplican a los nodos que no son de TPU.
Kube-state-metrics para JobSets
Las métricas de estado de kube de JobSets se pueden usar con GPUs. Para recoger estas métricas, se necesita GKE 1.32.1-gke.1357001 o una versión posterior. Para obtener más información, consulta la documentación sobre las métricas de JobSet.
Gestionar las interrupciones debidas al mantenimiento de nodos
Los nodos de GKE que alojan las GPUs están sujetos a eventos de mantenimiento u otras interrupciones que pueden provocar que se apaguen los nodos. En los clústeres de GKE con el plano de control que ejecutan la versión 1.29.1-gke.1425000 y posteriores, puedes reducir las interrupciones de las cargas de trabajo configurando GKE para que finalice tus cargas de trabajo correctamente.
Para entender, configurar y monitorizar los eventos de interrupción que pueden producirse en los nodos de GKE que ejecutan cargas de trabajo de IA o aprendizaje automático, consulta Gestionar interrupciones de nodos de GKE para GPUs y TPUs.