A vLLM az NVIDIA GPU-k videodekódolásával gyorsítja a feliratozást

A vLLM támogatást adott az NVIDIA GPU-k hardveres videodekódolásához, hogy a videófeliratozási és címkézési feladatok több GPU-s rendszereken is nagyobb áteresztőképességgel fussanak. A PyNvVideoCodec integrációja a CPU-ról az NVIDIA videodekódereire helyezi át a videók feldolgozását.
- A vLLM integrálta az NVIDIA hardveres videodekódolását a PyNvVideoCodecen keresztül.
- A dekódolási feladat a CPU-ról az NVIDIA GPU-k NVDEC hardverére kerülhet.
- Nyolc H100 GPU mellett több mint kétszeres áteresztőképességet mértek a CPU-alapú dekóderhez képest.
- A támogatás a standard CUDA vLLM-kiadásokban már elérhető.
- A videódekódoláshoz külön VRAM-ot kell fenntartani.
A CPU helyett a GPU dekódolja a videót
A vLLM szeptember 18-i bejelentése szerint a videófeliratozási feladatoknál korábban a videók képkockáinak előállítása CPU-alapú OpenCV és FFMPEG háttéren keresztül történt. Több GPU használatakor, amikor minden GPU-hoz külön vLLM-szerver tartozik, a CPU-nak a modell következtetési munkája előtt kellett dekódolnia a videókat.
Ez különösen azoknál a feladatoknál jelentett szűk keresztmetszetet, amelyeknél a modell kimenete rövid, jellemzően 100 és 200 token közötti. Ilyenkor a videó dekódolására fordított idő arányaiban nagyobb, a CPU-magok pedig már két vagy négy GPU mellett is teljes terhelésre kerülhetnek.
A vLLM a PyNvVideoCodec nevű, Python-alapú interfészt integrálta. Ez az NVIDIA hardveres videodekódereit, más néven az NVDEC-et teszi elérhetővé, így a dekódolási feladat a CPU helyett a GPU-k erre szolgáló hardverére kerülhet.
Akár nyolc GPU mellett is javulhat a skálázás
A vLLM szerint a változtatás megszünteti a korábbi CPU-s korlátot, és akár nyolc GPU használatakor is lehetővé teszi a hatékony skálázást. A bemutatott H100-as mérésben nyolc GPU mellett a GPU-alapú videódekódolás több mint kétszeres áteresztőképességet ért el a CPU-alapú dekóderhez képest. A mérés nyolc vLLM-replikát használt, replikánként egy GPU-val.
A projekt példaként az NVIDIA autonóm járművekkel foglalkozó szervezeteiben használt videófeliratozást említi. Ezek a rendszerek több százezer órányi videoklipet dolgoznak fel, összesen több százmillió videófeliratozási kéréssel. A feladatokhoz gyakran könnyebb modelleket használnak, például a Qwen/Qwen3-VL-8B-Instruct modellt.
Egy ilyen rendszer egy fedélzeti kamera felvételéről leírhatja a vezetési környezetet, az úton közlekedőket, a forgalomirányító eszközöket és a jármű mozgását. A vLLM által bemutatott példa szerint a modell a többsávos városi utat, az előttük haladó járműveket, a jelzőlámpás kereszteződést, valamint a lassítást és a követési távolság megtartását írja le.
Beállítás és korlátok
A PyNvVideoCodec támogatása a vLLM standard CUDA-kiadásaiban már megtalálható. Egyedi vLLM-telepítés esetén a projektnek a PyNvVideoCodec 2.0.4-es PyPI-függőséget kell tartalmaznia. A használathoz a vLLM dokumentációjában megadott videó-háttér aktiválható, a példában a Qwen/Qwen3-VL-8B-Instruct modell szolgálásával.
A vLLM többprocesszoros, nagy egyidejűségű feldolgozáshoz a CUDA MPS démon elindítását ajánlja. A több GPU-s felállásnál jellemzően minden vLLM-szerverreplikát külön konténerben, egyetlen GPU-val futtatnak, a kéréseket pedig fordított proxy osztja szét a replikák között. Alternatívaként a CUDA_VISIBLE_DEVICES változóval is egyetlen GPU tehető elérhetővé az egyes replikák számára.
A hardveres dekódoláshoz videómemóriát kell fenntartani. Ha egy felhasználási mód már a teljes VRAM-ot a KV-gyorsítótár számára használja, ez hatással lehet a teljesítményre. A vLLM közlése szerint a tesztelés során nem láttak olyan esetet, amikor a PyNvVideoCodec használata teljesítményromlást okozott.
A fejlesztés a nagy mennyiségű videófeliratozást végző felhasználók számára a CPU-terhelés csökkentését és a több GPU-s feldolgozás jobb kihasználását kínálja. A vLLM eredményei alapján a legnagyobb előny azoknál a rendszereknél várható, ahol a rövid modellkimenetek miatt korábban maga a videódekódolás korlátozta az áteresztőképességet.


