Performance Results#

This page reports representative throughput for the Synthetic Video Detector NIM across GPUs, resolutions, and concurrency levels.

Performance Data#

The following data shows the performance of the NVIDIA Synthetic Video Detector (SVD) NIM for concurrent streams on a single GPU with the provided sample input files and the Python client. All measurements use a 30 FPS source clip at three input resolutions.

Label

Resolution

720p

1280 x 720

1080p

1920 x 1080

4K (UHD)

3840 x 2160

The SVD NIM supports concurrent streams per GPU. The number of concurrent streams can be configured using the NV_AI4M_MAX_CONCURRENCY_PER_GPU environment variable (default: 4). The total number of concurrent streams the server supports is the number of GPUs multiplied by NV_AI4M_MAX_CONCURRENCY_PER_GPU. Higher concurrency values consume more GPU memory and reduce the per-stream frame rate.

Note

These figures are representative benchmarks provided as a baseline for capacity planning, not guaranteed performance targets. Measured throughput varies with hardware configuration, driver and software versions, input characteristics (resolution, frame rate, and scene content), and concurrent workload on the GPU.

Live Stream Throughput Capacity (30 FPS)#

The following chart shows each GPU’s peak aggregate throughput expressed as an equivalent number of 30 FPS live streams (peak aggregate throughput divided by 30 FPS). Use this metric to size a deployment for an expected processing workload.

Synthetic Video Detector live stream throughput capacity by GPU and input resolution

Equivalent 30 FPS live streams a single GPU sustains, by input resolution (720p / 1080p / 4K).#

Note

This is a capacity figure, not a guaranteed count of simultaneous live streams; it is most relevant to offline and batch processing. Sustaining N live streams concurrently additionally requires the per-stream throughput at concurrency N to stay at or above 30 FPS. Refer to Aggregate throughput and Per-stream throughput.

The following table expresses that capacity as a whole number of live streams: the equivalent 30 FPS streams from the chart above.

GPU

720p 30 fps

1080p 30 fps

4K 30 fps

B200

12

12

11

H200

9

9

9

H100

9

9

8

RTX PRO 6000 Blackwell Workstation Edition

6

6

6

RTX PRO 6000 Blackwell Server Edition

6

6

6

RTX 5090

6

6

5

RTX 4090

4

4

4

A100

4

4

3

L40S

3

3

3

RTX 5080

3

3

3

H20

3

3

3

RTX 6000 Ada

3

3

2

RTX PRO 4500 Blackwell Server Edition

2

2

2

L20

2

2

2

A10G

1

1

1

L4

1

1

1

Live stream throughput also assumes the input arrives at least as fast as the NIM processes it. A client uploading over a slow link is bounded by the link rather than by the GPU.

Aggregate Throughput#

The following charts show the aggregate throughput — the total FPS processed across all concurrent streams — at each concurrency level (c1, c2, c4, c8) for each supported GPU, at each input resolution.

Aggregate throughput rises with concurrency until the GPU saturates, after which additional concurrency mainly divides the same total throughput into more, smaller per-stream shares rather than adding capacity. The largest GPUs gain the most from concurrency — on B200 at 720p, aggregate throughput rises from 265 FPS at c1 to 373 FPS at c8 — while on entry-tier GPUs a single stream already occupies the device and the curve is flat from c1. Most GPUs reach their plateau by c2, so the default concurrency of 4 captures nearly all available throughput. Resolution has only a small effect, so the NIM is bound more by the model than by pixel count.

Per-Stream Throughput#

The following charts show the per-stream throughput — the average FPS that each individual stream receives — at each concurrency level for each supported GPU, at each input resolution. Use them to choose a concurrency level that keeps every stream at or above the frame rate your application requires — 30 FPS for live streams.

The dashed line marks the 30 FPS source rate: where a GPU’s curve crosses below it, that concurrency level can no longer sustain live 30 FPS streams. Per-stream throughput falls close to the 1/n trend once the GPU is saturated, because aggregate throughput is nearly flat across higher concurrency levels.

The inference FPS is calculated by dividing the total number of frames processed by the total inference time in seconds (measured from the time the request is sent until the complete output is received by the client). The per-stream value at concurrency n is the aggregate throughput across all n concurrent streams divided by n.

For more information, refer to the NIM clients GitHub repository: NVIDIA-Maxine/nim-clients.