Hardware: choose by the bottleneck
A GPU specification is a set of constraints, not a speed guarantee. Size memory, estimate data movement, then measure the intended workload.
Will it fit?
Account for weights, cache, activations, runtime workspaces, and headroom. Use bytes and units before choosing a device.
What limits it?
Compare arithmetic, HBM bandwidth, capacity, and supported low-precision kernels. Profiles decide which specification matters.
- GPU hardware: workers, shelves, and delivery lanes →
- Rooflines: count work per byte moved →
- Profiling: find the empty spaces first →
Book chapter · How To Scale Your Model · Rooflines ↗
Documentation · NVIDIA · DCGM feature overview ↗
How will devices communicate?
Draw the real node/network topology. Include collective and KV-transfer costs in the estimate.
Documentation · NVIDIA · NCCL collectives ↗
Can it be shared?
Compare full replicas, hardware partitions, adapters, and local CPU/unified-memory execution for the actual workload.
- Multi-tenancy: share the model, isolate the users →
- Offline batches, local models, and heterogeneous fleets →
Documentation · NVIDIA · Multi-Instance GPU user guide ↗
Code + guide · ggml · llama.cpp ↗