// HACKER NEWS — CYBERSECURITY
Show HN: Npunlock – Run custom C kernels for Intel NPUs
Intel ships programmable SHAVE cores inside its NPUs, but the public stack
exposes only graph-level programming. npunlock reconstructs the missing path
from custom C code to a runnable NPU kernel.
The current implementation has been verified on Windows x64 with Meteor Lake /
NPU3720.
Latest breakthrough — 2026-09-23: One native graph can execute independent FP32-unary and FP16-binary custom branches; explicit ACT-group preflight handles the compiler's branch reordering. Evidence and limits.
This complete FP32 GELU example embeds the C kernel in Python, places it in an
NPU graph, and checks the result against NumPy. The bundled
npunlock/npu3720_kernel.h target header supplies the NPU3720 invocation and
tensor-address helpers. The tested MoviTools toolchain makes most conventional
libm functions available to kernels without including ; this
example calls tanhf directly. See the
mlibm.a symbol inventory for the observed candidates.
The same code is available as the runnable
FP32 GELU example. See also the
FP16 GELU and
multi-layer two-input examples,
plus a
mixed-precision graph with unary and binary custom branches.
Intel's normal NPU software accepts graphs made from operations its compiler
supports; it does not expose a public workflow for supplying a C implementation
for an operation. The NPU's ACT-SHAVE processors are programmable and run
software kernels. npunlock makes those processors usable for compatible
custom graph operations while retaining Intel's compiler and driver for the
surrounding graph and hardware execution.
OpenVINO is not required as a runtime, Python package, or compiler frontend.
npunlock does emit OpenVINO-format IR for the installed Intel driver.
npunlock is currently installed from a source checkout:
The build bundles npunlock.dll and npunlock_worker.exe inside the Python
package, so normal Python use does not require a separate native path.
Custom C compilation uses Intel/Movidius MoviTools, which npunlock does not
redistribute or download.