Vector Search GPU Requirements Estimator

This estimator approximates how many GPUs are needed for a GPU-accelerated vector-search workload. It compares index-memory demand with query-throughput demand, then selects the larger requirement. Inputs cover vector count, dimensions, bytes per dimension, index overhead, available GPU memory, expected queries per second, and benchmarked throughput per GPU.

The tool is most useful during early architecture comparisons between exact and approximate search layouts or between different accelerator sizes. It assumes the searchable index is resident in GPU memory and uses a simple overhead multiplier for graph structures, metadata, temporary buffers, and fragmentation. Real implementations may shard vectors, replicate indexes for availability, keep part of the index on CPU, or use compression. Those choices should be reflected in measured memory and throughput inputs before final procurement.

Inputs

vectors
dims
bytes
%
GB
qps
qps
Result
Estimated vector-search GPU count
Estimated resident index size
GPUs required by memory
GPUs required by throughput
Aggregate modeled throughput

1. Enter vector population
Use the number of vectors expected in the active index, including planned near-term growth if appropriate.

2. Describe vector storage
Enter dimensions and bytes per dimension after the selected precision or quantization.

3. Add index overhead
Allow for graph links, IDs, metadata, workspaces, allocator fragmentation, and serving runtime.

4. Enter GPU capacity and benchmark
Use usable memory and measured queries per second for the intended index and search parameters.

5. Compare constraints
The displayed count is driven by whichever is larger: resident memory or target throughput.

Raw vector bytes = vectors × dimensions × bytes per dimension Resident index size = raw vector bytes × (1 + overhead percentage) GPUs by memory = resident index size / usable GPU memory GPUs by throughput = target QPS / benchmarked QPS per GPU Estimated GPUs = ceiling(max(memory GPUs, throughput GPUs))

Decimal gigabytes are used: 1 GB = 1,000,000,000 bytes. Replication for resilience is not included unless you increase the vector count or GPU requirement separately.

What the result means

The result is the whole GPU count required by the tighter of index-residency and query-throughput constraints.

Inter-GPU communication, shard imbalance, updates, and failover capacity can increase the practical requirement.

Given: 50 million vectors, 1,536 dimensions, 2 bytes per dimension, 35% overhead, 72 GB usable memory per GPU, 1,200 target QPS, and 500 QPS per GPU.

Calculation: Raw storage = 50,000,000 × 1,536 × 2 = 153.6 GB. Resident index = 153.6 × 1.35 = 207.36 GB. GPUs by memory = 207.36 / 72 = 2.88, rounded up to 3. GPUs by throughput = 1,200 / 500 = 2.4, rounded up to 3.

Result: The estimate is 3 GPUs, providing 216 GB of modeled usable memory and 1,500 QPS of benchmarked aggregate throughput.

How do I choose bytes per dimension?

Use the stored representation: 4 bytes for FP32, 2 for FP16, 1 for int8, or an effective value for packed quantization. Include codebooks or auxiliary structures in overhead.

What should index overhead include?

Include graph or inverted-index structures, IDs, metadata, temporary search buffers, runtime allocations, and fragmentation. Measure the resident footprint when possible.

Can an index larger than GPU memory still run?

Some systems support CPU-GPU hybrid search or paging, but latency and throughput may change significantly. This calculator assumes the modeled resident index is held in GPU memory.

Why use benchmarked QPS instead of a theoretical GPU rating?

Vector-search performance depends heavily on index type, recall target, dimensions, top-k, filters, and batch size. A workload benchmark is more informative than peak hardware specifications.

Does the result include replicas for availability?

No. Add devices for replication, failover, rolling upgrades, or regional redundancy according to your reliability design.