NPU enablement on Dankclaw (Strix Halo): IOMMU reboot + fabric-clock pin + halogen NPU gate #4

Closed
opened 2026-10-17 22:34:31 -07:00 by dank · 1 comment
Owner

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.

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.
Author
Owner

Moved to dank/serverAppConfigs#3 — fleet infrastructure belongs in serverAppConfigs, not agent config.

Moved to dank/serverAppConfigs#3 — fleet infrastructure belongs in serverAppConfigs, not agent config.
dank closed this issue 2026-10-17 22:51:38 -07:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dank/command-center#4