The GPU and the Neural Engine, with the apps using each.

A tab for the GPU and a tab for the Neural Engine: how hard each is working, which apps are using it, and a chart of the last minutes, in the window, the menu bar and on the Overview. On Apple silicon the Neural Engine has always been a mystery. Here it is a number.

Memory by Type
82%
in use
App 22.15 GB
Wired 5.67 GB
Compressed 24.54 GB
Cached 10.32 GB
Free 1.32 GB
Memory by App
59.25 GB
all apps
Google Chrome 21.23 GB
VS Code 8.17 GB
Terminal 3.86 GB
Safari 2.69 GB
Other 23.30 GB
Power by App
1.7 W
all apps
GitHub Desktop 427 mW
Google Chrome 367 mW
Zoom 145 mW
Terminal 86 mW
Other 650 mW
Now
27 %
Average today36%
Load3.41
User
19%
Your apps
System
8%
macOS
Cores
12
8 P4 E
Top App
Google Chrome
18.2%
AppCPU
Google Chrome
96 processes
–
Terminal
49 processes
–
Safari
16 processes
–
Docker
9 processes
–
Visual Studio Code
63 processes
–
Slack
13 processes
–
Figma
14 processes
–
Zoom
8 processes
–
In use of 64 GB
52.63 GB
Normal
Free11.37 GB
Swap0 MB
App
23.43 GB
Wired
5.37 GB
Compressed
23.82 GB
Top App
Google Chrome
20.59 GB
AppMemory
Google Chrome
96 processes
–
Visual Studio Code
63 processes
–
Terminal
49 processes
–
Safari
16 processes
–
Docker
9 processes
–
Slack
13 processes
–
Figma
14 processes
–
Zoom
8 processes
–
Free of 994.66 GB
479.72 GB
Used514.94 GB
Written today38.9 GB
Reading
737 kB/s
Writing
195 kB/s
Volumes
2
Macintosh HDBackup
Top App
Photos
121 kB/s
AppWriting
Photos
6 processes
–
Google Chrome
96 processes
–
Docker
9 processes
–
Visual Studio Code
63 processes
–
Xcode
22 processes
–
Mail
4 processes
–
Slack
13 processes
–
Music
5 processes
–
Downloading
12 kB/s
Today4.4 GB
Last 30 days212 GB
Uploading
419 kB/s
Last 7 Days
48.3 GB
Interface
Wi-Fi
en0
Top App
Safari
8 kB/s
AppDownloading
Safari
16 processes
–
Google Chrome
96 processes
–
Slack
13 processes
–
Zoom
8 processes
–
Music
5 processes
–
Mail
4 processes
–
Docker
9 processes
–
Notion
6 processes
–
Apple M2 Max
60 %
Average32%
Peak95%
Memory
1.69 GB
Average
32%
Peak
95%
Top App
Figma
35%
AppGPU
Figma
14 processes
–
Google Chrome
96 processes
–
Safari
16 processes
–
Zoom
8 processes
–
Visual Studio Code
63 processes
–
Xcode
22 processes
–
Slack
13 processes
–
Notion
6 processes
–
16-core Neural Engine
2 %
Average3%
Peak16%
Memory Traffic
79.9 MB/s
Average
3%
Peak
16%
Top App
Photos
3 connections
AppNeural Engine
Photos
6 processes
–
Xcode
22 processes
–
Safari
16 processes
–
Zoom
8 processes
–
Mail
4 processes
–
Notion
6 processes
–
Google Chrome
96 processes
–
On battery
64 %
Remaining2h 46m
Cycles412
Power Draw
12.6 W
Health
76%
Temperature
31°
Top App
Google Chrome
4.3 W
AppPower
Google Chrome
96 processes
–
Zoom
8 processes
–
Figma
14 processes
–
Slack
13 processes
–
Safari
16 processes
–
Visual Studio Code
63 processes
–
Docker
9 processes
–
Music
5 processes
–
Output
MacBook Pro Speakers
64%
AppStatusVolumeLevel
Music Playing 100%
Zoom Playing 80%
Google Chrome Playing 35%
Slack Silent Muted
Safari Silent 100%
Figma Silent 100%
Notion Silent 100%
Mail Silent 100%
3 connected
Lowest battery: AirPods Pro, left, 42%. Beats Fit Pro is paired but away.
42% Bluetooth Settings
DeviceKindBatteryLevel
AirPods Pro Headphones
Left 42%
Right 58%
Case 80%
Magic Trackpad Trackpad 67%
Magic Keyboard Keyboard 91%
4 dev servers are running but idle
Stopping them frees 1.37 GB and ports 3000, 4321, 4322, 8000.
Stop All…
storefront
9 processes
working
1.18 GB
storefront-web
node
4322 up 3 days, barely used
458 MB
scraper-api
python
8000 up 4 days, barely used
412 MB
marketing-site
node
4321 idle 2 hours
296 MB
billing-api
node
30009229 idle 45 min
204 MB
docs
node
5173
188 MB
ml-notebooks
python
8888
164 MB
design-tokens
node
6006 idle 20 min
121 MB
infra
3 processes
96 MB
auth-service
go
8080
74 MB
email-templates
node
3030 idle 3 hours
58 MB
0%
Claude
This week
On pace · 10% to spare
0%
Codex
5-hour session
Resets in 3h 12m
0%
GitHub Copilot
Premium requests
Runs out in 4d at this rate
0%
Cursor
This billing cycle
Resets in 12d 5h
Checkout flow tests Working Waiting for you
Claude Code · storefront · running 48 min
410 MB
Started · 4 Quit Session…
vitest command · 61% CPU 520 MB
node server · port 3,001 240 MB
Google Chrome for Testing browser 310 MB
mcp-server-fetch tool server 64 MB
Codex idle 48 min
docs · in Terminal · Nothing started
290 MB
4 containers in Docker
674MB
Lowest592.3 MB
Peak674 MB
By Container
postgres312 MB46%
rabbitmq206 MB31%
minio142 MB21%
redis14 MB2%
CPU
3.0%
most in postgres
Closest to Its Limit
rabbitmq
86% of 240 MB
Network
9kB/s
↓ 6 kB/s · ↑ 3 kB/s
Published Ports
6
5433567263799000+2
storefront 2 containers
Started together by Docker Compose · 2 ports · 2 running
1.9% 326 MB
postgres postgres:16
Up 5 hours
5433
1.6% 312 MB
redis redis:7-alpine
Up 5 hours
6379
0.3% 14 MB
api 1 container
Started together by Docker Compose · 2 ports · 1 running
0.9% 206 MB
rabbitmq rabbitmq:3-management
Up 3 hours
567215672 86% of 240 MB
0.9% 206 MB
minio minio/minio
Up 26 hours
90009001
0.2% 142 MB

The numbers are simulated: a web page cannot read your Mac, and should not.

01GPU

How busy the GPU is, and which app is keeping it busy.

The GPU tab shows how hard the GPU is working, its memory, the average and the peak, a chart of the last minutes, and the apps using it with the heaviest first, so a render or a game or a browser tab shows up as what it is.

  • Use, memory, average and peak
  • The apps using it, heaviest first
  • A chart of the last 5, 15 or 30 minutes
  • GPU temperature with the other sensors
60%Apple M2 Max
1.69 GB memory
Average 32%
Peak 95%
Last 15 minutes51530
Figma48%
Google Chrome9%
Zoom3%
The average and the peak For whom, highest first
02Neural Engine

Finally a number for the Neural Engine.

On Apple silicon, Vitals works out how hard the Neural Engine is working from the memory it moves against the most this Mac has moved, and names the apps that hold it open, so Photos indexing your library overnight is no longer invisible.

  • How hard it is working
  • The apps that hold it open
  • A chart of the last minutes
  • A notice when an app has kept it busy for twenty minutes
34%Neural Engine
16 cores
Holding it open
Photosphotoanalysisd · 2,140 photos to go
macOSmediaanalysisd
Photos has kept the Neural Engine busy for 20 minutes.
Finally a number Who holds it open
03Local models

Your local model runs on the GPU, not the Neural Engine.

Models run with PyTorch or MLX use the GPU, so an Ollama session shows up as a busy GPU and a quiet Neural Engine. That is correct, and surprising the first time. Ollama's memory shows under Ollama, where you would look for it.

  • PyTorch and MLX run on the GPU
  • Ollama's memory under Ollama
  • The GPU turns red at 90% in the menu bar
  • The GPU is in the history, so a render from an hour ago is still there
GPU91%
Ollama6.2 GB
Neural Engine2%
Quiet, and that is right
ollama run llama3PyTorch and MLX run on the GPU
A busy GPU Red at 90% in the menu bar
04Menu bar

An item for each, and a card on the Overview.

Both can be menu bar items, as a number, a graph or both, in your order, and both get a card on the Overview, so you can keep an eye on a long render without opening anything.

  • A GPU item and a Neural Engine item
  • A number, a graph or both
  • Cards on the Overview
  • In the dropdown with the rest
FinderFile 60%34% 14:02
GPU60%
Neural Engine34%
A value, a graph or both A card for each on the Overview
Why it matters

GPU and Neural Engine, before and after

Activity Monitor gives the GPU a column, % GPU, and a GPU History window, and gives the Neural Engine nothing. On Apple silicon the Neural Engine does real work, for Photos, Spotlight, dictation and on-device models, and there has been no way to see when, or for which app.

Meanwhile the GPU is where local models actually run. PyTorch and MLX use the GPU, not the Neural Engine, so an Ollama session shows up as a busy GPU and a quiet Neural Engine, which is correct and surprising.

Vitals gives each its own tab: how busy it is, the GPU's memory, the average and the peak, the apps using it heaviest first, and a chart of the last 5, 15 or 30 minutes. The Neural Engine's number is worked out from the memory it moves against the most this Mac has moved, and the apps that hold it open are named. Both can be menu bar items and Overview cards, and Vitals tells you when an app has kept the Neural Engine busy for twenty minutes.

How to use it

Where it is in Vitals

The tab, the menu bar item and the setting, in the order you would reach for them.

  1. 01

    Open the GPU tab

    How busy the GPU is, its memory, the average and the peak, a chart of the last minutes, and the apps using it, heaviest first.

  2. 02

    Open the Neural Engine tab

    On a Mac with Apple silicon: how hard the Neural Engine is working, the apps that hold it open, and a chart of the last minutes.

  3. 03

    Put them in the menu bar

    Settings → Layout → Menu Bar: a GPU item, a Neural Engine item, as a number or a graph. Both have a card on the Overview.

  4. 04

    Let Vitals watch them

    The GPU reading turns red at 90%, and a notice comes when an app has kept the Neural Engine busy for twenty minutes. The GPU is in the history too, so a render from an hour ago is still there to see.

Compared

GPU and Neural Engine: Activity Monitor and Vitals

The whole comparison is row by row. These are the rows about GPU and Neural Engine.

Activity Monitor Vitals
The GPU
Activity MonitorA column and a History window
VitalsA tab with the apps using it, memory, average and peak
The Neural Engine
Activity MonitorNothing
VitalsA tab: how hard, and which apps
Charts
Activity MonitorA minute or two
VitalsThe last 5, 15 or 30 minutes, and the history
Menu bar
Activity MonitorNone
VitalsAn item for each
Notices
Activity MonitorNone
VitalsGPU red at 90%; the Neural Engine busy for twenty minutes

The words behind it

What the numbers mean, from the Activity Monitor glossary.

Questions

The ones people ask about GPU and Neural Engine before they buy.

Does Vitals show Neural Engine usage?

Yes, on Macs with Apple silicon: how hard it is working, which apps are using it, and a chart of the last minutes, in the window, the menu bar and on the Overview.

Why does my local model not show on the Neural Engine?

Models run with PyTorch or MLX use the GPU, not the Neural Engine. They show on the GPU tab.

Does it show GPU memory?

Yes, with the GPU's use, average and peak, and the apps using it.

Does Activity Monitor show this?

Activity Monitor has a GPU column and a GPU History window, and nothing for the Neural Engine.

How does Vitals measure the Neural Engine?

From the memory it moves, against the most this Mac has ever moved. macOS does not say which app is working it, only which apps hold it open, and those are what Vitals names.

Which Macs have the Neural Engine tab?

Macs with Apple silicon. On an Intel Mac there is no Neural Engine, and no tab.

Why is the GPU busy when I run Ollama?

Because models run with PyTorch or MLX use the GPU, not the Neural Engine. They show on the GPU tab, and Ollama's memory shows under Ollama.

Does it show the GPU's temperature?

Yes, with the other sensors, and the fans if the GPU is what is driving them.

Read on

Guides that use this, and how Vitals compares with the apps people buy for it.

More of Vitals

All features

Get Vitals for $15 while the launch price lasts

50 left at this price. The regular price is $39. One payment, lifetime updates, 14-day refund.

Get Vitals for $15