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-задачу?
Запустить GPU-сервер