gpu_utilization_monitoring
Skill para monitorizar en tiempo real el uso de GPU (memoria VRAM, compute utilization, temperatura y power draw) de los workers de inferencia ML del sistema de verificación KYC. Permite identificar cuellos de botella en el pipeline de modelos faciales, liveness y OCR, y optimizar la asignación de recursos entre modelos.
When to use
Usar esta skill cuando el model_server_agent necesite configurar, consultar o ajustar la monitorización de recursos GPU en los nodos de inferencia. Aplica al dimensionar infraestructura, diagnosticar latencias elevadas, planificar escalado o detectar fugas de memoria VRAM en los modelos desplegados.
Instructions
Configurar la recolección de métricas GPU mediante NVIDIA DCGM (Data Center GPU Manager) como fuente primaria:
# Instalar y arrancar DCGM exporter para Prometheus
docker run -d --gpus all --rm -p 9400:9400 \
nvcr.io/nvidia/k8s/dcgm-exporter:3.3.5-3.4.0-ubuntu22.04
Definir las métricas clave a monitorizar por cada worker de inferencia:
# dcgm-metrics.yaml
metrics:
- DCGM_FI_DEV_GPU_UTIL # % uso compute
- DCGM_FI_DEV_MEM_COPY_UTIL # % uso memoria
- DCGM_FI_DEV_FB_USED # VRAM usada (MB)
- DCGM_FI_DEV_FB_FREE # VRAM libre (MB)
- DCGM_FI_DEV_GPU_TEMP # Temperatura GPU
- DCGM_FI_DEV_POWER_USAGE # Consumo energético (W)
- DCGM_FI_PROF_SM_OCCUPANCY # Ocupación de SMs
Configurar dashboards en Grafana con paneles por modelo del pipeline KYC:
Panel 1: GPU Utilization por modelo (ArcFace, Liveness, PaddleOCR)
Panel 2: VRAM allocation y fragmentación
Panel 3: Latencia de inferencia P50/P95/P99
Panel 4: Throughput (inferencias/segundo) por modelo
Panel 5: Temperatura y throttling events
Establecer umbrales de alerta para cada métrica:
GPU_ALERTS = {
"gpu_util_low": {"threshold": 30, "condition": "below", "action": "consider_consolidation"},
"gpu_util_high": {"threshold": 90, "condition": "above", "duration": "5m", "action": "scale_out"},
"vram_usage": {"threshold": 85, "condition": "above_percent", "action": "alert_memory_pressure"},
"temperature": {"threshold": 83, "condition": "above_celsius", "action": "alert_thermal_throttle"}
}
Implementar script de diagnóstico rápido para consultar estado actual de GPUs:
nvidia-smi --query-gpu=index,name,utilization.gpu,utilization.memory,memory.used,memory.total,temperature.gpu,power.draw \
--format=csv,noheader,nounits
Configurar correlación entre métricas GPU y métricas de negocio (tiempo de verificación total < 8s) para identificar qué modelo es el cuello de botella.
Implementar auto-scaling basado en métricas GPU mediante Kubernetes HPA custom metrics:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
spec:
metrics:
- type: Pods
pods:
metric:
name: DCGM_FI_DEV_GPU_UTIL
target:
type: AverageValue
averageValue: "75"
Notes
- La monitorización GPU debe ejecutarse con mínimo overhead; DCGM opera a nivel driver y no impacta el rendimiento de inferencia, a diferencia de polling continuo con nvidia-smi.
- Considerar que los modelos del pipeline KYC tienen patrones de uso diferentes: ArcFace tiene picos en face_match, mientras que liveness es más constante. Dashboards separados por modelo facilitan el diagnóstico.
- Las métricas de temperatura son críticas en despliegues on-premise; el thermal throttling puede degradar latencias sin generar errores visibles en los logs de aplicación.
1---2name: gpu-utilization-monitoring3description: Monitorizar uso de GPU de workers de inferencia ML para optimizar recursos y detectar cuellos de botella4---56# gpu_utilization_monitoring78Skill para monitorizar en tiempo real el uso de GPU (memoria VRAM, compute utilization, temperatura y power draw) de los workers de inferencia ML del sistema de verificación KYC. Permite identificar cuellos de botella en el pipeline de modelos faciales, liveness y OCR, y optimizar la asignación de recursos entre modelos.910## When to use1112Usar esta skill cuando el **model_server_agent** necesite configurar, consultar o ajustar la monitorización de recursos GPU en los nodos de inferencia. Aplica al dimensionar infraestructura, diagnosticar latencias elevadas, planificar escalado o detectar fugas de memoria VRAM en los modelos desplegados.1314## Instructions15161. Configurar la recolección de métricas GPU mediante NVIDIA DCGM (Data Center GPU Manager) como fuente primaria:17 ```bash18 # Instalar y arrancar DCGM exporter para Prometheus19 docker run -d --gpus all --rm -p 9400:9400 \20 nvcr.io/nvidia/k8s/dcgm-exporter:3.3.5-3.4.0-ubuntu22.0421 ```22232. Definir las métricas clave a monitorizar por cada worker de inferencia:24 ```yaml25 # dcgm-metrics.yaml26 metrics:27 - DCGM_FI_DEV_GPU_UTIL # % uso compute28 - DCGM_FI_DEV_MEM_COPY_UTIL # % uso memoria29 - DCGM_FI_DEV_FB_USED # VRAM usada (MB)30 - DCGM_FI_DEV_FB_FREE # VRAM libre (MB)31 - DCGM_FI_DEV_GPU_TEMP # Temperatura GPU32 - DCGM_FI_DEV_POWER_USAGE # Consumo energético (W)33 - DCGM_FI_PROF_SM_OCCUPANCY # Ocupación de SMs34 ```35363. Configurar dashboards en Grafana con paneles por modelo del pipeline KYC:37 ```38 Panel 1: GPU Utilization por modelo (ArcFace, Liveness, PaddleOCR)39 Panel 2: VRAM allocation y fragmentación40 Panel 3: Latencia de inferencia P50/P95/P9941 Panel 4: Throughput (inferencias/segundo) por modelo42 Panel 5: Temperatura y throttling events43 ```44454. Establecer umbrales de alerta para cada métrica:46 ```python47 GPU_ALERTS = {48 "gpu_util_low": {"threshold": 30, "condition": "below", "action": "consider_consolidation"},49 "gpu_util_high": {"threshold": 90, "condition": "above", "duration": "5m", "action": "scale_out"},50 "vram_usage": {"threshold": 85, "condition": "above_percent", "action": "alert_memory_pressure"},51 "temperature": {"threshold": 83, "condition": "above_celsius", "action": "alert_thermal_throttle"}52 }53 ```54555. Implementar script de diagnóstico rápido para consultar estado actual de GPUs:56 ```bash57 nvidia-smi --query-gpu=index,name,utilization.gpu,utilization.memory,memory.used,memory.total,temperature.gpu,power.draw \58 --format=csv,noheader,nounits59 ```60616. Configurar correlación entre métricas GPU y métricas de negocio (tiempo de verificación total < 8s) para identificar qué modelo es el cuello de botella.62637. Implementar auto-scaling basado en métricas GPU mediante Kubernetes HPA custom metrics:64 ```yaml65 apiVersion: autoscaling/v266 kind: HorizontalPodAutoscaler67 spec:68 metrics:69 - type: Pods70 pods:71 metric:72 name: DCGM_FI_DEV_GPU_UTIL73 target:74 type: AverageValue75 averageValue: "75"76 ```7778## Notes7980- La monitorización GPU debe ejecutarse con mínimo overhead; DCGM opera a nivel driver y no impacta el rendimiento de inferencia, a diferencia de polling continuo con nvidia-smi.81- Considerar que los modelos del pipeline KYC tienen patrones de uso diferentes: ArcFace tiene picos en face_match, mientras que liveness es más constante. Dashboards separados por modelo facilitan el diagnóstico.82- Las métricas de temperatura son críticas en despliegues on-premise; el thermal throttling puede degradar latencias sin generar errores visibles en los logs de aplicación.