Add Apple M5 Max support (unified M-cluster architecture)#92
Open
ProducerGuy wants to merge 2 commits into
Open
Add Apple M5 Max support (unified M-cluster architecture)#92ProducerGuy wants to merge 2 commits into
ProducerGuy wants to merge 2 commits into
Conversation
added 2 commits
May 16, 2026 14:39
M5+ uses M0-Cluster naming instead of E-Cluster/P-Cluster. The parser crashed with KeyError on E0-Cluster_active. Fix handles missing E/P clusters by detecting M-prefixed clusters and mapping them to the existing P-Cluster display. E-Cluster shows 0% (no efficiency cores on M5). Adds M5 Max TDP (45W CPU, 75W GPU) and bandwidth (546 GB/s).
Rewrite README for the M5-supporting fork: installation from fork, supported hardware table, M5 fix explanation. Add llms.txt for AI agent discoverability.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
asitop crashes on Apple M5 Max with
KeyError: 'E0-Cluster_active'. The M5 uses a unifiedM0-Clusterarchitecture instead of theE-Cluster/P-Clusternaming used by M1-M4.Changes:
parsers.py: Detect M-prefixed clusters and handle missing E/P cluster aggregates gracefully. M-cluster data maps to the P-CPU display; E-CPU shows 0% (M5 has no efficiency cores)utils.py: Add M5 Max TDP (45W CPU, 75W GPU) and memory bandwidth (546 GB/s)Root Cause
parse_cpu_metrics()assumes all chips have E-Cluster and P-Cluster entries from powermetrics. WhenE-Cluster_activeis missing, it unconditionally triesE0-Cluster_active(M1 Ultra path), which also doesn't exist on M5. Same issue for P-Cluster aggregation.The M5 Max reports a single
M0-Clustercontaining all 18 CPU cores (6 Super + 12 Performance). The cluster name starts withM, notEorP.Testing
Tested on Apple M5 Max (128GB, macOS 26.3.1). asitop displays live dashboard correctly:
Before (crash)
After (working)
Live dashboard showing Apple M5 Max (cores: 12E+6P+40GPU) with all metrics functional.