Alejandría

Busca en Alejandría

Herramientas

NVIDIA DCGM Exporter

Exporta métricas de GPUs NVIDIA en formato Prometheus mediante DCGM.

01

En pocas palabras

Exporta métricas de GPUs NVIDIA en formato Prometheus mediante DCGM.

Qué problema resuelve

Falta de visibilidad de utilización, temperatura, memoria y errores durante cargas GPU.

Cuándo utilizarlo

Entrenamiento e inferencia. Ejemplo: detectar un worker con menor utilización que el resto.

02

De la idea a la práctica

Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.

En el Radar compartido: Trial (valoración de la edición aportada).

Cómo funciona

DCGM recoge telemetría del dispositivo y el exporter publica métricas en un endpoint. Puede integrarse con Prometheus, Grafana y entornos Kubernetes.

Ejemplo de uso

Comparar utilización y memoria entre GPUs de un entrenamiento distribuido. Investigar si un worker lento coincide con errores de memoria, límites de potencia o falta de datos de entrada.

Métricas más útiles

Métrica Qué indica
DCGM_FI_DEV_GPU_UTIL % de tiempo con algún kernel en ejecución (no mide eficiencia)
DCGM_FI_PROF_SM_ACTIVE Fracción de multiprocesadores ocupados; más representativa
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE Uso de Tensor Cores (entrenamiento e inferencia en precisión mixta)
DCGM_FI_PROF_DRAM_ACTIVE Actividad de memoria: alta con SM bajo sugiere cuello de memoria
DCGM_FI_DEV_FB_USED / FB_FREE Memoria de GPU usada y libre
DCGM_FI_DEV_POWER_USAGE Consumo en vatios; útil para detectar limitación por potencia
DCGM_FI_DEV_GPU_TEMP Temperatura; relacionada con throttling
DCGM_FI_DEV_XID_ERRORS Errores del driver o hardware (Xid); alerta inmediata

Una GPU con GPU_UTIL al 100 % puede estar usando una pequeña parte de su capacidad: mira SM_ACTIVE y TENSOR_ACTIVE antes de concluir que está saturada.

Despliegue

# En un host con drivers y NVIDIA Container Toolkit
docker run -d --gpus all --cap-add SYS_ADMIN -p 9400:9400 \
  nvcr.io/nvidia/k8s/dcgm-exporter:<versión>
curl localhost:9400/metrics | grep DCGM_FI_DEV_GPU_UTIL

En Kubernetes se instala como DaemonSet mediante su Helm chart o como parte del NVIDIA GPU Operator. Con el pod resources API del kubelet añade las etiquetas pod, namespace y container a cada métrica, lo que permite atribuir el uso de GPU a cada workload.

Selección de contadores

Los contadores se definen en un CSV (-f /etc/dcgm-exporter/default-counters.csv). Los de perfilado (DCGM_FI_PROF_*) tienen más coste y algunos no están disponibles en todas las arquitecturas. Elige un conjunto pequeño por defecto y activa más solo al investigar.

Alertas recomendadas

  • Errores Xid o ECC no corregibles → página inmediata.
  • Temperatura sostenida cerca del límite o throttling por potencia.
  • GPU asignada a un pod con SM_ACTIVE cercano a cero durante horas: recurso caro desaprovechado.

Visualiza en Grafana con el dashboard oficial de DCGM y correlaciona con métricas del servidor de inferencia, como las de vLLM.

Criterios de implementación

Comprobar compatibilidad de drivers y hardware y seleccionar contadores relevantes. Proteger el endpoint y controlar etiquetas por workload para evitar cardinalidad innecesaria.

Continúa en las fuentes

Documentación oficial para verificar detalles y explorar más.