The machine in the basement.

A MINISFORUM AI X1 Pro-370 under a desk in Metro Atlanta. One language model and one image model share a single integrated GPU. The header dot is this machine, right now.

MINISFORUM AI X1 Pro-370 standing vertically on its stand

Checking the box.

Why Qwen3-30B-A3B fits in 64GB

Measured on this box, running Qwen3-30B-A3B. Not vendor claims.

  • Radeon 890Mno discrete GPU.
  • 64GB DDR5both channels full. More RAM would buy nothing.
  • 60–70GB/sthe bus, in practice. This is the ceiling.

Generating a token means reading the active weights, and that read is the whole cost. A dense 32B reads ~19GB per token and crawls. Qwen3-30B-A3B activates ~3B active per token of 30B total, reads ~1.5–2GB, and measures 31 tok/s. A smaller dense 8B would be slower. Model size is the wrong metric here. Active parameters are the right one.

Both models, measured on this box. The loaded one is highlighted.
Measured here Qwen3-30B-A3B gpt-oss-20b
Generation31 tok/s25 tok/s
First word, warmunder 1sunder 1s
Cold start50-100s~27s
Cold start beats the 100s tunnel timeoutnoyes
Prompt it is primed with~9,000 tokens~9,200 tokens
Total parameters30B21B
Active per token~3B~3.6B
QuantisationQ4not recorded

The smaller model is the slower one at generating, and the faster one at starting. Generation reads only the active parameters, so fewer is better; a cold start touches far more of the model at once, so a smaller total wins. Same box, opposite winners, which is why one number was never going to describe this machine.

What it does, and what that costs

Every capability here has a matching limit. They are usually the same fact seen from two sides.

  • Answers at conversational speed. About 31 tok/s from Qwen3-30B-A3B Q4 on an iGPU, once it is warm.
    It will not beat a free cloud chat. Faster, stronger models exist with no queue. Capability is not the pitch.
  • Starts answering almost immediately. A primed prefix puts the first word at under 1s instead of 50-100s cold, on a ~9,000-token prompt.
    Long-context interactive work is out. A ~16,000-token prompt takes minutes. Prefill is compute-bound, and a mixture of experts does not help it — that is a generation trick.
  • Serves about four people at once. Four concurrent requests is where this box still feels responsive.
    It does not scale past that. Five people chatting is unusable. Ten is down. One machine, no autoscale.
  • Tells the truth about itself. The status line is live: primed, priming, drawing, or off. No fake “online.”
    And gets out of the way when it cannot. Sites that call it fail open to a cloud model and tag the reply. Nobody waits on a cold box.

The other workload

The same integrated GPU also draws pictures. It is one machine doing one thing at a time, so a render and an answer are genuinely in competition — ask a question mid-render and the reply may come from the cloud instead.

  • ~22stypical 1024² render, SDXL Lightning.
  • 8 stepseuler, CFG 2.0. ComfyUI. About 1.86s/step, and you can watch them.
  • ~7GB checkpoint~20s to load cold. Unloaded after 2 minutes idle.
  • One at a time10/day per IP. A render owns the GPU while it runs.

How it was built

The full runbook is still one page. It will be cut into modules.

  • Home AI box setup

    MINISFORUM AI X1 Pro-370 on Windows: measured tok/s, Tailscale, a Cloudflare tunnel, and what the box will not do.