Blocker 2: pp_dpm_fclk at auto (levels to 2000 MHz); concurrent GPU+NPU hangs/corrupts until pinned to level 7 (deploy/host/halogen-fabric-clock unit, ~1 W).
Cost: IOMMU translation ON = 13–16 % prefill regression on frank-dragoon (upstream A/B; local measurement required after reboot). The NPU does NOT help custom voice (no ONNX/clone path exists) — this issue is for the small-model offload + a future NPU-Kokoro preset narrator only.
Scope
Maintenance window: stop+mask frank-dragoon/frank-zealot per benchmarking policy.
grub: amd_iommu=on (+ iommu=pt), reboot.
Install fabric-clock unit; verify the pin survives boot.
frank-dragoon quadlet: --device /dev/accel/accel0 + HALOGEN_NPU_MODELS per the models.txt catalog.
Run the image's own sweep; record prefill A/B vs the 460 tok/s baseline.
Acceptance
Sweep green; an NPU catalog model answers via the main port; prefill regression measured and recorded in the serverAppConfigs runbook; trunk decode within the published band.
Reboot-class change to a PRODUCTION box; needs a maintenance window + explicit OK per run. Census 2026-10-17.
## State measured
- `amdxdna` loaded, `/dev/accel/accel0` present, XRT 2.21 packages installed; frank-dragoon's pinned image HAS the `HALOGEN_NPU_MODELS` gate (models.txt tasks: decision/embedding/score/classify/generate — **no TTS task**).
- Blocker 1: `amd_iommu=off` on kernel cmdline (`iommu_groups==0`) → grub edit + reboot.
- Blocker 2: `pp_dpm_fclk` at auto (levels to 2000 MHz); concurrent GPU+NPU hangs/corrupts until pinned to level 7 (`deploy/host/halogen-fabric-clock` unit, ~1 W).
- Cost: IOMMU translation ON = 13–16 % prefill regression on frank-dragoon (upstream A/B; local measurement required after reboot). The NPU does NOT help custom voice (no ONNX/clone path exists) — this issue is for the small-model offload + a future NPU-Kokoro preset narrator only.
## Scope
1. Maintenance window: stop+mask frank-dragoon/frank-zealot per benchmarking policy.
2. grub: `amd_iommu=on` (+ `iommu=pt`), reboot.
3. Install fabric-clock unit; verify the pin survives boot.
4. frank-dragoon quadlet: `--device /dev/accel/accel0` + `HALOGEN_NPU_MODELS` per the models.txt catalog.
5. Run the image's own sweep; record prefill A/B vs the 460 tok/s baseline.
## Acceptance
Sweep green; an NPU catalog model answers via the main port; prefill regression measured and recorded in the serverAppConfigs runbook; trunk decode within the published band.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Reboot-class change to a PRODUCTION box; needs a maintenance window + explicit OK per run. Census 2026-10-17.
State measured
amdxdnaloaded,/dev/accel/accel0present, XRT 2.21 packages installed; frank-dragoon's pinned image HAS theHALOGEN_NPU_MODELSgate (models.txt tasks: decision/embedding/score/classify/generate — no TTS task).amd_iommu=offon kernel cmdline (iommu_groups==0) → grub edit + reboot.pp_dpm_fclkat auto (levels to 2000 MHz); concurrent GPU+NPU hangs/corrupts until pinned to level 7 (deploy/host/halogen-fabric-clockunit, ~1 W).Scope
amd_iommu=on(+iommu=pt), reboot.--device /dev/accel/accel0+HALOGEN_NPU_MODELSper the models.txt catalog.Acceptance
Sweep green; an NPU catalog model answers via the main port; prefill regression measured and recorded in the serverAppConfigs runbook; trunk decode within the published band.
Moved to dank/serverAppConfigs#3 — fleet infrastructure belongs in serverAppConfigs, not agent config.