The Frankenstein MiniPC

5 GPUs, 192 GB VRAM — how a tiny MiniPC became a 235B+ inference server

Setup as built (March 2026): AOOSTAR GEM 10 MiniPC • 2x Quadro RTX 8000 (48 GB) + 2x Tesla P40 (24 GB) + 1x Tesla V100 (32 GB, SXM2→PCIe modded) = 176 GB VRAM • Runs 235B / 397B models fully GPU-resident • 4 cards via M.2→OCuLink (4 dedicated PCIe lanes each), 1 via USB4 • 24/7
Update — August 2026: The Pascal tier is gone. Both Tesla P40s were replaced by two more Tesla V100s by July 2026, so the machine now runs 2x Quadro RTX 8000 (48 GB) + 3x Tesla V100 (32 GB) = 192 GB VRAM — still five cards, still the same MiniPC. Every GPU is now compute capability 7.0 or higher, which lifts the vLLM restriction listed under Limitations; those P40-specific notes describe the March 2026 build, not the current one. The build story below is left as it happened. Idle power has been re-measured for the new mix (~110W total, up from ~76W — the V100s are thirstier at idle than the P40s were), and the throughput section now carries a second table with numbers measured on the current cards.

The Base: AOOSTAR GEM 10

Originally bought as a simple home server. Then the GPU addiction started.

The Build — Step by Step

Step 1: First GPU — P40 via OCuLink
24 GB VRAM • "This is great, I'm done."

AOOSTAR AG01 eGPU adapter, Tesla P40, connected via OCuLink. Worked immediately. Running 30B models.

I was not done.

Step 2: Second GPU — P40 via USB4
48 GB VRAM total • 80B MoE models

AOOSTAR AG02 eGPU adapter with another P40 via USB4. Also worked immediately. The MiniPC handles both OCuLink and USB4 simultaneously — they don't share lanes. Before buying, AOOSTAR support confirmed this would work.

Step 3: Third GPU — P40 via internal M.2 (the one with the saw)
72 GB VRAM total • Creative cable management required

M.2-to-OCuLink adapter (K49SQBK, PCIe 5.0, active chip) plugged into a free internal M.2 slot. To get the cable out: sawed a slot into the fan grille on the side panel. Not pretty, but it works. Connected another AG01 + P40.

AOOSTAR support said M.2-to-OCuLink should work in principle. It did.

Step 4: The RTX 8000 — Where Things Got Frustrating
The dream: replace P40s with RTX 8000s • 4x 48 GB = 192 GB

Bought a Quadro RTX 8000 (48 GB). It would NOT work over OCuLink — wouldn't even complete POST. Hung at the handshake. P40s worked fine in the same slot.

Tried different BIOS settings, tried the Smokeless BIOS tool to access hidden UEFI variables — nothing helped. Moved it to the AG02 (USB4) where it worked, but that meant losing a P40 slot. Days of frustration.

Step 5: ReBarUEFI — The Breakthrough

The problem: GEM 10's BIOS doesn't expose Resizable BAR settings, and the RTX 8000 needs a BAR larger than 256 MB to work over OCuLink. P40s are older and don't care.

ReBarState writes the BAR size directly into UEFI NVRAM. Set it to 4 GB, rebooted — RTX 8000 worked everywhere. OCuLink, M.2 adapter, AG01. Nearly fell off my chair.

Don't bother with the Smokeless BIOS tool if you need ReBAR — go straight to ReBarUEFI.

Step 6: Expansion to 5 GPUs — a 2nd RTX 8000 and a modded V100
176 GB VRAM • The Frankenstein grows

A second Quadro RTX 8000 joined the mix, and the headline addition: a Tesla V100 (32 GB), bought already converted from SXM2 to PCIe (a Chinese-market mod — a server-form-factor card carrier-boarded onto a PCIe interface). Compute capability 7.0, HBM2 with inline ECC, and noticeably faster than the P40s for the side-channel workloads (TTS / vision).

To free up a fast M.2 slot for another OCuLink adapter, the boot SSD and a backup drive were moved out to USB 3 — the precious PCIe lanes belong to the GPUs. End state: 4 cards on M.2→OCuLink adapters with 4 dedicated PCIe lanes each, straight to the CPU; the 5th on the USB4 port.

The five-card layout as of March 2026 — the two P40 slots hold V100s today, see the update at the top.

GPUVRAMConnection
Quadro RTX 8000 #148 GBM.2 → OCuLink (4 lanes)
Quadro RTX 8000 #248 GBM.2 → OCuLink (4 lanes)
Tesla P40 #124 GBM.2 → OCuLink (4 lanes)
Tesla P40 #224 GBM.2 → OCuLink (4 lanes)
Tesla V100 (SXM2→PCIe)32 GBUSB4
Total176 GB+ boot SSD & backup on USB 3

Photos

MiniPC close-up with OCuLink and USB4 cables

The MiniPC with OCuLink cables running to AG01 adapters and USB4 to the AG02. The two yellow cables are Ethernet — one for LAN, one for direct point-to-point RPC to the development machine.

Full setup — the 5-GPU eGPU shelf

The complete "server rack" — a wooden shelf holding all 5 eGPUs (2x RTX 8000, 2x P40, 1x V100) on their adapters. The desk fan is part of the cooling story.

Cooling

The P40s and RTX 8000 are server/workstation cards — passive or blower-style coolers designed for chassis airflow that doesn't exist in an open shelf. Solution: 3D-printed fan adapters with BFB1012HH fans and temperature-controlled PWM fan controllers with probes.

Initially tried higher-CFM fans (BFB1012VH) — unbearably loud and didn't cool any better. The BFB1012HH are the sweet spot: quiet enough to live with, even at full speed. Even at 100% GPU load, nvidia-smi rarely shows temperatures above 50°C.

The eGPU adapters have small built-in fans, but they rarely spin up.

Cost Breakdown

All GPUs bought used via eBay — the P40s and all three V100s from Chinese sellers (shipped from China, + customs), the two RTX 8000 locally via eBay Kleinanzeigen in Germany.

ComponentPriceSource
AOOSTAR GEM 10 MiniPC~€450New
Quadro RTX 8000 (x2)~€1,200 eacheBay Kleinanzeigen, Germany
Tesla P40 (x2)~€190 eacheBay (China, + customs)
Tesla V100 (SXM2→PCIe modded)€640eBay (China, + customs)
eGPU adapters (M.2→OCuLink x4 + USB4)~€45-210 eachAOOSTAR / AliExpress
BFB1012HH fans + PWM controllers~€10 eacheBay / AliExpress
3D-printed fan adaptersFreeSelf-printed
Total (March 2026 build)~€4,700 (approx)
Tesla V100 (x2, native PCIe) — July 2026 upgrade€565 each = €1,130eBay (China, + customs)
Total incl. the P40 → V100 swap~€5,800 (approx)

Curiously, the two native PCIe V100s came in cheaper than the SXM2→PCIe modded card bought months earlier (€565 versus €640) — and they idle 2W lower. The mod was the only way to get a V100 at the time; by mid-2026 the native cards had become the better deal.

Power Consumption (Idle)

Measured per-card idle draw (nvidia-smi), August 2026, with no model resident in VRAM.

ComponentIdle Power
Quadro RTX 8000 (x2)13W each = 26W
Tesla V100, SXM2→PCIe modded26W
Tesla V100, native PCIe (x2)24W each = 48W
MiniPC~7-10W
Total~110W

A 192 GB VRAM inference server idling around ~110W. Try that with a proper server rack.

Two things worth noting. The SXM2→PCIe modded V100 idles about 2W above the two native PCIe cards — consistently, not as measurement noise. And the V100s draw considerably more at idle than the P40s they replaced (24–26W versus ~9W each), so dropping the Pascal tier cost roughly 35W: the March 2026 build with 176 GB sat at about 76W. Worth it for HBM2 bandwidth, inline ECC and compute capability 7.0 — but it is not a free upgrade.

What It Runs

Representative models the Mini runs GPU-resident. The tok/s figures in this first table are ballpark numbers from the earlier 4-GPU stage — the August 2026 table further down has measurements from the current cards. GPU count, tensor split and context are auto-calibrated per model by AIfred — and MTP-capable models now run with speculative decoding, so real-world speeds on the 5-GPU config tend to be higher.

ModelSizeQuantContextKV CacheTG tok/s
Qwen3-4B Instruct4BQ8_0262Kf16~30
Qwen3-30B-A3B Instruct30B MoEQ8_0262Kf16~35
GPT-OSS-120B-A5B120B MoEQ8_K_XL131Kf16~50
Qwen3-Next-80B-A3B80B MoEQ8_K_XL262Kf16~35
Qwen3.5-122B-A10B122B MoEQ8_K_XL262Kf16~21
Nemotron-3-Super-120B120B NAS-MoEQ5_K_XL874Kf16~17
Qwen3.5-397B-A17B397B MoEIQ3_XXS262Kq8_0~20
Qwen3-235B-A22B Instruct235B MoEQ3_K_XL112Kq8_0~11

All models GPU-only (ngl=99), flash-attn, Direct-IO, mlock. Context sizes and the per-GPU tensor split are auto-calibrated by AIfred's 3-phase calibration to maximize available VRAM — including a separate "speed" variant (fewer GPUs, less context, more throughput) and automatic placement of TTS / vision side-channels onto dedicated cards. MTP-capable models (UD-MTP GGUFs) additionally run with speculative decoding (--spec-type draft-mtp), which lifts generation speed further.

Model lifecycle managed by llama-swap — models auto-swap on request, Direct-IO makes loading near-instant.

Update — August 2026: measured on the current 5-GPU mix

Prompt processing (PP) and token generation (TG) in tok/s, taken from real chat sessions on 2x RTX 8000 + 3x V100. Read these as a range, not as a benchmark: end-to-end numbers move with prompt length, RAG context and cache state, and every model below runs with speculative decoding.

ModelSizeQuantGPUsPP tok/sTG tok/s
Qwen3.5-4B4B denseQ8_K_XL12,738–3,21166–92
Qwen3.6-27B27B denseQ8_K_XL1–2557–73021–27
Qwen3.6-35B-A3B35B MoEQ8_K_XL11,841105
Qwen3.5-122B-A10B122B MoEQ8_K_XL4–5503–65542–50
DeepSeek-V4-Flash-0731284B MoE, 13B activeUD-Q4_K_XL5163–376 (med 325)19–41 (med 24)
Qwen3.5-397B-A17B397B MoE, 17B activeIQ3_S531536–46

Two findings worth calling out. Microbatch size matters enormously for MoE models: raising -ub from 512 to 2048 lifted prompt processing by 53% to 2.1x across the MoE profiles (isolated llama-bench, 397B pp8192: 240 → 399 tok/s) while leaving generation untouched — expert reads amortize over the larger microbatch. Dense models gain only 6–8% and were deliberately left at 512.

And the draft model decides how fast generation feels. The MTP-capable Qwen models draft with 90–96% acceptance. DeepSeek-V4-Flash instead uses a separate 11 GB DSpark sidecar draft (--spec-type draft-dspark) at 61–65% acceptance, and it is strongly content-dependent: writing structured code it drafts near its ceiling at 40–45 tok/s, while free-form reasoning text drops to around 20. That is why its answer-average lands below the 397B even though its prompt processing is roughly 1.8x faster and its time-to-first-token about 3x shorter. The PP advantage comes from the architecture — 43 layers, a sparse-attention indexer and a very cheap MLA KV cache — not from the draft model.

Limitations

Lessons Learned

What I'd do differently

What I wouldn't change

Next upgrade

The trajectory is swapping the remaining P40s out for faster cards (more V100s and/or RTX 8000s). Once the slow Pascal tier is gone, vLLM becomes viable across all GPUs and the whole rig moves up a class. ReBAR is sorted — it's just a matter of cards showing up at sane prices.

Done — both P40s were replaced by V100s by July 2026, bringing the machine to 192 GB VRAM with no card below compute capability 7.0. See the update note at the top.

The honest take

For what this ended up costing — ~€4,700 for the original build, roughly €5,800 once the P40s were swapped for V100s — you could probably get a 128 GB unified memory MiniPC and call it a day. But I didn't know where this was going when I started. One GPU became two, two became four, then five, and suddenly I'm sawing fan grilles and hunting down an SXM2→PCIe-converted V100 from a Chinese seller. That's how hobbies work. And honestly, the building was half the fun.