Skip to main content

macOS GPU/ANE Monitor for Apple Silicon

Project description

metop

A Python-based GPU/ANE monitoring tool for Apple Silicon Macs. Like nvtop or nvidia-smi, but for Metal and the Neural Engine.

Features

  • GPU Monitoring (no sudo required)

    • Device, Renderer, and Tiler utilization percentage
    • GPU memory usage (in-use vs allocated)
    • Real-time sparkline history
  • ANE + Power Metrics (requires sudo / powermetrics)

    • CPU/GPU/ANE/Total power (mW/W)
    • GPU/ANE frequency and active/idle residency (when available)
    • ANE utilization estimated from residency (fallback: power-based)
  • System Info

    • Chip detection (M1/M2/M3/M4 series)
    • CPU/GPU/ANE core counts
    • Memory usage and swap

Installation

# Install from source
pip install -e .

# Or with optional fast IOKit bindings
pip install -e ".[fast]"

Usage

# Basic monitoring (GPU only)
metop

# Enable ANE + power metrics (requires sudo)
sudo metop

# Custom refresh interval (500ms)
metop -i 500

# Disable ANE/powermetrics even with sudo
metop --no-ane

# Debug mode (single sample, raw output)
metop --debug

Screenshot

metop main screen

How It Works

GPU Monitoring

Uses IOKit via ioreg command to query the AGXAccelerator driver's PerformanceStatistics. This provides:

  • Device Utilization % - Overall GPU busy percentage
  • Renderer Utilization % - Shader/compute units
  • Tiler Utilization % - Geometry processing

ANE + Power Metrics

Uses powermetrics (-f plist) to collect CPU/GPU/ANE power and residency/frequency data. Requires sudo because powermetrics needs root access.

ANE utilization is estimated from:

  • preferred: ANE active residency reported by powermetrics
  • fallback: power-based estimate
utilization = (current_power / max_power) * 100%

Requirements

  • macOS Monterey (12.0) or later
  • Apple Silicon Mac (M1/M2/M3/M4 series)
  • Python 3.9+
  • rich (terminal UI)
  • psutil (memory stats)

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

metop-0.1.0.tar.gz (18.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

metop-0.1.0-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file metop-0.1.0.tar.gz.

File metadata

  • Download URL: metop-0.1.0.tar.gz
  • Upload date:
  • Size: 18.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for metop-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5b688f9c8cfdd62176a434d411fd2560e14aeee332a99fd0733716cd80dd6587
MD5 42c017c7886343d64c3f3e6adbb78e39
BLAKE2b-256 7a77ef7402b63eeba69a3b2dd6ca018bd438e791515001c884ec8d4132b899ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for metop-0.1.0.tar.gz:

Publisher: python-publish.yml on FanBB2333/metop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file metop-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: metop-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 20.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for metop-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a484fc96544a280aee0d543d4d87f689aaa9ad090aedc7c978ac49cb99d6465c
MD5 e7bd413a6daf604666e639f29164d68e
BLAKE2b-256 92b24d4e645a97b41ffbc11bbe683a2a5ba9fb588fe20503c8e48c0775b391a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for metop-0.1.0-py3-none-any.whl:

Publisher: python-publish.yml on FanBB2333/metop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page