5.1.3 · блок 5
GPU и ML runtime метрики
GPU и ML runtime метрики
Зачем это нужно
Inference на GPU — дорого и узко. CPU at 40% при GPU OOM или queue depth 500 — разные проблемы. GPU metrics (NVIDIA DCGM) и ML runtime (TorchServe, Triton, custom batching) дают USE-сигналы для capacity planning и incident response.
Без GPU observability команда либо переплачивает за простаивающие карты, либо ловит timeout при скрытой saturation.
Основные идеи
NVIDIA DCGM (Data Center GPU Manager).
- Exporter
dcgm-exporterв DaemonSet на GPU nodes. - Метрики в Prometheus format.
Ключевые DCGM метрики.
| Метрика | Смысл |
|---------|--------|
| `DCGM_FI_DEV_GPU_UTIL` | SM utilization % |
| `DCGM_FI_DEV_MEM_COPY_UTIL` | Memory interface busy |
| `DCGM_FI_DEV_FB_USED / FREE` | GPU memory |
| `DCGM_FI_DEV_POWER_USAGE` | Watts — thermal/power cap |
| `DCGM_FI_DEV_XID_ERRORS` | Hardware/driver errors |
| `DCGM_FI_DEV_GPU_TEMP` | Throttling risk |
Utilization vs memory. GPU util 30% но memory 95% — large model, small batch; util 95% memory 50% — compute bound, можно batching.
MIG (Multi-Instance GPU). На A100/H100 — fractional GPU; labels gpu, GPU_I_ID для instance-level dashboards.
ML runtime metrics (application level).
Beyond DCGM, serving framework exposes:
- Queue depth — requests waiting for batch.
- Batch size — actual dynamic batching.
- Inference time — forward pass only (vs total RED duration).
- Model load time — cold start for readiness tuning.
Examples: Triton nv_inference_queue_duration_us, TorchServe custom counters.
Kubernetes + GPU.
resources.limits.nvidia.com/gpu: 1— scheduling.- HPA on CPU не работает для GPU-bound — custom metrics: queue length, GPU util (via Prometheus adapter).
- Device plugin failures — pods Pending; monitor kubelet logs.
Train vs inference.
- Train (Argo WF): track GPU util over job; low util → data loader bottleneck.
- Inference: track p95 vs batch size tradeoff.
Cost observability. GPU-seconds per model version × tariff — FinOps dashboard (advanced); DCGM power × time proxy.
Как это выглядит на практике
Grafana row «GPU — churn-serving nodes»:
- Heatmap GPU util by pod over 24h.
- Alert:
DCGM_FI_DEV_FB_USED / (USED+FREE) > 0.92for 10m → risk OOM. - Alert:
DCGM_FI_DEV_XID_ERRORSincrease → cordon node, drain.
Inference deployment:
resources:
limits:
nvidia.com/gpu: 1
readinessProbe:
httpGet:
path: /v1/models/churn/ready
port: 8080
initialDelaySeconds: 60 # model load on GPU
Compare dashboards:
- RED p95 spike + GPU util low → problem outside GPU (network, feature store).
- RED p95 spike + queue depth high + GPU util 99% → need more replicas or bigger batch timeout tuning.
Nightly train Workflow: post-job report average GPU util; if < 40%, increase num_workers in DataLoader.
Что сделать после занятия
- [ ] Список 5 DCGM метрик, которые вы бы добавили на dashboard inference.
- [ ] Объясните разницу между высоким GPU memory и высоким GPU util.
- [ ] Проверьте readiness probe: учитывает ли время загрузки модели на GPU.