Local AI with Strix Halo & R9700
I was looking for a good way to run local AI for vulnerability research and a while back ended up buying a Geekom A9 Mega (a Strix Halo box with 128GB of unified memory). I preferred this over the DGX Spark at the time since it’s x86, so it also serves as a nice server. Some of the MoE models like Qwen 3.6 35B or Laguna S 2.1 run quite well, but they weren’t really good enough for meaningful research, and dense models like Qwen 3.6 27B were slow on the hardware. Then I came across a few posts from Lucebox where they attached an R9700 (AMD card with 32GB of VRAM and 640 GB/s) to a Strix Halo:
They didn’t just attach the GPU and use it separately but found a way to meaningfully combine the iGPU and the GPU, so ultimately 160GB VRAM can be used. Their approach puts the most-frequently-routed experts on the R9700’s fast 32GB while the Strix Halo holds the rest in its 128GB pool. For a sparse MoE model like DeepSeek V4 Flash 0731, where only a few experts fire per token, that split seems to map well onto the hardware.
So I thought it was worth a try and bought:
- Minisforum DEG1 - basically acts as the mainboard for the GPU and has an OCuLink port
- Corsair SF850 - the GPU needs its own PSU
- An M.2/PCIe to OCuLink adapter
- Radeon AI PRO R9700 Creator 32GB
Except the GPU, most of it is pretty cheap. You could also connect the DEG1 via USB instead of M.2/PCIe, which would look much cleaner, but it’s slower (about 3 GB/s vs. 7-8 GB/s over the M.2 connector).
Build
The parts: Corsair SF850 SFX power supply, the OCuLink adapter kit, and the R9700.
Opening up the A9 Mega, the adapter goes into one of the M.2 slots. It’s a small card that carries PCIe 4.0 out to a flat ribbon that ends in an OCuLink (SFF-8611) connector:
The M.2 adapter seated in an internal NVMe slot.
The ribbon routes out through a gap in the chassis. Not elegant, but it works and the lid still closes:
OCuLink cable coming out of the underside of the A9 Mega.
On the other end, the R9700 sits in the Minisforum DEG1 dock, powered by its own Corsair SF850 SFX PSU (the mini PC can’t feed a card like this, so the GPU gets its own power). The R9700 is an ASRock Creator card (blower-style cooler):
32GB of RDNA4. The box makes a point of the “AI” branding.
Wired up, the whole thing looks like this - mini PC, OCuLink out to the GPU, GPU fed by the external PSU:
The finished rig. The Mimic is optional but recommended.
Results
After booting into Ubuntu 26.04 with ROCm 7.2.3, both GPUs show up:
1
2
3
4
$ rocminfo | grep "Marketing Name"
Marketing Name: AMD RYZEN AI MAX+ 395 w/ Radeon 8060S
Marketing Name: AMD Radeon AI PRO R9700
Marketing Name: AMD Radeon Graphics
rocm-smi sees the R9700 with its full 32GB, alongside the Strix Halo iGPU:
1
2
3
$ rocm-smi -i
GPU[0] : Device Name: AMD Radeon AI PRO R9700
GPU[1] : Device Name: AMD Radeon Graphics
The discrete card is gfx1201 (RDNA4) and the iGPU is gfx1151.
OCuLink speed is okay (PCIe 4.0 x4) but not as fast as a normal mainboard slot (x16), so the link gets negotiated down:
1
2
3
$ lspci -vv -s c6:00.0 | grep -E "LnkCap|LnkSta"
LnkCap: Speed 32GT/s, Width x16
LnkSta: Speed 16GT/s (downgraded), Width x4 (downgraded)
For LLM inference this probably does not matter much because once the weights are in VRAM, the PCIe link mostly carries prompts and results. It could hurt for anything that streams data across the bus constantly, like offloading layers between the R9700 and host memory.
First Impressions
Using Vulkan and MTP we get about 50-80 t/s for Qwen 3.8 27B (Q4_K_XL weights with Q8 KV cache) on the R9700, depending on how well the prediction does and the context size - way better than the Strix Halo alone could do. Next I want to try DeepSeek V4 Flash 0731 (and other MoEs), similar to what Lucebox did, so both the iGPU and GPU are used together, and do some actual vulnerability research with both Qwen and DeepSeek offline. Let’s see if it can pay for itself.