Skip to content

[Performance] TP prefill significantly slower than autosplit on 2x RTX 3080 (sm_86) #295

Description

@sorasoras

Summary

Tensor parallelism (TP) across 2× RTX 3080 makes prefill (prompt processing) dramatically slower than autosplit (layer split) on the same hardware, while consuming less total power.

Environment

GPU 2× NVIDIA RTX 3080 20 GB (Ampere, sm_86), PCIe — no NVLink
OS Windows 10/11 x64
Python 3.12
torch 2.9.0+cu128
exllamav3 1.4.2 (prebuilt exllamav3-1.4.2+cu128.torch2.9.0-cp312-cp312-win_amd64.whl)
Model Qwen3.8-27B EXL3 3.50bpw
Host tabbyAPI

Observation

Same ~107k-token prompt:

  • Autosplit (gpu_split_auto: true, tensor_parallel: false): prefill completed in ~3.5 min at ~513 T/s (107,253 tokens). GPU 0 ~300 W, GPU 1 ~70 W (total ~370 W).
  • Tensor parallel (tensor_parallel: true, tensor_parallel_backend: native): prefill was still running after 7+ minutes for the same prompt — I had to abort it. GPU 0 ~150 W, GPU 1 ~150 W (total ~300 W).

Power / utilization

Autosplit drives GPU 0 to ~300 W (GPU 1 ~70 W, ~370 W total) and is faster, while TP spreads the load evenly at ~150 W per GPU (~300 W total) and is much slower. TP uses less total power for less throughput — the signature of inter-GPU communication (PCIe all-reduce, no NVLink on 3080) dominating over compute, so the second GPU isn't adding proportional throughput.

Expected

TP prefill should be comparable to (or faster than) autosplit, not dramatically slower.

Notes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions