05 · Observability5.1 · Метрики5.1.3средний

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.92 for 10m → risk OOM.

  • Alert: DCGM_FI_DEV_XID_ERRORS increase → 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.

Официальные материалы