…omments
The public forward never calls the fused GU->SiLU->D path (launch_fused,
dequant_fused, packB_into_fused*, update_fused_header*, fused_gs_off) or the
int4 GU packer (gu_i4_pack.h, q4nx_raw.h): they had no callers outside
npu_engine_i8ctx_inc.h. Those files and blocks described the private NPU
kernels' tile formats, so they go, along with the unused bf16_pair field.
Comments that named private kernel internals (on-chip regions, SRAM budget,
REG_M tiling, generator versions, private issue numbers) now state only the
host-side contract. No behaviour change for the GGUF-on-NPU route.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Follow-up to #179/#181/#209. The NPU host code on main carried the private NPU kernels' internals in public: the fused int4 GU kernel's tile layout, which byte regions the object-FIFO delivers, the on-chip dequant stage, the SRAM budget, REG_M tiling limits, generator versions and private issue numbers. Owner rule: NPU kernels, their designs and detailed write-ups stay private.
Removed (dead code on the public route; no callers outside
npu_engine_i8ctx_inc.h):npu/forward/engine-src/gu_i4_pack.handq4nx_raw.h(the fused int4 GU packer and its raw reader)npu_engine_i8ctx_inc.h:launch_fused,dequant_fused,fused_elf_capable,packB_into_fused*,update_fused_header*,fused_gs_offand its constantsbf16_pairfieldReworded: the remaining comments that named kernel internals now state only the host-side contract (M=128 streams, one instruction BO per context, zero-padded rows).
13 insertions, 1,027 deletions. No behaviour change:
q4nx_forward.cpp, the only file including the header, compiles cleanly against XRT's headers on strixhalo (g++ -std=c++20 -fsyntax-only). The private fused path stays in npu-kernels. Git history still holds the removed text.🤖 Generated with Claude Code