GitHub ↗
← all posts
2026-07-29 reverse-engineer npu flm

37 FLM models, 209 xclbins, zero config files

We extracted AMD's entire pre-built NPU model zoo from the ROCm/FastFlowLM v0.9.46 release: all 37 FLM models, 209 xclbin bitstreams, and zero config files to tell them apart. Every model has to identify itself, and the Q4NX header is where it does.

The zoo

From the ROCm/FastFlowLM v0.9.46 release we pulled AMD's entire pre-built NPU model zoo: all 37 FLM models that ship with the runtime. They arrived with zero config files, which is the interesting part, because it means every one of these models has to be identified from the binary itself.

The extract

ItemCount
pre-built FLM models37
xclbin bitstreams209
config files0

Two names worth knowing

Two entries stand out. Qwen3.5 Omni ships as full multi-modal C++ source, not just a pre-built blob, so it is the rare entry we can read as well as run. And Qwen3.6-MoE-35B comes with 256 experts, the biggest routing model in the set and a real stress test for any engine that claims MoE support.

Auto-detection from the Q4NX header

With no config files to trust, detection has to come from the model itself. We read the Q4NX header and pull the model identity straight out of it. Loading any of the 37 means pointing the engine at the file and letting the header decide: no registry, no sidecar, no guesswork.

What a full zoo buys

A complete, self-describing model zoo means the engine can be pointed at anything AMD ships without a config chase. 37 models, 209 xclbins, zero config files, and a header that tells the rest. The extraction and the loader are both in the repo.