Blog

How to check GPU usage on a Mac

The built-in route needs sudo and prints a wall of text. Here is the free way to keep it in your menu bar instead.

8 August 20264 min read

Activity Monitor shows you CPU, memory, energy, disk and network. GPU usage is tucked away in a separate window under the Window menu, as a graph with no number on it, and it is the one people go looking for the moment a Mac starts behaving strangely during a video call or a game.

The built-in way

macOS does expose it, through a command line tool:

sudo powermetrics --samplers gpu_power -i 1000 -n 3

That prints GPU residency and power for three one second samples. It works, it is accurate, and it is Apple's own instrument.

It also has three problems as a way of actually watching your GPU.

It needs sudo, every time. It prints a great deal more than you asked for. And it is not free to run: powermetrics is a heavier instrument than the thing you are trying to measure, so leaving it in a loop in a terminal is its own small performance problem.

It is the right tool for a one off answer. It is the wrong tool for keeping an eye on something.

Putting it in the menu bar

AirStats is free and open source, and GPU usage is one of the metrics you can put in the menu bar. Open settings and turn on GPU Usage. The panel has a GPU module with more detail if you want to click into it.

Underneath, the reading comes from the IOAccelerator service's performance statistics rather than from shelling out to anything, so watching it continuously costs you approximately nothing.

If GPU is not one of the metrics you display, the collector is not sampled at a reduced rate. It is not sampled at all, and it releases the service handles it was holding until you ask for it again.

The number is stranger than it looks

GPU utilisation on macOS is not an instantaneous reading. It is an average over the interval since the counter was last read, and not since you last read it. Since any process on the machine last read it.

Which means the first GPU number any tool shows you, including that powermetrics command, covers a window somebody else started. If a game read the counter four minutes ago, your first reading is a four minute average presented as though it were the last second.

This is not theoretical. AirStats shipped with exactly that bug, and it reported 98% on a completely idle GPU until I fixed it by throwing away a read to close the inherited window.

So if you check your GPU with any tool and the very first number is alarming, take a second reading before you believe it. That applies to every GPU monitor on this platform, mine included.

What actually uses the GPU

More than you would think. Every window on your Mac is composited on the GPU, so it is never truly at rest while the screen is on. Video calls, browser video, anything doing machine learning locally, and any app drawing with Metal will all move it.

A GPU that sits high with nothing obvious running is worth investigating. A GPU that spikes during a call and settles afterwards is the machine working correctly.

Questions

How do I see GPU usage on a Mac?

Turn on GPU Usage as a menu bar item in AirStats. Clicking it opens a GPU module with a utilisation chart, a bar of memory used out of total, and a Renderer and Tiler split where the driver reports one. The reading comes from the IOAccelerator service, not from running a command.

Is there a native Mac app that shows GPU utilisation in detail?

Partly. Activity Monitor has a GPU History window under its Window menu, which draws a graph with no number on it, and its CPU tab can add a % GPU column per process. For a figure you have to run powermetrics with sudo. A menu bar monitor is the only way to keep a number in view.

What is a normal idle GPU percentage on a Mac?

Not zero. Every window on the screen is composited on the GPU, so it is always doing something while the display is on. Video calls, browser video, local machine learning and anything drawn with Metal push it higher, and it should settle again when they stop.

Why is the first GPU reading wrong?

macOS reports GPU utilisation as an average since the counter was last read by any process, not since you read it. So the first number from any tool can cover a window another app started minutes ago. AirStats throws its first read away for this reason.

How do I see GPU temperature on a Mac?

Open the AirStats panel and look in the Thermal module. It shows the GPU die temperature read from the System Management Controller sensors, next to the CPU temperature and fan speeds.

AirStats

Sixteen metrics in your menu bar for 0.046% CPU. Free and open source.

Download for Mac

How to check fan speed on a Mac