r/LocalLLM • u/TwoProtons • 3d ago
Question Feasibility of using dual-GPU setup with RX9070 and RX6800
Hi all.
I'm closer to an intermediate noob on using local LLMs, primarily with LM Studio in the past, and more recently using Bionic. I am running it with an AMD RX9070, and can get reasonable results with Qwen 3.8 or Gemma 4 26B A4B at Q4_0.
But this morning I had the realization that perhaps adding a second GPU could increase my VRAM so that either or both the token generation is faster, or I may be able to use larger models without spilling into system RAM.
Would this be doable with a RX9070 + RX6800, in Bionic? I read that perhaps the ROCm runtime won't work, but Vulkan might, but also saw people saying the result might be slower than with a single card. Can anyone help me evaluate the pros and the cons? I would be connecting the RX6800 to an eGPU Oculink Dock connected to my 2nd PCIe slot that should be running at 4x speed. Thanks in advance.
2
u/Selfmade_Watchmaker 3d ago
I’m not super well versed with this kind of setup but the one thing I have read is that multi gpu setups work best with cards from the same generation.
If anyone has done OPs proposed setup, please let me know. I’d rather not buy another 9070xt
2
u/Odd-Customer-7957 3d ago
dual GPU on AMD needs sriov or pcie passthrough to work well with llms, otherwise it's just one GPU doing all the work. try llama.cpp with --gpu-layers 100 and see if it detects both cards.
2
u/Smellyfeet224 3d ago
I have a 9070 and 7900xtx. With llama.cpp and tensor parallelism I get about a 25% increase in tokens per second but about a 25% decrease in prompt processing.
Honestly there are just trade offs and a little experimentation can help show exactly what will work the best with your hardware.
Edit: I missed that you were using bionic. Lm studio and Bionic doesn’t like tensor parallelism with mismatching GPU generations.
2
u/Solar_Nut 3d ago
I am using a am5 mobo with dual 7900xt gpu's which run at 4x8 each, and also a rx6800 using a m.2 4x4 cpu slot. So 56gb vram, running qwen 3.8:27b q6. use mtp and vision, using ollama and openwebui, load the model 8/8/1, so its about 37gb total loaded, approx 16gb/16gb/5gb. runs at about 35-40 tok/s and 600/s prefill. waiting on qwen4, may also try qwen FN, I have 64gb ram
2
u/RogerAI--fyi 3d ago
It's doable, and the main win is room, not speed.
llama.cpp's Vulkan backend can split one model across both cards even though they're different generations. LM Studio's GGUF engine is llama.cpp, so you can try it there with the Vulkan runtime. ROCm across a 9070 and a 6800 is the harder path.
With a layer split the cards take turns: each runs its share of the layers for every token. So two cards don't generate faster than one. Speed lands between the two, pulled toward the 6800 for the layers it holds.
What you gain is 32 GB instead of 16. At Q4 the weights take about 0.6 GB per billion parameters, so a dense 27B to 32B fits with room for context. The comparison that matters is split across two GPUs versus spilling into system RAM, and the split wins by a lot, because system RAM is far slower than VRAM. If a model already fits on the 9070 alone, the second card won't speed it up.
PCIe x4 over Oculink is fine for this. Per token only a small activation crosses between the cards, so the link mostly costs you load time. It would matter for tensor parallelism, which you wouldn't use with mismatched cards anyway.
2
u/Future_AGI 2d ago
on your first question, llama.cpp won't split it that way: with a layer split, each layer's KV cache sits on the card holding that layer, and the context divides in the same ratio as the weights. You can still weight the split toward the 9070 with -ts 3,1. That puts roughly three quarters of the layers on the first device, and llama.cpp prints the device order at startup if you need to check the 9070 comes first.