PCIe lanes, bifurcation and risers for multi-GPU builds

How many PCIe lanes a multi-GPU inference box needs, how boards wire their slots, and which risers and cable adapters keep a Gen4 link clean.

Two GPUs fit on a good desktop board. Past two, the questions change: how many lanes the CPU has, how the board wires them to its slots, how a three-slot card reaches a slot it would otherwise cover, and whether a Gen4 link survives the trip. For llama.cpp inference the lane count matters less than most builders expect. Slot wiring, spacing and signal integrity matter more.

What a lane buys you

Wikipedia’s PCI Express table gives the usable rate per lane, per direction: about 0.985 GB/s at Gen3, 1.969 GB/s at Gen4 and 3.938 GB/s at Gen5. A x16 link at Gen4 moves about 31.5 GB/s; x8 at Gen4 is about 15.75 GB/s, the same as x16 at Gen3; x4 at Gen4, what an OCuLink adapter gives a card, is about 7.9 GB/s, and about 3.9 GB/s at Gen3.

The link runs at the lower of what the card and the slot support. The RTX 3090 is a PCIe 4.0 card, so a Gen5 slot gives it Gen4. On a used card, read the link generation and width under load as part of the used RTX 3090 checklist.

CPU lanes and slot wiring

The CPU sets the total; the board decides where the lanes go.

The Catalog’s motherboard table lists each board’s maximum GPU count and the lanes each GPU gets at that count, taken from the manuals.

Bifurcation

Bifurcation splits one physical x16 slot into two x8 links or four x4 links, each of which can feed a GPU through an adapter. The board’s BIOS has to offer it for that slot; Supermicro’s H12SSL manual covers the setting (PDF page 72). techpractice used it on a Supermicro H12SSL-I-O, with risers that “split x16 slots into 2x x8, allowing more GPUs without losing much performance”, and names “up to 7x with bifurcation” as that build’s upgrade path.

You need bifurcation only when you have more GPUs than slots. Four cards on the ROMED8-2T’s seven x16 slots need none. The SlimSAS host card below does need it: it turns one x16 slot into two x8 ports, so the slot must be set to x8x8.

Slot spacing and three-slot cards

The Founders Edition RTX 3090 is three slots wide. Seated directly, it covers the next two slot positions.

Riser types in the Catalog

Gen4 signal margin and the Gen3 fallback

Every connector and every centimetre of cable takes margin away from a Gen4 link, and a riser has less than a card seated in its slot. Use the shortest riser that reaches, keep ribbons flat and away from PSU cables, and don’t fold them tightly. The Lian Li riser is twice the Thermaltake’s length, so it has less margin again.

Know what failure looks like. A card that drops off the bus, fails to show up, or makes Linux log PCIe Bus Error lines is the sign. The kernel’s AER documentation describes those reports: correctable errors are logged as warnings, the rest as errors. nvidia-smi -q shows each card’s current link generation and width; read them under load, because the link can drop to a lower speed at idle.

The fix is to force the slot to Gen3 in the BIOS. The ROMED8-2T has a per-slot link-speed setting for each of its seven slots (manual PDF page 58). Gen3 halves the per-lane rate, which, for the reason below, costs layer-split inference very little.

Slot power through a riser

A x16 card may draw up to 75 W from its slot, 66 W of it at 12 V, per Wikipedia’s slot-power figures. With a plain ribbon riser that power still comes from the board, so from whichever PSU feeds the board. That matters in a dual-PSU build: a card whose 8-pin cables hang off the second PSU still takes its slot power from the first. The 10Gtek slot adapter has its own 6-pin power input for the slot; feed it from the same PSU as the card it carries. The level1techs thread on the ROMED8-2T with four 3090s is about exactly this back-feed risk; the PSU sizing guide covers the rules.

Why lane count matters little for llama.cpp

llama.cpp’s default split mode, layer, puts whole layers on each card and runs them in turn. Between cards, only the hidden state crosses: for Llama 3.3 70B that is 8,192 values per token, about 16 KB at 16-bit or 32 KB at 32-bit. At Gen3 x4, the slowest link above, 16 KB takes about 4 µs and 32 KB about 8 µs. For scale, jonready measured 63 tokens/s single-stream for a 27B model on two 3090s under vLLM, about 16 ms a token, and a 70B model is slower than that. Prompt processing moves more at once, but still little: an 8,192-token prompt is about 134 MB of hidden state per card boundary at 16-bit, about 8.5 ms at Gen4 x8 and about 34 ms at Gen3 x4. At 32-bit it is about 268 MB: about 17 ms at Gen4 x8 and about 68 ms at Gen3 x4.

Where lanes do show:

So for a llama.cpp box, put the effort into slots that seat cleanly, risers that hold Gen4 or a deliberate Gen3, and power; a x4 link for a fifth card is a reasonable trade. For vLLM, count lanes.

Parts in this guide

Store links may earn us a commission at no cost to you. As an Amazon Associate we earn from qualifying purchases.

Related

Sources
  1. https://en.wikipedia.org/wiki/PCI_Express
  2. https://www.amd.com/en/products/processors/desktops/ryzen/9000-series/amd-ryzen-9-9950x.html
  3. https://www.amd.com/content/dam/amd/en/documents/products/epyc/amd-epyc-7002-series-datasheet.pdf
  4. https://download.asrock.com/Manual/X870E%20Taichi.pdf#page=11
  5. https://download.asrock.com/Manual/X870E%20Taichi.pdf#page=38
  6. https://dlcdnets.asus.com/pub/ASUS/mb/SocketAM5/ProArt_X870E-CREATOR_WIFI/C23930_ProArt_X870E-CREATOR_WIFI_EM_WEB.pdf#page=18
  7. https://download.asrock.com/Manual/ROMED8-2T.pdf#page=9
  8. https://download.asrock.com/Manual/ROMED8-2T.pdf#page=14
  9. https://download.asrock.com/Manual/ROMED8-2T.pdf#page=32
  10. https://download.asrock.com/Manual/ROMED8-2T.pdf#page=58
  11. https://www.supermicro.com/manuals/motherboard/EPYC7000/MNL-2314.pdf#page=10
  12. https://www.supermicro.com/manuals/motherboard/EPYC7000/MNL-2314.pdf#page=72
  13. https://techpractice.substack.com/p/building-a-multi-gpu-server-at-low
  14. https://den.dev/blog/deep-learning-rig/
  15. https://hav4ik.github.io/meet-iva-my-dl-rig
  16. https://forum.level1techs.com/t/dual-psu-safety-on-romed8-2t-with-4x-3090/246583
  17. https://jbarrow.ai/2026-05-18-gpu-workstation/
  18. https://jonready.com/blog/posts/local-llm-rig.html
  19. https://thermaltake.com/products/tt-premium-pci-e-4-0-extender-300mm
  20. https://lian-li.com/product/600mm-pci-e-4-0-riser-cable/
  21. https://store.10gtek.com/pcie-to-sff-8654-adapter-for-u-2-nvme-ssd-pcie4-0-x16-2x-8i-sff-8654/p-21070
  22. https://store.10gtek.com/dual-slimsas-8i-to-pcie-x16-slot-adapter-gen4-pcie4-0/p-29335
  23. https://microsatacables.com/slimsas-8-lane-to-slimsas-8-lane-cable-l-50cm-pcie-gen4
  24. https://www.adt.link/product/F99V4.html
  25. https://www.adt.link/product/F9G-BK7.html
  26. https://docs.kernel.org/PCI/pcieaer-howto.html
  27. https://docs.nvidia.com/deploy/nvidia-smi/index.html
  28. https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md
  29. https://huggingface.co/unsloth/Llama-3.3-70B-Instruct/blob/main/config.json
  30. https://huggingface.co/bartowski/Llama-3.3-70B-Instruct-GGUF
  31. https://download.asrock.com/Manual/ROMED8-2T.pdf#page=33
  32. https://docs.vllm.ai/en/latest/serving/parallelism_scaling.html
  33. https://www.nvidia.com/en-us/geforce/graphics-cards/30-series/rtx-3090-3090ti/

Last reviewed