@wendell ,
I caught the recent video on the LRLink PCIe bridge with the dual R9700 setup and it got my brain spinning. I’m running 2x R9700s on a Threadripper TRX40 box for local LLM inference and I’ve been digging into whether local training is viable yet on these cards. Short answer: it’s getting there, but multi-GPU training on R9700s has a nasty blocker.
RCCL (AMD’s NCCL equivalent) has a known bug where hipIpcGetMemHandle crashes when two R9700s try to set up peer-to-peer communication through the CPU’s root complex. It’s been sitting in AMD’s triage for about five months now (rccl-tests issue #162). The workaround is NCCL_P2P_DISABLE=1 which forces everything through host-staged copies and roughly halves your inter-GPU bandwidth. It works, but you’re leaving a lot on the table.
Here’s where it gets interesting… The crash happens specifically when RCCL tries to export IPC memory handles through the CPU root complex. But with a LRLink Broadcom bridge, both GPUs sit behind a shared PCIe switch fabric. RCCL does topology detection and differentiates between “same switch” and “separate root complex endpoints.” So the question is: does putting both R9700s behind the bridge change the topology enough that RCCL either takes a different P2P path that doesn’t crash, or succeeds on the IPC path that currently fails through the root complex?
Nobody has tested this. that I could see. I’ve dug through GitHub issues, forums, and Reddit with zero results for anyone trying a PCIe switch as a workaround for this specific bug on RDNA 4.
There’s also a bonus data point that makes this even more interesting. A brand new vLLM issue (#40980, filed a few days ago) shows that TP=2 on dual R9700 actually worked on vLLM v0.14.0 with RCCL 2.27.3 back in December, but deadlocks on v0.19.x with RCCL 2.27.7. So it’s a regression, not a fundamental hardware limitation. Which means there might be multiple angles here.
As far as I can tell, the test is pretty straightforward:
- Install rccl-tests
- Run all_reduce_perf -g 2 in three configs:
- Both GPUs through CPU root complex (normal setup) with NCCL_P2P_DISABLE=1
- Both GPUs behind the LRLink bridge without NCCL_P2P_DISABLE
- Both GPUs behind the LRLink bridge with NCCL_P2P_DISABLE=1
- Compare bandwidth numbers
If the bridge topology lets RCCL’s P2P path succeed where the root complex path crashes, that’s a hardware workaround for a paywall software bug AMD hasn’t fixed in half a year. If it doesn’t work, we’ve at least eliminated the idea and saved everyone else the experiment.
Either way it seems like it’d make for a great video. You’ve literally got all the hardware sitting right there already.
For context, I’m building toward local LoRA training on the R9700s and this P2P bug is the main thing standing between single-GPU training (which works) and being able to use both cards for larger models.
Thanks for the consistently great content. The PCIe lanes are fungible line lives rent-free in my head now.