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úrese de que conoce 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 asociar 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 las bibliotecas de 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.
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 GPUs del plan
Tu cuota de GPU 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 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 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 los controladores de GPU, la monitorización de las 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 GPUs en Autopilot
- Ejecutar GPUs en grupos de nodos estándar
- Implementar 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 de 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_VERSION
por 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 estará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 último periodo de muestreo (10 segundos) en el que el acelerador 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 tus cargas 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.
Ve 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 el caso de 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).
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 comprender, 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.