En esta página, se describen las GPUs en Google Kubernetes Engine (GKE) para ayudarte a seleccionar la configuración óptima de GPU para tus cargas de trabajo. Si deseas implementar cargas de trabajo de GPU que usen Slurm, consulta Crea un clúster de Slurm optimizado para IA.
Puedes usar las GPU para acelerar tareas que requieren 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:
- Garantizar la disponibilidad de la GPU cuando sea necesario
- Decide si usarás GPU en clústeres de modo Autopilot de GKE o de modo Standard de GKE.
- Elige funciones relacionadas con la GPU para usar de manera eficiente su capacidad.
- Supervisa las métricas de los nodos de GPU.
- Mejora la confiabilidad de las cargas de trabajo de la GPU controlando las interrupciones de manera más eficaz.
Esta página está dirigida a los administradores y operadores de plataformas y a los ingenieros de aprendizaje automático (AA) que desean asegurarse de que la infraestructura de aceleradores esté optimizada para sus cargas de trabajo.
Antes de leer esta página, asegúrate de estar familiarizado con lo siguiente:
Selección de GPU en GKE
En GKE, la forma en que solicitas hardware de GPU depende de si usas el modo Autopilot o Standard. En Autopilot, solicitas hardware de GPU especificando recursos de GPU en tus cargas de trabajo. En el modo GKE Standard, puedes conectar hardware de GPU a nodos en tus clústeres y, luego, asignar recursos de GPU a cargas de trabajo alojadas en contenedores que se ejecutan en esos nodos. Para obtener instrucciones detalladas sobre cómo conectar y usar las GPUs en tus cargas de trabajo, consulta Implementa cargas de trabajo de GPU en Autopilot o Ejecuta GPUs en grupos de nodos estándar.
GKE ofrece algunas funciones específicas de la GPU para mejorar el uso eficiente de los recursos de GPU de las cargas de trabajo que se ejecutan en tus nodos, incluido el uso compartido de tiempo, las GPUs de varias instancias y de varias instancias, y las GPUs con NVIDIA MPS.
En esta página, se proporciona información sobre las opciones para solicitar GPU en GKE, incluidas las siguientes:
- Cómo elegir tu cuota de GPU, la cantidad máxima de GPU que se pueden ejecutar en tu proyecto
- Cómo decidir entre los modos Autopilot y Standard
- Administra la pila de GPU a través de GKE o el operador de GPU de NVIDIA en GKE
- Elige funciones para reducir la cantidad de recursos de GPU infrautilizados
- Cómo acceder a las bibliotecas NVIDIA CUDA-X para aplicaciones CUDA
- Supervisa las métricas de los nodos de GPU
- Cómo controlar las interrupciones debidas al mantenimiento de los nodos
- Usa GKE Sandbox para proteger las cargas de trabajo de GPU
Modelos de GPU disponibles
El hardware de GPU disponible para su uso 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 zona de Compute Engine de tu clúster. Para obtener más información sobre la disponibilidad específica, consulta Regiones y zonas de GPU.
Para obtener información sobre los precios de GPU, consulta los SKU deGoogle Cloud y la página de precios de GPU.
Planifica la cuota de GPU
Tu cuota de GPU es la cantidad máxima de GPU que puedes ejecutar en tu proyecto deGoogle Cloud . Para usar GPUs en tus clústeres de GKE, tu proyecto debe tener una cuota de GPU suficiente. Consulta la página Cuotas para asegurarte de que tienes suficientes GPUs disponibles en tu proyecto.
Tu cuota de GPU debe ser, al menos, equivalente a la cantidad total de GPU que quieres ejecutar en tu clúster. Si habilitas el ajuste de escala automático del clúster, debes solicitar una cuota de GPU que sea, al menos, equivalente a la cantidad máxima de nodos de tu clúster multiplicado por la cantidad de GPU por nodo.
Por ejemplo, si esperas utilizar tres nodos con dos GPUs cada uno, seis es la cuota de GPU que requiere tu proyecto.
Para solicitar una cuota de GPU adicional, sigue las instrucciones para solicitar un ajuste de cuota y usa gpus
como métrica.
Elige la compatibilidad con GPU con Autopilot o Standard
Las GPU están disponibles en clústeres de Autopilot y Standard.
Usa clústeres de Autopilot para una experiencia de Kubernetes completamente administrada. En Autopilot, GKE administra la instalación de controladores, el ajuste de escala de nodos, el aislamiento de Pods y el aprovisionamiento de nodos.
En la siguiente tabla, se proporciona una descripción general de las diferencias entre la asistencia de Autopilot y Standard GPU:
Descripción | Autopilot | Estándar |
---|---|---|
Solicita hardware de GPU | Especifica recursos de GPU en tus cargas de trabajo. | Conecta hardware de GPU a nodos en tus clústeres y, luego, asigna recursos de GPU a cargas de trabajo alojadas en contenedores que se ejecutan en esos nodos. |
Disponibilidad de hardware de GPU |
|
Todos los tipos de GPU compatibles con Compute Engine |
Cómo 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 administra tus nodos. Si deseas seleccionar una versión de controlador específica en Autopilot, consulta Selección de controladores NVIDIA para Pods de GPU de Autopilot. |
Realiza los pasos que se describen en Ejecuta GPU en grupos de nodos estándar:
|
Mejora el uso de GPU | ||
Seguridad | ||
Precios | Precios de los Pods de GPU de Autopilot | Precios de las GPUs de Compute Engine |
Para elegir el modo de operación de GKE que se adapte mejor a tus cargas de trabajo, consulta Elige un modo de operación de GKE.
Consume GPUs
GKE ofrece opciones de consumo de GPU que varían según los requisitos de tu carga de trabajo. Usa la página Acerca de las opciones de consumo de aceleradores para cargas de trabajo de IA/AA en GKE para elegir la mejor opción para tu caso de uso.
Administra la pila de GPU a través de GKE o el operador de GPU de NVIDIA en GKE
De forma predeterminada, GKE administra todo el ciclo de vida de los nodos de GPU, incluida la instalación automática de controladores de GPU, la supervisió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 administrar tus nodos de GPU, ya que GKE administra por completo el ciclo de vida de los nodos de GPU.
Para comenzar a usar GKE para la administración de nodos de GPU, elige una de las siguientes opciones:
- Implementa cargas de trabajo de GPU en Autopilot
- Ejecuta GPU en grupos de nodos estándar
- Implementa clústeres con GPUs NVIDIA B200 o NVIDIA H200 de 141 GB
El operador de GPU de NVIDIA se puede usar como alternativa a la compatibilidad con GPU completamente administrada en GKE en imágenes de nodos de Container-Optimized OS (COS) y Ubuntu. Selecciona esta opción si buscas una experiencia coherente entre varios proveedores de servicios en la nube, si ya usas el operador de GPU de NVIDIA o si usas el software que depende del operador de GPU de NVIDIA. Para obtener más información, consulta Administra la pila de GPU con el operador de GPU de NVIDIA.
Para seleccionar la mejor opción para tu caso de uso, consulta la siguiente tabla en la que se comparan los dos métodos para administrar nodos de GPU en GKE.
Descripción | Usa GKE para administrar nodos de GPU | Usa el operador de GPU de NVIDIA en GKE |
---|---|---|
Administración del ciclo de vida de los nodos de GPU (instalación y actualización) | Completamente administrado por GKE. | El usuario la administra. |
Instalación del controlador | 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 la GPU |
|
|
Verificación de estado de los nodos de GPU |
|
|
Métricas y observabilidad |
|
|
Optimiza el uso de recursos con las funciones de GPU en GKE
De forma predeterminada, Kubernetes solo admite la asignación de GPU como unidades completas a los contenedores, pero GKE proporciona funciones adicionales que puedes usar para optimizar el uso de recursos de tus cargas de trabajo de GPU.
Las siguientes funciones están disponibles en GKE para reducir la cantidad de recursos de GPU infrautilizados:
Características de las GPU | |
---|---|
GPU de instancias múltiples |
Disponible en: Autopilot y Standard Divide una sola GPU en hasta siete instancias separadas por hardware que se puedan asignar como GPUs individuales a los contenedores de un nodo. Cada contenedor asignado obtiene los recursos disponibles para esa instancia. |
GPU de tiempo compartido |
Disponible en: Autopilot y Standard Presenta una sola GPU como varias unidades a varios contenedores en un nodo. El controlador de GPU cambia de contexto y asigna los recursos de GPU completos a cada contenedor asignado según sea necesario con el tiempo. |
NVIDIA MPS |
Disponible en: Standard Comparte una sola GPU física de NVIDIA en varios contenedores. NVIDIA MPS es una implementación alternativa y compatible con el objeto binario de la API CUDA, que está diseñada para habilitar de manera transparente las aplicaciones CUDA de procesos múltiples cooperativos para que se ejecuten de forma simultánea en un solo dispositivo de GPU. |
Accede a las bibliotecas de NVIDIA CUDA-X para aplicaciones CUDA
CUDA es una plataforma de procesamiento paralela de NVIDIA y un modelo de programación para las GPU. Para usar aplicaciones CUDA, la imagen que uses debe tener las bibliotecas. Para agregar las bibliotecas NVIDIA CUDA-X, puedes compilar y usar tu propia imagen. Para ello, incluye los siguientes valores en la variable de entorno LD_LIBRARY_PATH
en la especificación de tu contenedor:
/usr/local/nvidia/lib64
: la ubicación de los controladores del dispositivo NVIDIA./usr/local/cuda-CUDA_VERSION/lib64
: la ubicación de las bibliotecas NVIDIA CUDA-X en el nodo.Reemplaza
CUDA_VERSION
por la versión con imágenes CUDA-X que usaste. Algunas versiones también contienen utilidades de depuración en/usr/local/nvidia/bin
. Para obtener más información, consulta la imagen CUDA de NVIDIA en DockerHub.Si deseas verificar el controlador de GPU mínimo necesario para tu versión de CUDA, consulta el kit de herramientas CUDA y las versiones de controladores compatibles.
En los clústeres Autopilot, GKE administra la selección y la instalación de la versión del controlador.
Supervisa el rendimiento de las cargas de trabajo del nodo 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 supervisar el rendimiento de tu carga de trabajo de GPU:
- Ciclo de trabajo (
container/accelerator/duty_cycle
): es el porcentaje de tiempo del último período de muestra (10 segundos) durante el cual el acelerador se procesaba de forma activa. Entre 1 y 100. - Uso de memoria (
container/accelerator/memory_used
): es la cantidad de memoria del acelerador asignada expresada en bytes. - Capacidad de memoria (
container/accelerator/memory_total
): es la memoria total del acelerador expresada en bytes.
Estas métricas se aplican a nivel de contenedor (container/accelerator
) y no
se recopilan para los contenedores programados en una GPU que emplea el uso compartido de tiempo de GPU o MPS NVIDIA.
Puedes usar paneles predefinidos para supervisar los clústeres con nodos de GPU. Para obtener más información, consulta Visualiza métricas de observabilidad. Para obtener información general sobre la supervisión de los clústeres y sus recursos, consulta Observabilidad para GKE.
Visualiza las métricas de uso de las cargas de trabajo
Puedes ver las métricas de uso de GPU de las cargas de trabajo en el panel Cargas de trabajo de la consola de Google Cloud .
Para ver el uso de GPU de las cargas de trabajo, sigue los siguientes pasos:
Accede a la página Cargas de trabajo de la consola de Google Cloud .
Acceder a Cargas de trabajo- Selecciona una carga de trabajo.
En el panel de las cargas de trabajo, se muestran los gráficos del uso y la capacidad de la memoria de GPU y el ciclo de trabajo de GPU.
Visualiza las métricas del administrador de GPU del centro de datos (DCGM) de NVIDIA
Puedes recopilar y visualizar las métricas del DCGM de NVIDIA con Google Cloud Managed Service para Prometheus. Para los clústeres en modo Autopilot, GKE instala los controladores. Para los clústeres estándar, debes instalar los controladores NVIDIA.
Para obtener instrucciones sobre cómo implementar el paquete de DCGM administrado por GKE, consulta Recopila y visualiza métricas del administrador de GPU del centro de datos de NVIDIA (DCGM).
Controla las interrupciones debidas al mantenimiento de los nodos
Los nodos de GKE que alojan las GPU están sujetos a eventos de mantenimiento o demás interrupciones que pueden causar el cierre de los nodos. En los clústeres de GKE con el plano de control que ejecuta la versión 1.29.1-gke.1425000 y versiones posteriores, puedes configurar GKE para finalizar tus cargas de trabajo de forma ordenada y reducir las interrupciones.
Para comprender, configurar y supervisar los eventos de interrupción que pueden ocurrir en los nodos de GKE que ejecutan cargas de trabajo de IA/AA, consulta Administra la interrupción de nodos de GKE para GPUs y TPUs.