Skip to navigation

RT-VLM Performance

View as Markdown

Overview

The Real-Time VLM (RTVI-VLM) microservice provides real-time video understanding capabilities using Vision Language Models (VLM) for live RTSP streams and pre-recorded video files, generating captions and detecting incidents. It uses the Cosmos3 Nano Reasoner model served via vLLM.

Video is processed in 10-second chunks: the microservice accumulates 80 frames per chunk at 448×448 resolution, producing 7,840 vision tokens per inference call. Benchmarks cover two operating modes and two output sequence lengths (OSL):

  • Streaming mode — the microservice reads live RTSP streams continuously. Latency is measured from when a chunk is ready until the VLM response is received.
  • File processing mode — pre-recorded video files are processed as fast as possible since all frames are immediately available.

Output sequence length (OSL) determines the use case:

  • OSL = 1 (Alerting) — the VLM outputs a single Yes/No token in response to a binary alert prompt. Lower latency and higher throughput.
  • OSL = 100 (Captioning) — the VLM generates a descriptive caption of the video chunk. Higher output token count leads to longer latency and lower throughput.
RTVI-VLM max concurrent streams per GPU for alerting and captioning use cases
Max concurrent live RTSP streams per GPU. Alerting (OSL=1) consistently supports more concurrent streams than captioning (OSL=100) due to its single-token output. H100 and RTX Pro 6000 SE are the recommended platforms for multi-stream deployments.

Test Configuration

ParameterValue
VSS Release3.2
ModelCosmos3 Nano Reasoner
Model precisionFP8
Inference enginevLLM
Chunk duration10 seconds
Frames per chunk80
Image resolution448×448
Vision tokens per chunk7,840
Input sequence length (ISL)56 text tokens
GPUs testedH100, RTX Pro 6000 SE, DGX Spark, AGX Thor

Performance by GPU

Streaming Mode

Use CaseMax StreamsChunk E2E Avg (s)p90 (s)p95 (s)GPU Core (%)GPU Mem (%)
Alerting (OSL=1)513.64.864.9594.886.8
Captioning (OSL=100)334.786.316.4483.883.9
Use CaseConcurrent StreamsChunk E2E Avg (s)GPU Core Avg (%)
Alerting (OSL=1)10.580.4
Alerting (OSL=1)101.1021.0
Alerting (OSL=1)201.3330.8
Captioning (OSL=100)11.238.2
Captioning (OSL=100)102.2131.2
Captioning (OSL=100)203.7252.2

File Processing Mode

Use CaseVideo LengthE2E Latency (s)
Alerting (OSL=1)10 s0.67
Alerting (OSL=1)10 min18.1
Alerting (OSL=1)60 min108.0
Captioning (OSL=100)10 s1.31
Captioning (OSL=100)10 min22.0
Captioning (OSL=100)60 min131.1
ConcurrencyE2E Latency Avg (s)Throughput (req/s)p90 (s)p95 (s)
10.611.640.740.74
20.603.330.750.75
40.675.970.800.81
80.7211.111.071.14
161.1214.291.751.76
321.5820.252.382.44
ConcurrencyE2E Latency Avg (s)Throughput (req/s)p90 (s)p95 (s)
11.130.881.351.35
21.191.681.431.43
41.253.201.531.54
81.694.731.671.68
161.928.332.332.34
322.6512.083.693.71

All benchmarks use Cosmos3 Nano Reasoner, FP8, vLLM, 10-second chunks, 80 frames per chunk, 448×448 resolution, 7,840 vision tokens, and ISL=56 text tokens. For streaming deployments, plan for 10–15% headroom below the maximum concurrent stream counts. GPU Memory Utilization is not available for DGX Spark and AGX Thor. p90/p95 latency is not available for DGX Spark and AGX Thor in file processing mode.