Skip to content

Hardware overview

hal0 runs on four classes of homelab hardware. The one-line installer probes the box, picks a backend, and writes /etc/hal0/hardware.json. This page is for figuring out which tier you’re on before you commit, and which deployment shape (LXC, bare metal, VM with passthrough) is sane for it.

TierHardwareStatusPath
First-classAMD Strix Halo (Ryzen AI Max+ 395, Radeon 8060S, XDNA NPU, 64–128 GB unified)Reference platformVulkan llama.cpp on the iGPU, FLM on the NPU (NPU pending)
SupportedAMD discrete (RX 7900 XT/XTX, Radeon Pro)Vulkan today, ROCm queuedVulkan llama.cpp; ROCm toolbox pending
SupportedNVIDIA discrete (RTX 3080 / 4080 / 4090 / 5090)Vulkan today, CUDA queuedVulkan llama.cpp; CUDA toolbox pending
FallbackCPU-only x86_64 (no GPU)CI smoke targetVulkan-CPU (lavapipe)

Linux + systemd is required for every tier.

hal0 is happy in any of these. Pick what fits your homelab:

  • Privileged LXC with device passthrough. The canonical small-footprint install on a Proxmox node. AppArmor unconfined, dev0dev3 + cgroup allows for the render nodes and the XDNA accelerator. hal0 sits next to your other tenants, sees the GPU/NPU passthrough, and shows up in the dashboard’s memory bar as one segment of the host’s unified pool. CPU-only deployments can stay unprivileged.
  • Bare-metal Linux. Fine. No virtualisation overhead, no carveout to negotiate. The dashboard’s “PVE host” segment falls back to the LXC-only view.
  • VM with PCIe passthrough. Works for discrete GPUs. Plan on CPU pinning and an IOMMU group that doesn’t bring half your PCH along with the card.

The Strix Halo iGPU + XDNA NPU passthrough recipe is privileged LXC + AppArmor unconfined + dev0dev3 + the cgroup allows for /dev/kfd, /dev/dri/*, /dev/accel/*. AMD discrete + ROCm in an LXC needs the same /dev/kfd + /dev/dri/* device entries; NVIDIA wants the nvidia container toolkit on the host plus the matching device cgroup allows.

  • You’re shopping for a dedicated homelab box. Get a 128 GB Strix Halo machine. Unified memory is the whole point: you run the big models that discrete cards can’t, in a quiet SFF chassis that idles low enough to live on 24/7.
  • You already have a high-end NVIDIA card. Use it. The NVIDIA page covers what works today (Vulkan) and what’s queued (CUDA toolbox). A 4090 or 5090 outpaces the iGPU on small chat models; you trade headroom for throughput.
  • You already have an AMD discrete card. Same story. AMD discrete: Vulkan today, ROCm toolbox queued.
  • You have a CPU-only box and want to try hal0. CPU-only walks through the fallback path. Smoke-test it; don’t expect to chat through it all day.

Every measured number on this site comes from the Strix Halo reference deployment (Ryzen AI Max+ 395 + Vulkan llama.cpp). See the Strix Halo page for the verbatim table. Numbers from other hardware tiers will be added as they’re measured at publish quality.