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.1.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.1-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: metop-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 0ed7a0005a1ca6d3dfbfff738f474331d0d98ff679b30062683fbcf706c4a139
MD5 1a166de05a8905d7f7c459da73ef4b7d
BLAKE2b-256 50ec23d7a72613cf73b210f889abc437f145dc41cad6415a1928df6f11b5f045

See more details on using hashes here.

Provenance

The following attestation bundles were made for metop-0.1.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: metop-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 94eccf37ee0a23e93f0310f2d45277e91fd04fd1b0214f3d140ee1cea230b208
MD5 ac9d0341a88c449cf772902d4d3f2deb
BLAKE2b-256 2793b331b0ca116acc1018fec38377915c326e8aa29146b3988fd029cbc75458

See more details on using hashes here.

Provenance

The following attestation bundles were made for metop-0.1.1-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