En esta página, se proporciona información sobre las opciones para solicitar GPU en Google Kubernetes Engine (GKE), incluidas las siguientes:
- Elige recursos de GPU y funciones de eficiencia para tus cargas de trabajo de GKE
- Elige tu cuota de GPU, la cantidad máxima de GPU que puedes ejecutar en tu proyecto
- Decide 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
- Cómo elegir funciones para reducir la cantidad de recursos de GPU infrautilizados
- Accede a las bibliotecas NVIDIA CUDA-X para aplicaciones CUDA
- Supervisa métricas de nodos de GPU
- Controla las interrupciones debido al mantenimiento de los nodos
El hardware de GPU disponible para su uso en GKE es un subconjunto de las GPUs de Compute Engine para cargas de trabajo de procesamiento. El hardware específico disponible depende de la región o zona de Compute Engine del clúster. Para obtener información sobre la disponibilidad específica, consulta Regiones y zonas de GPU.
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.
Planifica la 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 esperas usar tres nodos con dos GPU cada uno, seis es la cuota de GPU requerida para tu proyecto.
Para solicitar una cuota de GPU adicional, sigue las instrucciones en Solicita un límite de cuota más alto con gpus
como la métrica.
Elige la compatibilidad con GPU mediante Autopilot o Standard
Las GPU están disponibles en clústeres de Autopilot y Standard. Te recomendamos que uses los clústeres de Autopilot para obtener una experiencia de Kubernetes completamente administrada. En Autopilot, GKE administra la instalación del controlador, el escalamiento 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 los recursos de GPU en tus cargas de trabajo. | Adjunta el hardware de GPU a los nodos de tus clústeres y, luego, asigna los recursos de GPU a las cargas de trabajo en contenedores que se ejecutan en esos nodos. |
Disponibilidad del hardware de GPU |
|
Todos los tipos de GPU compatibles con Compute Engine |
Selecciona una GPU | Solicitas una cantidad y un tipo de GPU en la especificación de la 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 descritos en Ejecuta GPU en grupos de nodos estándar:
|
Mejora el uso de GPU | ||
Seguridad | GPU con GKE Sandbox | GPU con GKE Sandbox |
Precios | Precios del Pod de GPU de Autopilot | Precios de GPU 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.
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 el administrador de GPU del centro de datos (DCGM) de NVIDIA y las estrategias de uso compartido de GPU.
Te recomendamos que uses 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:
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 | Cómo usar el operador de GPU de NVIDIA en GKE |
---|---|---|
Administración del ciclo de vida del nodo de GPU (instalación, actualización) | GKE lo administra por completo. | Administrada por el usuario. |
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 del 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 con poco uso:
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 NVIDIA CUDA-X para las 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/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.
/usr/local/nvidia/lib64
: la ubicación de los controladores del dispositivo NVIDIA.
En los clústeres Autopilot, GKE administra la selección y la instalación de la versión del controlador.
Supervisa el rendimiento de la carga 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
): 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:
Ve a la página Cargas de trabajo en la consola de Google Cloud.
Ir a Cargas de trabajo- 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.
Visualiza las métricas del administrador de GPU del centro de datos de NVIDIA (DCGM)
Puedes recopilar y visualizar métricas de NVIDIA DCGM a través de Google Cloud Managed Service para Prometheus. Para los clústeres de Autopilot, GKE instala los controladores. Para los clústeres de Standard, 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.