A consumer ASUS X570 motherboard with one CPU-connected x16 slot can run six GPUs by placing a Broadcom PEX88096 PCIe switch in that slot. The setup combines four 32 GB Radeon AI PRO R9700s and two RTX 3090s, each with its own gen4 x8 link to the switch, under Debian with ROCm and CUDA. The switch avoids the board’s chipset-connected x4 slot and allows the four R9700s to exchange data directly: simultaneous copies reached 54.7 GB/s without crossing the roughly 28 GB/s CPU uplink. The build required Above 4G Decoding, Resizable BAR disabled in BIOS, and an initramfs module to assign large 32 GB BAR windows to the R9700s; enabling Resizable BAR for every card prevented booting.
The performance tests show the four R9700s running Qwen3.8-27B at tensor parallelism four, with peer-to-peer transfers enabled. They delivered about 4,700 tokens per second for prompts up to 32k tokens, 3,340 for a 233k prompt, and 601 tokens per second across sixteen concurrent clients; disabling P2P roughly halved concurrent throughput. The 3090 pair ran the model at tensor parallelism two with P2P disabled, reaching about 2,390 tokens per second on prefill and 400 tokens per second across eight decoding streams. The account also details practical complications: Linux BAR sizing, a Radeon low-power-state hang, ACS settings needed for local P2P, and the 3090s’ lack of supported GPU-to-GPU transfers under the stock driver.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.