﻿# Бенчмарк GPU: медиана, разброс и порядок прогонов

Диагностика: Бенчмарк GPU: медиана, разброс и порядок прогонов. Признаки, последовательность проверки, рабочий пример и критерии восстановления.

Автор: Команда Retrivium
Обновлено: 2026-11-01
Канонический URL: https://retrivium.ai/ru/journal/gpu-benchmark-median-dispersion/
Language: ru

Типичную скорость GPU нельзя описывать только лучшим прогоном. Сохраните все попытки, их порядок, медиану и разброс. Сначала определите, что измеряется: GPU kernel, целая операция или end-to-end обслуживание. Разные границы времени дают разные ответы даже на одном устройстве.

## Зафиксируйте единицу прогона

Запишите workload, входы, версию образа, драйвер, состояние кеша и правила warmup. Один прогон должен означать одинаковый объём полезной работы. Если длительность включает загрузку артефактов только в первой попытке, объединять её с устойчивой обработкой без отдельной метки некорректно. Ошибки и незавершённые попытки сохраняйте отдельно от успешных значений. Молчаливое удаление неудач делает результат красивее, но лишает отчёт смысла при оценке реальной повторяемости.


[Официальный источник 1](https://www.itl.nist.gov/div898/handbook/eda/section3/eda351.htm).

## Проверьте способ измерения времени

CUDA операции часто асинхронны относительно CPU. CPU timer вокруг отправки kernel может измерить постановку в очередь, а не завершение работы. NVIDIA описывает корректное использование синхронизации и CUDA events для соответствующих областей. Выберите метод под вопрос и сохраните точки начала/конца. End-to-end измерение клиента также полезно, но включает сеть и подготовку. Его нельзя подписывать как чистую скорость GPU только из-за того, что операция в итоге использует ускоритель.


[Официальный источник 2](https://docs.nvidia.com/cuda/cuda-c-best-practices-guide/index.html).

## Посчитайте условную медиану

Для учебных длительностей 9, 10, 10, 11 и 20 миллисекунд медиана равна 10, среднее — 12. Лучшее значение 9 описывает только один опыт. Выброс 20 требует объяснения или отдельного исследования, а не автоматического удаления. Эти числа синтетические, не benchmark карты. Сохраните последовательность, потому что тот же набор в другом порядке может скрывать постепенный нагрев, влияние соседней нагрузки или различие холодного и повторного старта.

| Поле отчёта | Что сохраняет |
| --- | --- |
| Run ID и порядок | Временную структуру серии |
| Медиана | Центральное значение выбранных прогонов |
| Разброс | Различие между попытками |
| Ошибки | Условия отсутствия полезного результата |

## Сравнивайте одинаковые серии

Для двух конфигураций используйте совпадающие входы и понятный порядок повторений. Чередование или заранее выбранная рандомизация могут уменьшить смешение с дрейфом времени, но сам план следует сохранить. Не меняйте вместе driver, model revision и измеритель. Медиана устойчива к отдельным крайним значениям, однако не описывает хвост задержки полностью. Если важны медленные попытки, показывайте их распределение отдельно, не объявляя медиану достаточным критерием пользовательского опыта.

## Опубликуйте воспроизводимый артефакт

Итог — таблица отдельных прогонов с metadata и ясным способом вычисления сводки. Укажите, сколько было попыток, какие исключены и почему, а также каким workload ограничен вывод. При малом числе повторений избегайте впечатления точности за счёт множества десятичных знаков. Новая серия после изменения среды должна храниться рядом с исходной, а не заменять её. Так отчёт позволяет проверить типичное поведение и спорный прогон без вымышленных сравнений производительности или универсального рейтинга GPU.

Связанные разборы: [inference benchmark method](/ru/journal/inference-benchmark-method/); [rtx 5090 tokens per second](/ru/journal/rtx-5090-tokens-per-second/).
