Outgrowing the ProArt: moving the homelab to a Huananzhi H12D-8D

2026.07.24 · 7 min · homelab, epyc, proxmox, hardware

The X670E ProArt topped out at two GPU slots. Here's why I moved to a budget Huananzhi H12D-8D and an EPYC 7F52, and the four PCIe slots it opened up.

The Ryzen 7 7700 build from Build Log MSN-002 worked fine until I wanted a third card in the chassis. The ASUS ProArt X670E gave me two physical x16 slots and 32GB of DDR5. The Instinct MI50 and the Aorus GeForce card filled both before I'd even started thinking about what came after them.

Why the ProArt ran out of room

Consumer AM5 boards top out around 28 PCIe 5.0 lanes off the CPU, split between one full x16 slot and a second that drops to x4 or x8 once the chipset gets involved. That's enough for two cards if you're careful about slot order. It is not enough for a third, and there's no path to a fourth without an entirely different platform.

I didn't want to keep swapping cards in and out to test things. I wanted headroom.

Picking a budget EPYC board

I landed on a Huananzhi H12D-8D, a Chinese-market SP3 board that's a fraction of the price of a Supermicro or ASRock Rack equivalent. Two things sold it: four physical `PCIE_GEN4X16` slots, and three M.2 NVMe Gen4 x4 slots on the board itself, no add-in card needed for extra storage.

Paired it with an AMD EPYC 7F52 (16 cores / 32 threads, SP3), the same CPU that shows up in every post since.

EPYC 7002-series CPUs run DDR4 registered ECC, not DDR5. My existing DDR5 kit from the Ryzen build was dead weight the moment I picked this platform. Budget for RDIMMs separately if you're doing this migration. Eight channels also means the DIMM count roughly doubles versus a consumer board, so plan the RAM purchase around that, not around what you're replacing.

The H12D-8D bare on the bench: EPYC 7F52 seated in the SP3 socket, eight DDR4 DIMM slots, four PCIe Gen4 x16 slots, and three onboard M.2 slots below the socket.

What the swap retired

Moving to the new board meant retiring the GTX 1080 Ti and decommissioning a Kubernetes setup I'd been running for the VFIO/LXC isolation comparison in the original rack post. Both were tied to the old chassis layout and weren't worth carrying forward as-is. The MI50 moved over cleanly since ROCm doesn't care what CPU platform it's bolted to.

The MI50 and the Aorus card reinstalled in the new chassis, cable-managed and running.

Current state

Two of the four x16 slots are populated now. That headroom is exactly what let me add a Radeon RX 6900 XT later without touching the board again (Build Log MSN-015) and start the vLLM work (Build Log MSN-014) on the same box.

Reinstalling Proxmox and re-provisioning every LXC and VM from scratch was a weekend of work I didn't love. But going from a 2-slot ceiling to 4 slots and 3 onboard NVMe bays for less than a used enterprise board costs was the right trade. If I'd stayed on the ProArt, the RX 6900 XT addition wouldn't have been physically possible.