HomeNewsletterCommunityMVP FeedToolsArchiveBlogToday's NewsAboutServicesQuick Links Subscribe free
← Back to Blog
Windows 11 Windows 11Task ManagerNPUAICopilot+MonitoringDiagnostics

Task Manager AI Workload Visibility: NPU Monitoring for IT Pros

IA
Imran Awan
19 August 2026

A user calls the helpdesk: their Copilot+ PC feels sluggish. CPU is at 12%. Memory is fine. GPU is idle. But something is clearly working hard — the fan is spinning and the battery is draining fast. The culprit is the NPU, and until recently Task Manager gave you nothing to go on.

Windows 11 24H2 changes that. Task Manager now shows NPU utilisation per process, cumulative NPU time in App History, and a dedicated NPU panel in the Performance tab — the same depth you get for CPU and GPU, extended to the AI accelerator. This post is the complete reference: every tab, every column, every PowerShell counter, and every policy you can push via Intune or Group Policy.

📋 Who this applies to: NPU monitoring in Task Manager only works on Copilot+ PCs running Windows 11 24H2 or later. A Copilot+ PC is a device with a certified NPU delivering at least 40 TOPS — currently Qualcomm Snapdragon X Elite/Plus, Intel Core Ultra 200V series, and AMD Ryzen AI 300 series. Standard business laptops with an Intel Core Ultra 100-series (Meteor Lake) do not qualify — those have an NPU but below the 40-TOPS threshold. Check first.

Step 0 — Confirm the device qualifies

Before you spend time looking for an NPU tab that isn't there, run this one-liner to confirm the device has a qualifying NPU driver registered with Windows:

Check-CopilotPlus.ps1
# Check if this device has an NPU registered via DirectX
Get-WmiObject -Class Win32_VideoController |
    Select-Object Name, DriverVersion, Status

# Also check for the NPU-specific PnP device
Get-PnpDevice | Where-Object { $_.FriendlyName -like "*NPU*" -or $_.FriendlyName -like "*Neural*" } |
    Select-Object FriendlyName, Status, InstanceId

On a qualifying device you will see an entry like Qualcomm(R) AI Stack Neural Processing SDK or Intel Neural Processing Unit with status OK. If this returns nothing, the device does not have an NPU Windows recognises — Task Manager will not show an NPU tab regardless of what Windows version is installed.

The Performance tab — NPU panel

Open Task Manager (Ctrl+Shift+Esc), switch to the Performance tab. On a qualifying device the left sidebar lists: CPU, Memory, Disk, Wi-Fi, Ethernet, GPU — and at the bottom, NPU. Click it.

The NPU panel shows four live counters updated every second:

Task Manager — Performance › NPU
Performance
CPU              12%
Memory         58%
Disk 0 (NVMe)   3%
GPU 0           0%
NPU            22%
NPU Qualcomm Hexagon X Elite NPU
100%
50%
Utilisation
22%
Inferences/sec
38
Dedicated memory
486 MB / 512 MB
Shared memory
1.2 GB

The Processes tab — NPU column

The Processes tab NPU column shows you which process is eating that 22% right now. Right-click any column header → select NPU from the list. The column appears on the right side of the table, showing each process's share of NPU utilisation as a percentage of total NPU capacity.

The key processes to know on a managed Copilot+ PC:

Task Manager — Processes › right-click column header › NPU
Name PID CPU % Memory NPU %
AIXHost.exe 4812 1.2 142 MB 18%
copilot.exe 7240 0.4 89 MB 4%
SearchHost.exe 3360 0.1 31 MB 0%
MsMpEng.exe 1580 0.3 210 MB 0%
System 4 0.0 0.1 MB 0%

The App History tab — cumulative NPU Time

The App History tab answers a different question: not "who is using the NPU right now" but "which apps have used the most NPU time over the past week". Right-click any column header and enable NPU time. The value shown is the cumulative wall-clock time the app spent running inference — formatted as hours:minutes.

This is the right tab for capacity planning and user behaviour analysis. An app showing 2:30 NPU time in a day is running inference almost constantly. Use this to identify which apps are driving fleet NPU load before you roll out a new app to all devices.

⚠ Gotcha: App History only tracks packaged apps (UWP and MSIX Win32). Unpackaged Win32 processes — python.exe, ollama.exe, any local LLM runner — do not appear here regardless of how much NPU they use. For unpackaged processes, use the PDH counter query in the next section. This is by design: App History uses the Package Identity lifecycle, not the process lifetime.
Task Manager — App History › right-click column › NPU time
App CPU time Network NPU time
Copilot 0:42 14.2 MB 1:38
Microsoft Teams 3:14 284 MB 2:51
Photos 0:08 0 MB 0:22
Microsoft Store 0:02 8.1 MB 0:00

To reset the App History counter, go to Options > Hide History then re-enable it. This clears all cumulative counters including NPU time — useful before a clean measurement window.

PowerShell: real-time NPU counters via PDH

The NPU is exposed through the GPU Engine performance counter category — the same category that covers GPU compute engines. On Qualcomm Snapdragon X, the NPU engine type is engtype_Video. On Intel Core Ultra 200V it may appear as engtype_Compute depending on driver version. Use this script to discover what's available on a specific device:

Get-NPUCounters.ps1
# Step 1: Find all GPU Engine counter instances on this device
# On Copilot+ PCs you will see NPU engine types in the output
(Get-Counter -ListSet "GPU Engine").PathsWithInstances |
    Where-Object { $_ -like "*Utilization*" } |
    ForEach-Object { $_ -replace "\\.*?\GPU Engine(" , "" -replace ").*", "" } |
    Select-Object -Unique |
    Sort-Object

# Expected output on Qualcomm Snapdragon X Elite:
# pid_1234_luid_0x00000000_0x00012345_phys_0_eng_0_engtype_3D
# pid_1234_luid_0x00000000_0x00012345_phys_0_eng_1_engtype_Video   <-- NPU
# pid_1234_luid_0x00000000_0x00012345_phys_0_eng_2_engtype_VideoDecode

Once you've confirmed the engine type on the target device, use this script to sample live NPU utilisation and rank processes by usage:

Get-NPUByProcess.ps1
# Sample NPU utilisation per process — run in an elevated PowerShell window
# Adjust engtype_Video to engtype_Compute for Intel NPUs if needed
$counterPath = "GPU Engine(*engtype_Video*)Utilization Percentage"

$sample = Get-Counter -Counter $counterPath -SampleInterval 1 -MaxSamples 5

$results = $sample.CounterSamples |
    Where-Object { $_.CookedValue -gt 0 } |
    Group-Object InstanceName |
    ForEach-Object {
        $avgUtil = ($_.Group | Measure-Object CookedValue -Average).Average
        $pidMatch = $_.Name -match 'pid_(d+)'
        $pid = if ($pidMatch) { [int]$Matches[1] } else { 0 }
        $procName = if ($pid -gt 0) {
            (Get-Process -Id $pid -ErrorAction SilentlyContinue).Name
        } else { 'unknown' }
        [PSCustomObject]@{
            Process  = $procName
            PID      = $pid
            NPU_Pct  = [math]::Round($avgUtil, 1)
            Instance = $_.Name
        }
    } |
    Sort-Object NPU_Pct -Descending

$results | Format-Table Process, PID, NPU_Pct -AutoSize

Expected output on a device with Recall running in the background:

PowerShell output
Process PID NPU_Pct ------- --- ------- AIXHost 4812 17.8 copilot 7240 4.1 backgroundTaskH 9104 0.3

Registry: showing the NPU tab on managed devices

On some enterprise builds — especially devices that received a fresh Windows image without running Windows Update post-deployment — the NPU tab may not appear even on qualifying hardware. This is because the Task Manager feature flag is controlled by a registry value that requires the NPU driver to write it during first-run setup. If imaging bypassed that setup, the value may be absent.

Check the current state on a device with:

Check-TaskManagerNPU.ps1
$path = "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionTaskManager"
Get-ItemProperty -Path $path -ErrorAction SilentlyContinue |
    Select-Object ShowNpuInPerfTab, ShowNpuInProcesses

If the values are absent or set to 0, set them with:

Registry Editor
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTaskManager
ShowNpuInPerfTab   REG_DWORD  0x00000001  // 1 = show NPU in Performance tab
ShowNpuInProcesses REG_DWORD  0x00000001  // 1 = enable NPU column in Processes
✅ Tip: Deploy both registry values via an Intune Remediation script (Settings > Devices > Remediations). Set the detection script to check for ShowNpuInPerfTab = 1 at that path. The values take effect at the next Task Manager launch — no reboot required. Scope the assignment to a dynamic device group filtered on deviceModel -contains "Snapdragon X" so it only targets qualifying hardware.

Group Policy and CSP reference

The table below covers every AI-workload-related Task Manager and Windows AI policy available via Group Policy and Intune. The NPU visibility registry values do not yet have a native CSP — deploy them via Remediation script. The Windows AI policies (Recall, Studio Effects) do have CSP paths and can be set in the Intune Settings Catalog.

SettingGPO PathCSP / OMA-URIValues
Show NPU in Performance tabNo GPO — registry onlyRegistry: HKLMSOFTWAREMicrosoftWindows NTCurrentVersionTaskManager > ShowNpuInPerfTab0 = hide, 1 = show
Show NPU column in ProcessesNo GPO — registry onlyRegistry: same path > ShowNpuInProcesses0 = hide, 1 = show
Disable Recall (AI indexing)Computer Configuration > Admin Templates > Windows Components > Windows AI > Turn off Saving Snapshots for Windows./Device/Vendor/MSFT/Policy/Config/WindowsAI/DisableAIDataAnalysis0 = enabled, 1 = disabled
Disable Windows Studio EffectsComputer Configuration > Admin Templates > Windows Components > Windows Studio Effects > Disable Windows Studio Effects./Device/Vendor/MSFT/Policy/Config/ADMX_WindowsAI/DisableWindowsStudioEffectsEnabled = off, Not Configured = on
Disable Cocreator in PaintNo GPO at this time./Device/Vendor/MSFT/Policy/Config/ADMX_Paint/DisableCocreatorEnabled = disabled
⚠ Warning: Setting DisableAIDataAnalysis = 1 stops Recall's snapshot indexing pipeline. AIXHost.exe NPU usage will drop to near-zero, which changes your baseline. The NPU driver, the NPU column, and all other NPU consumers (Studio Effects, WinML apps) continue to function normally. After applying this policy, re-establish your idle NPU baseline — it will be lower than before.

What to watch: baselines for a managed fleet

The goal is not zero NPU utilisation — these features are there for a reason. The goal is knowing what normal looks like on your fleet so you can spot the abnormal. Here are the baselines to establish before you have a problem:

Run the PDH sampling script on a representative device for 30 minutes during a typical working session and export the output to CSV for your baseline record. When users report battery drain complaints on Copilot+ PCs, NPU utilisation data is now part of your standard diagnostic toolkit.

Official Microsoft documentation

Was this post helpful?
React below — no account needed
Share this post
LinkedIn X / Twitter Reddit Bluesky

More from EndpointWeekly

Windows 11
Microsoft's AI Is Hunting Windows Vulnerabilities Before…
Microsoft's MDASH — a multi-model AI scanning harness — is now hunting Windows…
Windows 11
Windows June 2026: Kerberos RC4 Enforcement, Windows Ready…
June 2026 brought one of the most urgent Windows security changes in years: Kerberos RC4…
Windows 11
Windows Monthly Updates Explained: LCU, SSU, Patch Tuesday and…
Every month Windows ships updates and most admins do not know the difference between an…