vLLM enforce eager: проверить сбой компиляции и CUDA graphs
На странице · 3 разделов
Флаг --enforce-eager в vLLM v0.32.0 отключает и компиляцию torch.compile, и CUDA graphs — оптимизацию выполнения на видеокарте. Используйте его как временный диагностический тест на своей модели: сравните запуск и короткий ответ с флагом и без него. Успех в одном режиме лишь сужает поиск причины, а не доказывает неисправность CUDA graphs или гарантирует прежнюю скорость.
Сервер vLLM не запускается рядом с ошибкой компиляции или выполнения на видеокарте? Флаг --enforce-eager помогает проверить гипотезу, временно отключив сразу два ускорения: torch.compile (подготовка оптимизированного кода) и CUDA graphs (повторное выполнение зафиксированных операций на NVIDIA GPU). Это инженерная диагностика, не домашний рецепт установки и не универсальное лечение ошибки. s1 s2
Статус: инструкция сверена с документацией vLLM v0.32.0; редакция не запускала сервер, видеокарту и модель. Вам нужны Linux, установленный vLLM v0.32.0, совместимая NVIDIA GPU, терминал и модель, которая уже запускается или даёт исследуемую ошибку. Документ об установке описывает совместимые платформы; необходимую память именно для вашей модели нельзя узнать по размеру файла. Первая загрузка модели требует сети; пример API обращается к 127.0.0.1 на вашем компьютере. s3 s4 s5
Что меняет флаг и когда его пробовать?
В версии v0.32.0 --enforce-eager по умолчанию выключен. При включении он отключает и torch.compile, и CUDA graphs; обычный режим использует комбинацию оптимизаций и непосредственного выполнения. Поэтому если ошибка исчезла, нельзя по одному этому опыту сказать, какой из двух механизмов был причиной. Не оставляйте флаг как постоянный «ускоритель»: изменение скорости нужно измерить на собственной нагрузке. s1 s2
Этот тест уместен, когда у вас уже есть конкретный сбой при запуске или запросе и сохранены версия, сообщение об ошибке и условия. Если проблема в недоступном файле модели, неподдерживаемом устройстве или нехватке памяти, флаг не даёт гарантии исправления. Общие шаги установки и выбора модели находятся в базовом гайде vLLM. s1 s3
Как сравнить два запуска на одной модели?
На своём Linux-стенде откройте терминал с установленным vLLM. Учебная модель — Qwen/Qwen3-0.6B на закреплённой ревизии; наличие репозитория не гарантирует, что она поместится в ваше устройство. Сначала зафиксируйте результат обычного запуска: vllm serve Qwen/Qwen3-0.6B --revision c1899de289a04d12100db370d81485cdf75e47ca --host 127.0.0.1 --port 8000. Запишите сообщение об ошибке или дождитесь готовности сервера. Остановите этот процесс перед следующим запуском, иначе порт будет занят. Не публикуйте приватные пути и токены из журналов. s1 s4
Теперь в том же окружении повторите команду, добавив только один флаг: vllm serve Qwen/Qwen3-0.6B --revision c1899de289a04d12100db370d81485cdf75e47ca --host 127.0.0.1 --port 8000 --enforce-eager. Если сервер готов, в другом терминале отправьте собственный короткий учебный запрос: curl --fail-with-body -sS 'http://127.0.0.1:8000/v1/chat/completions' -H 'Content-Type: application/json' -d '{"model":"Qwen/Qwen3-0.6B","messages":[{"role":"user","content":"Назови один овощ."}],"max_tokens":64}'. Ожидайте JSON с полем choices, но конкретный ответ модели не предсказан. Если обычный режим тоже запустился, отправьте ему тот же запрос после отдельного перезапуска. Путь к API и формат запроса даны в Quickstart. s1 s4 s5
Как понять результат без ложного вывода?
Если обычный запуск падает, а режим с флагом даёт ответ, диагностика сужает область поиска, но не доказывает ошибку именно CUDA graphs: одновременно выключена компиляция. В документации есть отдельные проверки -cc.mode=0 (только компиляция) и -cc.cudagraph_mode=NONE (только CUDA graphs) для подготовленного инженера; не меняйте сразу несколько параметров и не объявляйте причину до изоляции. Если оба запуска падают, сохраните обе ошибки и проверьте установку, модель и доступные ресурсы отдельно. s1 s2 s3
Проверка результата: признак работы здесь — успешный HTTP-ответ и наличие choices в JSON на вашем стенде, не просто открытый порт или запись о модели. Сравните ответ с собственным заданием. Когда оба режима работают, измерьте задержку на своих запросах и верните обычный режим, если он подходит; одна учебная реплика не измеряет скорость под нагрузкой. Редакция проверила документацию и форму команд, но не получила ответ модели. s1 s2 s5
Источники
- vLLM v0.32.0: CLI serve, параметр enforce-eager — revision v0.32.0; Default False; отключение torch.compile и CUDA graphs; снимок и SHA в research/raw/2026-11-01/seo/vllm-enforce-eager/.. Получено 01.11.2026.
- vLLM v0.32.0: How to debug the vLLM-torch.compile integration — revision v0.32.0; Флаг для полной диагностики и отдельные настройки -cc.mode=0 и -cc.cudagraph_mode=NONE.. Получено 01.11.2026.
- vLLM v0.32.0: поддерживаемая установка на GPU — revision v0.32.0; Требования платформы сверяются отдельно; размер файла весов не превращается в VRAM.. Получено 01.11.2026.
- Qwen/Qwen3-0.6B: точная ревизия учебной модели — revision c1899de289a04d12100db370d81485cdf75e47ca; HF API подтвердил SHA этой модели; не является тестом совместимости с железом.. Получено 01.11.2026.
- vLLM v0.32.0: Quickstart, локальный chat completions API — revision v0.32.0; Схема локального API и поля запроса; реальные ответы модели редакцией не получены.. Получено 01.11.2026.