linux
- IOMMU off buys a 128 GB iGPU 5 %, and costs the NPU
On this Strix Halo box the GPU was never behind IOMMU translation, so iommu=pt changed nothing for it. amd_iommu=off bought ~5 % prefill and killed the NPU.
- The benchmark was talking to the previous server
A Flash-Next-only engine, three modes, and a mode result that was really the previous run's server: how cd && server & made $! lie.
- Mistral-Small-4 ran one matmul on the CPU, and said nothing
Mistral-Small-4 decoded at 3.4 tok/s with the model on the GPU: one op per layer ran on the CPU, silently. MiniMax was slow in a different way.
- Vulkan or ROCm on Strix Halo? Ask at which depth
On an empty context Vulkan won the first-day bench on every model. At 127k, ROCm prefilled gpt-oss-120b 7× faster. The answer depends on depth.
- 128k context is the floor, and prefill is the wall
A 128k context fits easily in 128 GB of unified memory. Filling it took gpt-oss-120b 29 minutes, and one model's 64k prefill hit a GPU ring timeout.
- The download that contaminated the benchmark
A model download bent one row of a long-context benchmark. The queue built to stop that got deleted by systemd at boot, then met a real power cut.
- No BIOS image, so I diffed the NVRAM
No BIOS file to download, flashrom segfaults. So: change one setting, diff AmdSetup from efivarfs. The 85W preset turned out to do nothing.
- 120 GiB for the GPU, set in the kernel, not the BIOS
On a 128 GB Strix Halo box the BIOS's 96 G GPU setting leaves Linux 31 GiB. The minimum plus two TTM parameters gives the GPU 120 GiB.
- Installing Fedora on a computer that hadn't shipped yet
Fedora 45 was installed, Secure-Boot-tested and debugged in a container and QEMU before the A9 Mega first ran Linux. Then the hardware brought its own bugs.
- Two libavcodecs behind one soname
mpv plays HEVC fine. Haruna, built on libmpv, says no decoder exists. Same soname, different library — and the dynamic linker picks the wrong one.