...
Regarding the scheduling of threads on the E-cores vs P-cores, macOS is aware of the difference between P and E cores on ARM/Apple Silicon. We presume that the macOS x86 kernel isn't aware of nor interacts with Intel thread director, and that threads are equally likely to be scheduled on an E-core or P-core. But how are the Cores exposed to the OS in ACPI? Do the E-cores have a lower priority and thus likelihood to be scheduled to run a thread? Has anyone done an empirical analysis to know how good or bad thread scheduling actually is in macOS x86 in task-heavy programs on Alder Lake and now Raptor Lake? Could it be the case the threads are scheduled (more often than not) on P-cores rather than E-cores? I have never noticed a latency problem in macOS on Alder Lake, but others may have better information than me. One thing that I do notice is that in macOS Activity Monitor, Cores 0 & 1 are the most heavily utilized cores, and from what I can tell, those appear to be a P-core(s).
My first exposure to a hybrid core architecture was with Apple's A10 Fusion chip, which had 2 power and 2 efficiency cores. On a mobile device that is always striving for longer battery life, the efficiency cores made complete sense. Many tasks on a modern operating system can be dispatched to a lower performance, lower power CPU.
Since then I've held the belief, rightly or wrongly, that efficiency cores should be in the
minority -- that they are there to tackle the
background or housekeeping chores and not much else.
Apple seems to have held that view in the design of M1 Pro and M1 Max, in which the vast majority of cores are high-performance ones, and a clear minority are high-efficiency.
Because Apple Silicon RISC cores are physically smaller than x86 CISC cores, Apple has the real estate on die to increase P-core count. Their philosophy for pro-level computing seems to be,
make every user application run on the fastest cores, but run housekeeping tasks as much as possible on the efficiency cores.
Intel's philosophy with E-cores seems to be different, which is,
let's run everything across both core types, but apply various heuristics to determine which type is appropriate for any given task. This doesn't mean either party is right or wrong. But I favor Apple's approach towards a
P-core dominant architecture.
And while E-cores are much maligned (I think people will start to value E-cores as their IPC increases and they support instuctions such as AVX-512, probably when Darkmont comes), the E-cores allow intel to punch far above its weight in the $280 to $450 price point with the 13600K and 13700K. The 13600K pretty much destroys the 7600X/7700X in most non-gaming workloads at a lower price than the 7700x, and the 13700K trades blows with the more expensive 7900X in many tasks.
If and when Intel shrinks its manufacturing node to allow for more P-cores and E-Cores on the same package, AMD will struggle to keep up with its current line up. AMD will have to respond by offering more cores at a lower price to keep up. But can AMD do so (with only P cores and no hybrid E-cores) while keeping power consumption and temps in check? How can the $329 13600K embarass the $399 7700X in MT? E cores seem to allow Intel to offer more MT performance per die area.
AMD is definitely behind. It will be necessary for them to introduce a hybrid architecture ASAP. I hope, however, that theirs will be
P-core dominant. If they have the real estate on chip (err, on substrate) for more P-cores, then they should prioritize P-cores over E-cores.