Recopila y visualiza métricas de DCGM

Puedes supervisar el uso, el rendimiento y el estado de la GPU configurando GKE para que envíe métricas del administrador de GPU del centro de datos de NVIDIA (DCGM) a Cloud Monitoring.

Cuando habilitas las métricas de DCGM, GKE instala la herramienta DCGM-Exporter, instala los controladores de GPU administrados por Google y, luego, implementa un recurso ClusterPodMonitoring para enviar métricas a Google Cloud Managed Service para Prometheus. En el caso de los clústeres nuevos de GKE creados con la versión 1.32.1-gke.1357000 o posterior, el paquete de métricas de DCGM está habilitado de forma predeterminada. En el caso de los clústeres que ejecutan versiones anteriores, puedes habilitar la recopilación de métricas de DCGM con la consola de Google Cloud , gcloud CLI o Terraform.

También puedes configurar DCGM autoadministrado si deseas personalizar el conjunto de métricas de DCGM o si tienes un clúster que no cumple con los requisitos para las métricas de DCGM administradas.

¿Qué es DCGM?

El administrador de GPU del centro de datos de NVIDIA (DCGM) es un conjunto de herramientas de NVIDIA que te permiten administrar y supervisar las GPU de NVIDIA. DCGM expone varias estructuras y contadores de observabilidad a través de lo que denomina fields. Cada campo tiene un identificador simbólico y un número de campo. Puedes encontrar una lista completa de ellos en NVIDIA DCGM list of Field IDs.

Si habilitas las métricas de DCGM en GKE, las métricas admitidas estarán disponibles automáticamente en Cloud Monitoring. Estas métricas proporcionan una vista integral de la utilización, el rendimiento y el estado de la GPU.

  • Las métricas de uso de GPU son una indicación de lo ocupada está la GPU supervisada y si se usa de manera eficaz para procesar tareas. Esto incluye métricas para el procesamiento central, la memoria, las E/S y el uso de energía.
  • Las métricas de rendimiento de la GPU hacen referencia a la eficacia y eficiencia con las que una GPU puede realizar una tarea de procesamiento. Esto incluye métricas para la velocidad de reloj y la temperatura.
  • Las métricas de E/S de la GPU, como NVLink y PCIe, miden el ancho de banda de transferencia de datos.

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta el comando gcloud components update para obtener la versión más reciente. Es posible que las versiones anteriores de gcloud CLI no admitan la ejecución de los comandos que se describen en este documento.

Requisitos para las métricas del administrador de GPU del centro de datos de NVIDIA (DCGM)

Para recopilar métricas del administrador de GPU del centro de datos de NVIDIA (DCGM), tu clúster de GKE debe cumplir con los siguientes requisitos:

Limitaciones

  • Si ejecutas un paquete de métricas del administrador de GPU del centro de datos de NVIDIA (DCGM) autoimplementado, debes dejar de recopilarlo antes de habilitar las métricas administradas del administrador de GPU del centro de datos de NVIDIA (DCGM). De lo contrario, podrías obtener métricas duplicadas o incorrectas.

  • Las métricas de DCGM administradas, incluidos sus manifiestos y sus imágenes de contenedor subyacentes, están diseñadas para funcionar solo en clústeres de GKE. No uses las métricas de DCGM administradas de forma independiente ni las ejecutes fuera de GKE.

Configura la recopilación de métricas de DCGM

Puedes habilitar GKE para que recopile métricas de DCGM para un clúster existente con la consola de Google Cloud , gcloud CLI o Terraform.

Console

  1. Crea un grupo de nodos de GPU.

    Debes usar Predeterminado o Más reciente para la instalación del controlador de GPU.

  2. Ve a la página de Google Kubernetes Engine en la consola de Google Cloud .

    Ir a Google Kubernetes Engine

  3. Haz clic en el nombre de tu clúster.

  4. Junto a Cloud Monitoring, haz clic en .

  5. Selecciona SYSTEM y DCGM.

  6. Haz clic en Guardar.

gcloud

  1. Crea un grupo de nodos de GPU.

    Debes usar default o latest para --gpu-driver-version.

  2. Actualiza tu clúster:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-managed-prometheus \
        --monitoring=SYSTEM,DCGM
    

    Reemplaza lo siguiente:

Terraform

Para configurar la colección de métricas de DCGM mediante Terraform, consulta el bloque monitoring_config en el registro de Terraform para google_container_cluster. Para obtener información general sobre el uso de Google Cloud con Terraform, consulta Terraform con Google Cloud.

Usa las métricas de DCGM

Puedes ver las métricas de DCGM con los paneles de la consola deGoogle Cloud o directamente en las páginas de descripción general y detalles del clúster. Para obtener más información, consulta Visualiza métricas de observabilidad.

Puedes ver las métricas con el panel de métricas de DCGM de Grafana. Para obtener más información, consulta Realiza consultas con Grafana. Si encuentras algún error, consulta Compatibilidad de la API.

Precios

Las métricas de DCGM usan Google Cloud Managed Service para Prometheus para cargar métricas en Cloud Monitoring. Cloud Monitoring cobra por la transferencia de estas métricas según la cantidad de muestras transferidas.

Para obtener más información, consulta los precios de Cloud Monitoring.

Cuota

Las métricas de DCGM consumen la cuota de solicitudes de transferencia de series temporales por minuto de la API de Cloud Monitoring. Antes de habilitar los paquetes de métricas, verifica tu uso máximo reciente de esa cuota. Si tienes muchos clústeres en el mismo proyecto o ya te acercaste al límite de esa cuota, puedes solicitar un aumento del límite de cuota antes de habilitar cualquiera de los paquetes de observabilidad.

Métricas de DCGM

Los nombres de las métricas de Cloud Monitoring en esta tabla deben tener el prefijo prometheus.googleapis.com/. Este prefijo se omitió en las entradas de la tabla.

Junto con las etiquetas del recurso supervisado prometheus_target, todas las métricas de DCGM recopiladas en GKE tienen las siguientes etiquetas adjuntas:

Etiquetas de GPU:

  • UUID: Es el UUID del dispositivo de GPU.
  • device: Es el nombre del dispositivo de GPU.
  • gpu: Es el número de índice como un número entero del dispositivo de GPU en el nodo. Por ejemplo, si hay 8 GPUs adjuntas, este valor puede variar de 0 a 7.
  • modelName: Es el nombre del modelo del dispositivo de GPU, como NVIDIA L4.

Etiquetas de Kubernetes:

  • container: Es el nombre del contenedor de Kubernetes que usa el dispositivo de GPU.
  • namespace: Es el espacio de nombres de Kubernetes del Pod y el contenedor que usan el dispositivo de GPU.
  • pod: Es el Pod de Kubernetes que usa el dispositivo de GPU.
Nombre de la métrica de PromQL
Nombre de la métrica de Cloud Monitoring
Categoría, tipo, unidad
Recursos supervisados
Versión de GKE requerida
Descripción
DCGM_FI_DEV_FB_FREE
DCGM_FI_DEV_FB_FREE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Búfer de fotogramas libre en MB.
DCGM_FI_DEV_FB_TOTAL
DCGM_FI_DEV_FB_TOTAL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Es el búfer de fotogramas total de la GPU en MB.
DCGM_FI_DEV_FB_USED
DCGM_FI_DEV_FB_USED/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Es el búfer de fotogramas utilizado en MB.
DCGM_FI_DEV_GPU_TEMP
DCGM_FI_DEV_GPU_TEMP/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Son las lecturas de temperatura actuales del dispositivo (en °C).
DCGM_FI_DEV_GPU_UTIL
DCGM_FI_DEV_GPU_UTIL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Es el porcentaje de uso de la GPU.
DCGM_FI_DEV_MEM_COPY_UTIL
DCGM_FI_DEV_MEM_COPY_UTIL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Porcentaje de uso de memoria.
DCGM_FI_DEV_MEMORY_TEMP
DCGM_FI_DEV_MEMORY_TEMP/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Es la temperatura de la memoria del dispositivo (en °C).
DCGM_FI_DEV_POWER_USAGE
DCGM_FI_DEV_POWER_USAGE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Uso de energía del dispositivo (en vatios).
DCGM_FI_DEV_SM_CLOCK
DCGM_FI_DEV_SM_CLOCK/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Frecuencia de reloj de SM (en MHz).
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION/counter

CUMULATIVEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Consumo total de energía de la GPU en mJ desde la última vez que se volvió a cargar el controlador.
DCGM_FI_PROF_DRAM_ACTIVE
DCGM_FI_PROF_DRAM_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Es la proporción de ciclos en los que la interfaz de memoria del dispositivo está activa enviando o recibiendo datos.
DCGM_FI_PROF_GR_ENGINE_ACTIVE
DCGM_FI_PROF_GR_ENGINE_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Es la proporción de tiempo en que el motor de gráficos está activo.
DCGM_FI_PROF_NVLINK_RX_BYTES
DCGM_FI_PROF_NVLINK_RX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Es la tasa de datos de recepción (lectura) de NvLink activos en bytes, incluidos el encabezado y la carga útil.
DCGM_FI_PROF_NVLINK_TX_BYTES
DCGM_FI_PROF_NVLINK_TX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Es la tasa de datos activos de transmisión (tx) de NvLink en bytes, incluidos el encabezado y la carga útil.
DCGM_FI_PROF_PCIE_RX_BYTES
DCGM_FI_PROF_PCIE_RX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Es la tasa de datos activos de PCIe rx (lectura) en bytes, incluidos el encabezado y la carga útil.
DCGM_FI_PROF_PCIE_TX_BYTES
DCGM_FI_PROF_PCIE_TX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Es la tasa de datos de transmisión (tx) de PCIe activos en bytes, incluidos el encabezado y la carga útil.
DCGM_FI_PROF_PIPE_FP16_ACTIVE
DCGM_FI_PROF_PIPE_FP16_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Es la proporción de ciclos en los que la canalización de fp16 está activa.
DCGM_FI_PROF_PIPE_FP32_ACTIVE
DCGM_FI_PROF_PIPE_FP32_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Es la proporción de ciclos en los que la canalización de fp32 está activa.
DCGM_FI_PROF_PIPE_FP64_ACTIVE
DCGM_FI_PROF_PIPE_FP64_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Es la proporción de ciclos en los que la canalización de FP64 está activa.
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Es la proporción de ciclos en los que cualquier canalización de tensor está activa.
DCGM_FI_PROF_SM_ACTIVE
DCGM_FI_PROF_SM_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Es la proporción de ciclos en los que un SM tiene al menos 1 warp asignado.

Para ayudarte a comprender cómo se pueden usar estas métricas, las agrupamos de la siguiente manera:

Uso de procesamiento o de núcleos

Estas métricas te permiten identificar los dispositivos subutilizados y ajustar la asignación de GPU o de procesamiento para optimizar la utilización. Un uso bajo significa que es posible que estés pagando por más capacidad de GPU de la que necesitas. Estas métricas pueden ayudar a ahorrar costos, ya que consolidan el procesamiento en menos dispositivos.

DCGM_FI_DEV_GPU_UTIL

Esta métrica representa la fracción de tiempo que estuvo activa la GPU.

Uso esperado: Proporciona una descripción general de la utilización promedio de la GPU. Esta métrica es similar a DCGM_FI_PROF_GR_ENGINE_ACTIVE, que podría ser una métrica más precisa para el uso de la GPU.

DCGM_FI_PROF_GR_ENGINE_ACTIVE

Esta métrica representa qué tan ocupado estuvo el motor de gráficos en cada intervalo de muestreo. El valor se deriva de la cantidad promedio de ciclos activos en comparación con la cantidad máxima posible de ciclos disponibles durante el intervalo de muestreo. Por ejemplo, si, durante un intervalo de muestreo de un segundo, había 1,000 ciclos disponibles y, en promedio, 324 ciclos estaban activos (realizando trabajo), el valor de la métrica resultante sería 0.324. Esto se puede interpretar aproximadamente como un uso del (0.324 x 100) 32.4%.

Uso esperado: Proporciona una descripción general de la utilización promedio de la GPU. Los valores de uso constantemente altos indican que la GPU podría ser un cuello de botella que causa problemas de rendimiento del sistema. Los valores de utilización bajos de forma constante indican que la aplicación no está usando por completo la potencia de procesamiento disponible.

DCGM_FI_PROF_PIPE_FP16_ACTIVE, DCGM_FI_PROF_PIPE_FP32_ACTIVE, DCGM_FI_PROF_PIPE_FP64_ACTIVE, DCGM_FI_PROF_PIPE_TENSOR_ACTIVE

Estas métricas representan la proporción de ciclos en los que cualquier canalización de GPU determinada está activa en relación con los ciclos máximos continuos transcurridos.

Uso esperado: Mide la eficacia con la que se usan las distintas canalizaciones de procesamiento de la GPU.

DCGM_FI_PROF_SM_ACTIVE

Esta métrica representa la fracción de tiempo en que al menos un warp estuvo activo en un SM(Streaming Multiprocessor), promediada en todos los SM. Por ejemplo, si la GPU tiene 80 SM disponibles y, durante el período de muestreo, 16 SM ejecutaron una warp, el valor de sm_active resultante sería (16/80) 0.20, lo que se puede interpretar como que el 20% de los SM disponibles tenían una warp en ejecución.

Uso esperado: Proporciona una medida de cómo se utiliza el paralelismo de la GPU.

Uso de memoria

El uso principal de estas métricas es detectar cuándo los dispositivos de GPU no tienen suficiente memoria para las aplicaciones. Es posible que esas aplicaciones se beneficien de la asignación de más capacidad de GPU.

DCGM_FI_DEV_FB_FREE, DCGM_FI_DEV_FB_USED, DCGM_FI_DEV_FB_TOTAL

Estas métricas son para la memoria del búfer de fotogramas, que es la memoria de la GPU. Las métricas informan la memoria libre y la memoria utilizada, que suman el total. Y también la memoria total disponible.

Uso esperado: Determina los patrones de uso de la memoria de GPU. Esto te permite correlacionar el uso real de la memoria en la GPU con el uso esperado para determinar la eficiencia de la memoria de tu aplicación.

DCGM_FI_DEV_MEM_COPY_UTIL

Esta métrica representa la fracción de tiempo durante el último período de muestra en el que se leyó o escribió en la memoria global (dispositivo).

Uso esperado: Determina los patrones de transferencia de datos hacia y desde la memoria de la GPU. Los valores altos de esta métrica, combinados con valores bajos de las métricas de utilización de procesamiento, pueden indicar que la transferencia de memoria es el cuello de botella en las aplicaciones en ejecución.

DCGM_FI_PROF_DRAM_ACTIVE

Esta métrica representa la proporción de ciclos en los que la interfaz de memoria de la GPU envía o recibe datos. Esto incluye cargas y almacenamientos de subprocesos que se ejecutan en SM, así como copias de memoria hacia y desde la memoria de la GPU. Los valores más altos indican niveles más altos de tráfico de memoria.

Uso esperado: Esta métrica es similar a la métrica DCGM_FI_DEV_MEM_COPY_UTIL y podría ser más precisa.

Utilización de E/S

Las siguientes métricas proporcionan información sobre el uso de la transmisión de datos entre la GPU y el host, o entre varios dispositivos de GPU. Una forma de usar esas métricas es detectar cuándo una aplicación sobrecarga la interconexión. Debido a la naturaleza inherentemente repentina de este tipo de transmisión, podría valer la pena explorar datos de mayor resolución (p.ej., una distribución) para obtener una imagen más detallada del comportamiento de la interconexión.

DCGM_FI_PROF_NVLINK_RX_BYTES, DCGM_FI_PROF_NVLINK_TX_BYTES

Estas métricas representan la capacidad de procesamiento de transmisión (tx) y recepción (rx) de NVLink en bytes.

Uso esperado: Haz un seguimiento de la carga en los conectores NVLink (entre chips de GPU). Si el valor de estas métricas se acerca al ancho de banda total disponible de NVLink y las métricas de utilización de procesamiento son bajas, esto podría indicar que NVLink es un cuello de botella en las aplicaciones en ejecución.

DCGM_FI_PROF_PCIE_RX_BYTES, DCGM_FI_PROF_PCIE_TX_BYTES

Estas métricas representan la capacidad de procesamiento de transmisión (tx) y recepción (rx) de PCIe en bytes, donde tx es la GPU que transmite datos y rx es la GPU que recibe datos.

Uso esperado: Haz un seguimiento de la carga en el bus PCIe (entre la CPU y la GPU). Si los valores de estas métricas se acercan al ancho de banda total del bus PCIe y las métricas de utilización de procesamiento son bajas, esto podría indicar que el bus PCIe es un cuello de botella en las aplicaciones en ejecución.

Utilización de energía

Las siguientes métricas proporcionan información sobre el uso de energía de la GPU, que a veces es fundamental para el rendimiento y la eficiencia de la carga de trabajo.

DCGM_FI_DEV_GPU_TEMP

Esta métrica representa la temperatura promedio en todos los núcleos de GPU.

Uso esperado: Realiza un seguimiento de cuándo la GPU está cerca de sobrecalentarse, principalmente para correlacionar con la regulación de la velocidad del reloj. También puedes usar esta métrica para identificar las GPUs propensas al sobrecalentamiento para una carga más ligera en aplicaciones más avanzadas.

DCGM_FI_DEV_POWER_USAGE

Esta métrica representa el consumo de energía de la GPU en vatios. Es posible que desees hacer un seguimiento del uso de energía como una métrica de GPU ocupada. Las GPU de NVIDIA ajustan los relojes del motor según la cantidad de trabajo que realizan. A medida que aumenta la velocidad del reloj (y, por lo tanto, la utilización), también aumenta el consumo de energía.

Uso esperado: Realiza un seguimiento de la cantidad de energía que usa la GPU para las aplicaciones del usuario.

DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION

Esta métrica representa el consumo total de energía de la GPU en milijulios (mJ) después de la última recarga del controlador. La tasa calculada para esta métrica debe corresponder a la métrica de consumo de energía.

Uso esperado: Realiza un seguimiento de la cantidad de energía que usa la GPU para las aplicaciones del usuario.

Métricas de rendimiento de la GPU

El rendimiento de la GPU se refiere a la eficacia y eficiencia con las que una GPU puede realizar una tarea de procesamiento.

DCGM_FI_DEV_MEMORY_TEMP

Esta métrica indica la temperatura promedio del bloque de memoria.

Uso esperado: Para mostrar la temperatura del bloque de memoria y correlacionarla con la temperatura de la GPU

DCGM_FI_DEV_SM_CLOCK

Esta métrica representa la velocidad de reloj promedio en todos los SM. Esta métrica se calcula en un intervalo de tiempo especificado.

Uso esperado: Haz un seguimiento de la velocidad de reloj para detectar el límite y correlacionarlo con el rendimiento de la aplicación.

¿Qué sigue?