Page 1 of 1
Is the Apple M1 chip AMP?
Posted: Sun Jun 12, 2022 8:27 pm
by nexos
Hello,
I just read something on Apple's website which leads me to believe that the Apple M1 might me an AMP system, where the cores are different types. Here is what it says:
Apple wrote:The powerful 8-core CPU combines four performance cores and four efficiency cores
That could just be a marketing tactic, macOS could also tune its scheduler for that, while still being SMP. Can anyone confirm or deny if M1 is AMP?
Re: Is the Apple M1 chip AMP?
Posted: Sun Jun 12, 2022 9:59 pm
by Octocontrabass
I don't know if it really qualifies as AMP (ARM calls it HMP - heterogeneous multiprocessing) but yes, Apple's M1 CPU contains two different types of cores.
Re: Is the Apple M1 chip AMP?
Posted: Sun Jun 12, 2022 10:11 pm
by klange
As Octocontrabass says, it's not really AMP in the way AMP is usually differentiated from SMP.
Yes, there are two sets of cores with different performance characteristics, but the usual separating factor between symmetric and asymmetric systems is that the cores have different access to peripherals, and this is not the case with the two classes of performance cores in the M1 chipsets.
Scheduling can treat them all the same, and then performance and power usage would presumably hit some middle ground between the two, but obviously this not the point of the setup.
This is similar to how many SMP systems still have NUMA - non-uniform memory access - except instead of memory, it's power... sort of.
Re: Is the Apple M1 chip AMP?
Posted: Mon Jun 13, 2022 5:39 am
by nexos
Ah, that makes sense. I think I was confused by this quote from the wiki:
AMP means that at least one of the CPUs are different.
Re: Is the Apple M1 chip AMP?
Posted: Mon Jun 13, 2022 7:45 am
by thewrongchristian
This reminds me of a colleague's SPARCstation 10 about 20 years ago.
He had a dual CPU workstation, with I think, a 60MHz SuperSPARC I in one MBUS slot, and a 85MHz SuperSPARC II in the other MBUS slot.
I was agog that it worked, when contemporary x86 machines often complained when mixing steppings of otherwise the same CPU. MBUS isolated the details, and Solaris just shrugged it's shoulders and got on with it. I don't think Solaris made any scheduling decisions based on the asymmetry of the CPUs, though.