Конец эпохи GIL: архитектура AIPerf
Инструмент AIPerf стал официальным преемником GenAI-Perf, но представляет собой полный архитектурный перезапуск. В отличие от старых решений, опирающихся на Perf Analyzer и страдающих от ограничений Python GIL (Global Interpreter Lock) при высокой конкурентности, AIPerf использует мультипроцессную архитектуру.
Рабочие процессы генерируют нагрузку, а отдельные сервисы-рекордеры обрабатывают результаты. Вся координация происходит через ZMQ. Это гарантирует, что сам клиент не станет «бутылочным горлышком» при стресс-тестировании сервера, обеспечивая достоверные метрики производительности GPU.
Реалистичность нагрузок: от синтетики до трейсов
AIPerf поддерживает более 15 типов эндпоинтов, включая chat, responses, NIM rankings и генерацию изображений. Для тестирования используются не только синтетические данные, но и публичные датасеты (например, ShareGPT) и форматы воспроизведения трейсов от Mooncake, Baseten и WEKA AgentX.
Ключевая особенность — тонкая настройка паттернов поступления запросов. Инженеры могут моделировать трафик с помощью:
- Постоянного распределения (constant);
- Распределения Пуассона (Poisson);
- Гамма-распределения (gamma) с настраиваемой «взрывностью» (burstiness);
- Синтетических распределений vLLM/SGLang для вариации длины контекста (ISL/OSL).
Ключевые метрики и детализация
Инструмент фокусируется на четырех базовых метриках, предоставляя для каждой разбивку по перцентилям (p25, p50, p75, p90, p95, p99), а также мин/макс, среднее и стандартное отклонение. Это критически важно для выявления проблем с «длинным хвостом» задержек.
| Метрика | Описание | Значение для оптимизации |
|---|---|---|
| TTFT (Time to First Token) | Время от отправки запроса до получения первого токена | Главный индикатор задержки для интерактивных сценариев (UX) |
| ITL (Inter-Token Latency) | Время между генерацией successive токенов | Показывает, насколько эффективно работает фаза декодирования (decode phase) |
| Request Latency | Полное время обработки запроса (prefill + decode) | Общая оценка отзывчивости системы для пользователя |
| Output Token Throughput | Количество сгенерированных токенов в секунду | Ключевой показатель для планирования мощности и емкости кластера |
Практический пример: Qwen3-0.6B и vLLM
В документации NVIDIA приводит пример бенчмарка модели Qwen3-0.6B через сервер vLLM. Для получения воспроизводимых результатов важно правильно настроить флаги:
--synthetic-input-tokens-stddev 0и--output-tokens-stddev 0фиксируют длину запроса (например, 128 токенов), исключая вариативность.--extra-inputs min_tokens:128иignore_eos:trueзаставляют модель генерировать ровно заданное количество токенов, предотвращая преждевременную остановку.- Флаг
--streamingобязателен для корректного измерения TTFT и ITL, так как без него сервер батчирует весь ответ.
Результаты сохраняются в форматах CSV и JSON, а также отображаются в реальном времени через live-dashboard, что позволяет инженерам быстро итерировать конфигурации без переписывания скриптов.
Источник: NVIDIA dev blog ↗
