GPU Hardware

GPU utilization

Процент времени, когда GPU выполнял вычислительную работу; метрика эффективности использования.

Что такое GPU utilization

GPU utilization — процент времени за отчётный период (обычно 1 секунда), в течение которого GPU выполнял хотя бы одно ядро (kernel). Доступен через nvidia-smi и DCGM.

Важно: GPU utilization = 100% не означает, что GPU работает с максимальной эффективностью. GPU может быть занят 100% времени, но с низкой эффективностью ядер (плохой occupancy, memory-bound без достаточной полезной работы).

Диагностика через nvidia-smi

# Мониторинг раз в секунду
watch -n 1 nvidia-smi

# Или непрерывный вывод
nvidia-smi dmon -s u  # utilization

# Подробные метрики
nvidia-smi --query-gpu=utilization.gpu,utilization.memory,memory.used,memory.free \
           --format=csv -l 1

Интерпретация значений

Utilization Ситуация Что делать
<30% GPU простаивает Увеличить batch_size, оптимизировать загрузку данных
30–70% Умеренная нагрузка Норма для некоторых задач
70–90% Хорошая нагрузка Оптимально для большинства задач
>95% Максимальная нагрузка Идеально для обучения

MFU (Model FLOPS Utilization)

Более точная метрика — MFU: отношение реальных FLOPS к пиковому TFLOPS GPU. Измеряет, насколько эффективно используются вычислительные возможности.

# Оценка MFU для обучения трансформера
tps = tokens_per_second  # измеренное значение
model_flops_per_token = 6 * num_params  # приближение
actual_flops = tps * model_flops_per_token
mfu = actual_flops / (gpu_peak_tflops * 1e12)
print(f"MFU: {mfu:.1%}")  # хорошо: 40-50%

Связанные термины

  • GPU — устройство, утилизация которого измеряется
  • VRAM — отдельная метрика: использование памяти
  • batching — увеличивает utilization при инференсе
  • FLOPS — теоретический максимум, от которого считается MFU

Готовы запустить GPU-задачу?

Запустить GPU-сервер