Live data from Hacker News

M1 Pro First Impressions: Core Management and CPU Performance

eclecticlight.co

1–10 of 234 posts

Re: M1 Pro First Impressions: Core Management and CPU Performance

#3
"Surprisingly, these benchmarks seldom exceed 50% load on any of the ten cores, which raises the question of how accurately they represent maximum CPU performance."

Eh, maybe. I'm not inclined to rely on the reported % CPU usage to represent anything useful. For example, it's very easy to be at 100% CPU when you're actually spending most of that time waiting for memory reads.

Re: M1 Pro First Impressions: Core Management and CPU Performance

#4
post #2

I’m not sure how to interpret this, even after reading the article. Is any reason given for why the last 4 Performance cores get only a limited amount of work?

I assume that a core cluster can power off if it's completely idle; this should be more energy-efficient than running both clusters at low utilization.

Re: M1 Pro First Impressions: Core Management and CPU Performance

#5
I have noticed that threads running at the Utility QoS level perform a lot more consistently on the M1 than they do on Intel. Utility being the lowest libdispatch QoS level that still gets scheduled on a P core.

For example, a piece of code I was optimizing recently ran with very little variation in time between runs on my M1 system, but had ~30% variation on a similarly loaded Intel Mac. Changing the QoS level to Default instead of Utility allowed the Intel Mac to perform much more consistently on the benchmark, but made no difference on the M1 (I have good reason to leave it at Utility in my actual application, but for benchmarking it made sense to try other levels).

I found it hard to tell from the article, but it sounds like on the M1 Pro maybe the two highest QoS levels (interactive and user initiated) now preferably map to p cores 0-3, and maybe now default and utility map to p cores 4-7, and then background gets the e cores?

Re: M1 Pro First Impressions: Core Management and CPU Performance

#6
post #2

I’m not sure how to interpret this, even after reading the article. Is any reason given for why the last 4 Performance cores get only a limited amount of work?

Like sibling comment says, it’s more efficient. It allows those cores to sort of pretend they’re ECs. It also reserves those PCs for bursty workloads which would otherwise be contentious for cache and memory bandwidth in an evenly balanced scheduler.

Re: M1 Pro First Impressions: Core Management and CPU Performance

#7
post #2

I’m not sure how to interpret this, even after reading the article. Is any reason given for why the last 4 Performance cores get only a limited amount of work?

Keep in mind the only devices with M1 Pro/Max CPUs are currently battery-powered laptops (which in itself is quite a strange inversion!)

Probably the "high power" mode available on an M1 Max in a 16" chassis is doing just that. And maybe Apple will decide to treat some kind of new iMac Pro as more of a pro machine, and make it chunky enough to dissipate that sort of heat without needing much fan noise...

Re: M1 Pro First Impressions: Core Management and CPU Performance

#8
post #2

I’m not sure how to interpret this, even after reading the article. Is any reason given for why the last 4 Performance cores get only a limited amount of work?

Like sibling comment says, it’s more efficient. It allows those cores to sort of pretend they’re ECs. It also reserves those PCs for bursty workloads which would otherwise be contentious for cache and memory bandwidth in an evenly balanced scheduler.

Is it basically giving programs some automatic core affinity or are the unused cores meant to be unused until the first set are saturated?

I guess also, are the 4 unused cores always the same?

Re: M1 Pro First Impressions: Core Management and CPU Performance

#9
post #2

I’m not sure how to interpret this, even after reading the article. Is any reason given for why the last 4 Performance cores get only a limited amount of work?

Unless I’ve misunderstood it’s somewhat guessed at, at the very end -

“I suspect that Apple has done this to further improve energy efficiency and ensure good responsiveness to new CPU-intensive tasks.”

Re: M1 Pro First Impressions: Core Management and CPU Performance

#10
post #3

"Surprisingly, these benchmarks seldom exceed 50% load on any of the ten cores, which raises the question of how accurately they represent maximum CPU performance." Eh, maybe. I'm not inclined to rely on the reported % CPU usage to represent anything useful. For example, it's very easy to be at 100% CPU when you're actually spending most of that time waiting for memory reads.

The way CPU usage is measured includes time waiting for memory reads. Only a hyperthreaded core would be able to schedule a different task on such a core. For the M1 Pro, which is not hyperthreaded, if all dispatched instructions are waiting for memory reads, then the retired instruction counter simply does not get incremented for that cycle.
Post reply on HN