You installed OpenVINO, your script lists CPU and GPU as available devices, but the NPU — the reason you bought an AI PC laptop — is nowhere to be found. No error, just absence. The model runs on the wrong hardware: slower and hotter than it should be. For anyone running local inference on Intel Core Ultra, Ryzen AI, or Snapdragon X machines, this is uniquely annoying because everything else looks healthy.
The cause is almost always a broken link in a three-part chain: the NPU hardware driver, the vendor’s NPU driver stack that OpenVINO talks to, and the OpenVINO runtime with its NPU plugin. Windows can show the NPU as healthy in Device Manager while OpenVINO still cannot see it, because the two ask the driver different questions.
This guide gives you six fixes in dependency order: confirm the hardware layer, repair the NPU driver, install the correct OpenVINO runtime, check the plugin, fix environment conflicts, and test properly.
Why this happens
- NPU driver missing or broken: OpenVINO queries the NPU through its driver. A driver that cannot initialize makes the NPU invisible to OpenVINO even when Windows boots fine.
- Wrong OpenVINO version: NPU plugins are version-specific. An older install predates your NPU generation’s plugin, so no NPU is ever enumerated.
- NPU plugin not installed: Some distributions split plugins into optional components — a minimal install may lack the NPU plugin entirely.
- Vendor stack mismatch: On Intel, the plugin needs the Intel NPU driver stack; on AMD, the XDNA driver path. A mismatched stack breaks enumeration.
- Conflicting installs: A system-wide install plus a pip install plus a conda environment can shadow each other, so your script loads a copy without NPU support.
- No hardware access: Sandboxed apps, containers, or restricted sessions cannot open the NPU device handle even when everything is installed.
How to fix it
Work through these in order — diagnose first, then act.
Fix 1: Confirm the NPU is healthy at the Windows level
OpenVINO cannot see an NPU that Windows itself cannot use. Rule out the hardware layer before touching any OpenVINO install.
- In Device Manager, check the NPU entry for warnings.
- In Task Manager’s Performance tab, confirm an NPU graph exists.
- Run a built-in NPU feature like background blur to prove the chip computes.
- If the NPU is missing or broken here, work through the NPU not detected in Windows 11 guide first — no OpenVINO fix bypasses a broken driver.
Fix 2: Repair the NPU driver stack
Even a warning-free NPU can have a driver stack the plugin cannot talk to — common after Windows Update swaps an OEM driver for a generic one.
- Identify your vendor: Intel Core Ultra, AMD Ryzen AI, or Qualcomm Snapdragon X.
- For Intel, run the Intel Driver & Support Assistant and install the latest NPU and graphics stack.
- For AMD or Qualcomm, get the latest chipset/NPU package from your laptop maker’s support page for your exact model.
- In Device Manager, uninstall the NPU with “Attempt to remove the driver for this device” checked, restart, then install the fresh package and verify the NPU is healthy.
Fix 3: Install the correct OpenVINO version with NPU support
Version mismatch is the most common OpenVINO-side cause: the runtime must be new enough to include your hardware generation’s NPU plugin, and the plugin must actually be present.
- Check your version (
pip show openvino) against the latest release notes for NPU support on your platform. - Uninstall the old OpenVINO completely — pip package, system install, and conda copies — so no stale copy shadows the new one.
- Install the latest full Windows release including hardware plugins (not a CPU-only build), selecting the NPU plugin component if offered.
- Re-run your device query. If the NPU is still absent while CPU and GPU appear, continue to Fix 5.
Fix 4: Verify the NPU plugin loads
Sometimes the plugin exists but fails to initialize — a missing dependency or blocked load produces silence rather than an error.
- Confirm an NPU plugin library is physically present in your OpenVINO install’s plugin directory.
- Run OpenVINO’s device-query sample from an elevated terminal and read the full output for NPU load errors.
- If it reports a missing system DLL, service your Windows 11 install via the official Microsoft Windows download page , then reinstall OpenVINO.
- Temporarily disable third-party antivirus and re-run the query — security software sometimes blocks the plugin’s hardware access.
Fix 5: Clean up conflicting Python environments
Multiple OpenVINO copies are a notorious trap: your script imports a two-year-old pip copy while you carefully upgraded the system install.
- Run
python -c "import openvino; print(openvino.__file__)"to see exactly which copy your script loads. - Hunt down other copies in site-packages folders, conda envs, and Program Files, and remove all but one.
- Reinstall the current release into the single environment you use, ideally a fresh virtual environment.
- Re-run the device query there. (App-level capture problems like Recall not recording specific apps are a separate issue — do not chase them together with device enumeration.)
Fix 6: Test NPU inference the right way
Some “not detected” reports come from testing methodology: the NPU is detected but busy, or the test never requested it. A disciplined test settles it.
- Close other AI apps first — if live captions hold the NPU, OpenVINO may fail to claim it. (For caption problems themselves, see the live captions high memory usage guide .)
- Write a minimal script that explicitly requests device
NPU(notAUTO) and prints the device list first. - Run it while watching Task Manager’s NPU graph — activity during inference is definitive proof.
- Document the working combination (OpenVINO, driver, BIOS versions) so the next update does not silently break it.
Closing
OpenVINO not detecting your NPU is a chain problem: Windows driver health, the vendor’s NPU stack, the right OpenVINO version with its NPU plugin, and one clean install. Work the chain in order — confirm the NPU in Device Manager and Task Manager first, repair the driver, install a current full OpenVINO release, eliminate duplicates, and test with an explicit device request. Then pin those versions and update deliberately.
