All essays
TechnicalTECHNICAL DEEP DIVEMAY 4, 2026

When Tensor Parallelism Makes a Small Model Slower

Tensor parallelism reduces per-GPU model work but adds collectives. Compare sharded and replicated serving with latency and goodput, not intuition.

01

Sharding exchanges local work for communication

Tensor parallelism splits matrix operations across GPUs and combines partial results with collectives. It is indispensable when one device cannot hold the model or when a large workload gains enough parallel compute to pay for communication. For a small model at batch one, each GPU receives less arithmetic while collective launch, synchronization, and data movement remain. The sharded replica can therefore return a token more slowly than one complete replica on one GPU.

The important comparison is not one GPU versus two GPUs in isolation. With two GPUs, the deployment choice may be one two-way sharded replica or two independent one-GPU replicas behind a router. The first offers one queue and distributes model state across two device memories, but it does not create one general-purpose pooled address space. The second offers two queues and process-level isolation, and can process two requests without tensor-parallel collectives. A shared host, switch, or power domain can still fail both replicas, and the model must fit on each device.

Normalize results by the same GPU count and service constraint. Comparing a two-GPU shard with one single-GPU replica gives the shard twice the hardware and leaves the alternative's second GPU idle. Also hold admission limits constant or explain them. A candidate that accepts more long sequences may show worse latency because it is doing more useful work, not because its kernels are intrinsically slower.

02

Low batch size exposes synchronization overhead

Autoregressive decode performs a sequence of small steps. Tensor-parallel transformer layers commonly require collective communication after sharded computations, so ranks must rendezvous repeatedly. At low batch size the local matrix multiplications may be too small to use the GPU efficiently, leaving limited computation with which to overlap communication. One slow rank or a topology detour can delay the whole replica.

Prefill can behave differently because a long prompt creates larger matrix operations. A two-way shard might improve prefill for long contexts while worsening decode latency for short interactive responses. Report TTFT and inter-token or time-per-output-token metrics separately. A single end-to-end number blends phases and can hide an unpleasant streaming experience behind a faster prefill.

The crossover is workload-specific. Sweep batch size and prompt length rather than testing only the smallest and largest cases. For each point, record local kernel time, collective time, and idle gaps on every rank. The useful boundary is where saved compute consistently exceeds added communication and synchronization while the service objective still passes, not where aggregate device utilization first rises.

03

Confirm the collective path before benchmarking

Inspect the physical and logical topology: peer-to-peer capability, PCIe switches, high-speed GPU links, NUMA placement, and the collective library's selected route. NVIDIA NCCL documentation describes collectives such as all-reduce and supports topology-aware communication, but a configuration flag does not guarantee a desired physical path. Capture NCCL diagnostics and verify that the ranks use the expected devices.

Keep process placement and CPU affinity consistent between candidates. Cross-socket control threads or a busy host can add jitter that appears to be GPU scaling failure. Also validate numerical settings, quantization, graph capture, and maximum batch limits. A sharded engine rebuilt with different tactics is not a clean parallelism comparison unless those differences are intentional and reported.

Run a small collective microbenchmark as a topology check, but do not use its bandwidth as the serving result. Message sizes and synchronization cadence inside the model can differ from a large-buffer all-reduce test. If the microbenchmark regresses, fix the fabric or placement before blaming tensor parallelism. If it passes while serving stalls, profile the model's actual collective sizes and their position between kernels.

04

Run a replica-versus-shard experiment

Build candidate A as two one-GPU replicas and candidate B as one two-GPU tensor-parallel replica. Use the same model artifacts, tokenizer, precision, request corpus, warmup, and offered-arrival trace. Route requests fairly to the replicas. Measure per-request TTFT, time per output token, end-to-end latency, completed throughput, goodput, errors, power if available, and memory headroom. Repeat at low load and through saturation.

Consider an illustrative ten-minute test. The replicated deployment completes 7,200 qualifying requests, so goodput is 7,200 / 600 = 12 requests per second. The sharded deployment completes 5,400 qualifying requests, or 9 requests per second, while using the same two GPUs. Replication provides 12 / 9 = 1.33 times the qualifying request rate in this hypothetical scenario. These numbers are illustrative, not claimed measurements, and actual results depend on model, hardware, interconnect, and traffic.

Check balance as well as totals. With two replicas, publish each replica's admitted requests, active tokens, and tail latency. A router that sends one long request and several short requests unevenly can make replication appear unstable. For the sharded candidate, publish per-rank timing because the fastest rank cannot advance alone. Repeat with the same arrival trace and report trial dispersion.

05

Use a decision rule tied to service objectives

Prefer replication when the model fits with required KV-cache headroom on one GPU and two replicas deliver higher goodput at the required tail latency. Prefer tensor parallelism when single-device fit fails, when long-prefill or high-batch measurements show a material service-level gain, or when a single request must use more memory bandwidth or compute than one device supplies. Do not choose by aggregate tokens per second alone.

A measurable gate could require the sharded candidate to improve p95 TTFT or goodput by at least 10 percent without worsening p95 time per output token, while preserving the same error and memory-reserve policies. Ten percent is an illustrative engineering threshold, not a universal constant. If results fall inside run-to-run variance, choose the simpler replicated topology and retest with more samples rather than declaring a win.

06

Diagnose regressions from outside inward

First verify equal offered traffic and request lengths. Second compare queue time; replication may win because it has two schedulers. Third separate prefill from decode. Fourth inspect per-rank utilization and collective duration. Fifth validate topology and rank placement. Sixth sweep batch size and prompt bands. If collective share rises while local kernels shrink, communication is the likely mechanism. If queueing dominates, scheduling architecture may be the larger cause.

Replication is not automatically superior. It duplicates weights, divides KV capacity, and can produce load imbalance when requests have variable lengths. Tensor parallelism can be required simply to fit the model. Failover behavior also differs because loss of one rank invalidates a sharded replica. Match capacity to the measured deployment: ClusterBid can help compare suitable GPU configurations, but the deciding evidence should be goodput from the actual model and traffic distribution.

ConditionLikely candidateVerify with
Model fits comfortably per GPU, low batchOne replica per GPUTail latency and aggregate goodput
Model does not fit one GPUTensor-parallel replicaMemory high-water and stability
Long prefill dominatesMeasure bothTTFT by prompt-length band
Interactive decode dominatesReplication often deserves first testTime per output token and collective traces
Filed under
tensor parallelismNCCLinferencelatencyGPU serving