Información sobre las GPU en GKE


En esta página, se describen las GPU en Google Kubernetes Engine (GKE), incluidos los casos de uso, las funciones compatibles y los tipos de GPU, y las diferencias entre los modos Autopilot y Standard. Para obtener instrucciones para conectar y usar las GPU en tus cargas de trabajo, consulta Implementa cargas de trabajo de GPU en Autopilot o Ejecuta GPU en grupos de nodos estándar.

Disponibilidad de la GPU en GKE

En GKE Autopilot y Standard, puedes conectar hardware de GPU a nodos en tus clústeres y, luego, asignar recursos de GPU a cargas de trabajo en contenedores que se ejecutan en esos nodos. Puedes usar estos aceleradores para realizar tareas de uso intensivo de recursos, como las siguientes:

  • Inferencia y entrenamiento de aprendizaje automático (AA)
  • Procesamiento de datos a gran escala

El hardware de GPU que está disponible para su uso en GKE es un subconjunto de las GPU de Compute Engine para cargas de trabajo de procesamiento. GKE ofrece algunas funciones específicas de la GPU, como uso compartido de tiempo y GPU de varias instancias, que pueden mejorar la eficiencia con la que las cargas de trabajo usan los recursos de GPU en tus nodos.

El hardware específico disponible depende de la región o zona de Compute Engine de tu clúster. Para obtener información sobre la disponibilidad específica, consulta Regiones y zonas de GPU.

Cuota de GPU

Tu cuota de GPU es la cantidad máxima de GPU que puedes ejecutar en tu proyecto de Google Cloud. Para usar GPU en tus clústeres de GKE, tu proyecto debe tener una cuota de GPU suficiente.

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 creas un clúster con tres nodos que ejecutan dos GPU por nodo, tu proyecto necesita, al menos, seis cuotas de GPU.

Para solicitar una cuota de GPU adicional, sigue las instrucciones en Solicita un límite de cuota más alto y usa gpus como la métrica.

Compatibilidad de GPU en Autopilot y Standard

Las GPU están disponibles en clústeres de Autopilot y Standard. En la siguiente tabla, se describen las diferencias entre la asistencia de Autopilot y Standard GPU:

Descripción Autopilot Estándar
Disponibilidad del hardware de GPU
  • NVIDIA T4
  • NVIDIA A100
Todos los tipos de GPU compatibles con Compute Engine
Selecciona una GPU Solicitas una cantidad y un tipo de GPU en tu especificación de Pods. Autopilot instala controladores estables y administra nodos.
  1. Crea un grupo de nodos con el tipo de GPU específico y el tipo de máquina de Compute Engine correspondiente, y elige un controlador para instalar.
  2. Instala de forma manual los controladores de GPU en los nodos si no usaste la instalación automática
  3. Solicita las cantidades de GPU en la especificación del Pod

Para obtener instrucciones, consulta Ejecuta GPU en grupos de nodos estándar

Funciones adicionales de GPU No disponible
Precios Precios de los Pods de GPU de Autopilot Precios de GPU de Compute Engine

En Autopilot, GKE administra la instalación del controlador, el escalamiento del nodo, el aislamiento de Pods y el aprovisionamiento de nodos. Te recomendamos elegir un modo de clúster para tus GPUs según la flexibilidad y el nivel de control que desees sobre tus nodos, de la siguiente manera:

  • Si deseas enfocarte en implementar las cargas de trabajo basadas en GPU sin necesidad de administrar los nodos y si los tipos de GPU disponibles se ajustan a tus necesidades, usa Autopilot.
  • Si prefieres administrar tus nodos, versiones de controladores, escalamiento, aislamiento y máquinas subyacentes tú mismo, o si necesitas funciones como el uso compartido de tiempo y GPU de varias instancias, usa Standard.

Funciones de GPU en GKE

GKE proporciona funciones adicionales que puedes usar para optimizar el uso de los recursos de las cargas de trabajo de la GPU, de modo que no desperdicie recursos de GPU en los nodos. De forma predeterminada, Kubernetes solo admite la asignación de GPU como unidades completas a los contenedores, incluso si un contenedor solo necesita una fracción de la GPU disponible, o si el contenedor no siempre usa los recursos.

Las siguientes funciones están disponibles en GKE para reducir la cantidad de recursos de GPU con poco uso:

Características de las GPU
GPU de tiempo compartido

Disponible en: 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 completos de GPU a cada contenedor asignado según sea necesario con el tiempo.

GPU de instancias múltiples

Disponible en: Standard

Divide una sola GPU en hasta siete instancias separadas por hardware que se puedan asignar como GPU individuales a contenedores en un nodo. Cada contenedor asignado obtiene los recursos disponibles para esa instancia.

Acerca de las bibliotecas de NVIDIA CUDA-X

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, usa cualquiera de los siguientes métodos:

  • Recomendado: usa una imagen con las bibliotecas NVIDIA CUDA-X preinstaladas. Por ejemplo, puedes usar contenedores de aprendizaje profundo. Estos contenedores instalan previamente los frameworks de ciencia de datos clave, las bibliotecas y las herramientas NVIDIA CUDA-X. Como alternativa, la imagen CUDA de NVIDIA contiene solo las bibliotecas NVIDIA CUDA-X.
  • Compila y usa tu propia imagen. En este caso, incluye los siguientes valores en la variable de entorno LD_LIBRARY_PATH en la especificación de tu contenedor:
    1. /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.
    2. /usr/local/nvidia/lib64: la ubicación de los controladores del dispositivo NVIDIA.

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. Asegúrate de que la versión del parche de GKE que se ejecuta en tus nodos incluya una versión del controlador de GPU compatible con la versión de CUDA elegida. Para obtener una lista de las versiones del controlador de GPU asociadas con la versión de GKE, consulta la página de Container-Optimized OS correspondiente vinculada en la tabla de versiones actuales de GKE.

En los clústeres Autopilot, GKE administra la selección y la instalación de la versión del controlador.

Supervisa 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 supervisar el rendimiento de tu carga de trabajo de GPU:

  • Ciclo de trabajo (container/accelerator/duty_cycle): Porcentaje de tiempo durante el ú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): cantidad de memoria del acelerador asignada en bytes.
  • Capacidad de memoria (container/accelerator/memory_total): Memoria total del acelerador en bytes.

Puedes usar paneles predefinidos para supervisar tus 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 tu carga de trabajo desde el panel de Cargas de trabajo en la consola de Google Cloud.

Para ver el uso de GPU de tu carga de trabajo, realiza los siguientes pasos:

  1. Ve a la página Cargas de trabajo en la consola de Google Cloud.

    Ir a Cargas de trabajo
  2. Selecciona una carga de trabajo.

El panel de las cargas de trabajo muestra los gráficos para el uso y la capacidad de la memoria de GPU y el ciclo de trabajo de GPU.

¿Qué sigue?