Ускорение инференса VLM в vLLM с PyNvVideoCodec на 8xH100¶
6.0/10
Команды NVIDIA и vLLM интегрировали библиотеку PyNvVideoCodec (версия 2.0.4) для аппаратного декодирования видеопотоков через блоки NVDEC непосредственно на GPU, заменив стандартный CPU-пайплайн OpenCV и FFMPEG. На узлах с 8 ускорителями NVIDIA H100 (схема из 8 независимых реплик vLLM по 1 GPU на инстанс) это устранило узкое место по производительности центрального процессора и более чем удвоило сквозную пропускную способность генерации описаний видео. Оптимизация критически важна для сценариев пакетного инференса мультимодальных моделей (например, Qwen/Qwen3-VL-8B-Instruct) с короткими ответами в 100–200 токенов, где время декодирования кадров ранее доминировало над этапом инференса. Для стабильной высокопараллельной работы требуется запуск демона CUDA MPS и явное резервирование видеопамяти через флаг `--mm-ipc-gpu-memory-gb`.
Технический механизм оптимизации¶
Метод переносит декодирование входных видеофайлов с ядер центрального процессора на специализированные аппаратные блоки NVDEC внутри графических ускорителей через Python-интерфейс PyNvVideoCodec. Для эффективного параллельного доступа нескольких процессов инференса к декодеру и видеопамяти vLLM задействует службу CUDA MPS и механизм межпроцессного взаимодействия (IPC). Выделение фиксированного объема VRAM под буферы декодирования настраивается аргументом `--mm-ipc-gpu-memory-gb`, предотвращая деградацию KV-кэша при масштабировании нагрузки.
Эффект для производительности и затрат¶
Аппаратное декодирование на 8xH100 обеспечивает рост пропускной способности более чем в 2 раза по сравнению с CPU-декодером, полностью ликвидируя насыщение процессора, которое ранее возникало уже на 2–4 GPU. Это устраняет простой тензорных ядер в потоковых пайплайнах разметки видео и существенно сокращает суммарную стоимость обработки сотен миллионов мультимодальных запросов.