By: Gionatan Danti (g.danti.delete@this.assyoma.it), May 24, 2022 6:29 am
Room: Moderated Discussions
Brendan (btrotter.delete@this.gmail.com) on May 23, 2022 11:44 am wrote:
"At a minimum, the MP operating system should remain operational and should support the common features of unequal processors".
Which is *exactly* the sane thing to do: in the face of unequal processor, only the *common features* are going to be supported.
This is how Z systems does it. VMWare live migration does it. Libvirt/KVM does it. The linux kernel does it. All general-purpose OS I use (Linux, *BSD, Windows) does it. It is such a strong requirement that Intel decided to disable, then to fuse-off, AVX512 from P cores. I don't know about MacOS X - does it support something similar to what you wrote?
> In other words, if software developers actually bothered to follow Intel's advice
> 25 years ago, Intel wouldn't have had to disable AVX-512 in Alder Lake's P cores.
Do you remember that previous Intel PPro and P3 processors were so picky about SMP config that only close-enough stepping worked correctly? And that you had to use the same frequency on both processors? From here:
"In two-way MP (multi-processor) systems, mixing processors of different internal clock frequencies is not supported and has not been validated. Pentium III processors do not support a variable multiplier ratio; therefore, adjusting the ratio setting to a common clock frequency is not valid. However, mixing processors of the same frequency but of different steppings is supported. Details on support for mixed steppings is provided in the Pentium® III Processor Specification Update." (hint: only some stepping were compatible).
If one can not mix processors with "mundane" changes as frequency and stepping, how can we hope to mix CPUs with different ISAs and call it a day?
My opinion counts very little, if any, but I have the feeling that the only exception is if/when the user is prepared to explicitly set affinity: a simple "only use this and only this CPU or you will crash" scenario is going to work reasonably well for static workload, which is basically what happens on the embedded word, where you control (more-or-less) everything. And this is one reason some users where afraid Intel disabled AXV512 on Alder Lake.
But at this point why limit yourself on the CPU? If the right workload is requested, simply "schedule" it on a dedicated GPU/FPGA/ASIC/whatever...
Regards.
"At a minimum, the MP operating system should remain operational and should support the common features of unequal processors".
Which is *exactly* the sane thing to do: in the face of unequal processor, only the *common features* are going to be supported.
This is how Z systems does it. VMWare live migration does it. Libvirt/KVM does it. The linux kernel does it. All general-purpose OS I use (Linux, *BSD, Windows) does it. It is such a strong requirement that Intel decided to disable, then to fuse-off, AVX512 from P cores. I don't know about MacOS X - does it support something similar to what you wrote?
> In other words, if software developers actually bothered to follow Intel's advice
> 25 years ago, Intel wouldn't have had to disable AVX-512 in Alder Lake's P cores.
Do you remember that previous Intel PPro and P3 processors were so picky about SMP config that only close-enough stepping worked correctly? And that you had to use the same frequency on both processors? From here:
"In two-way MP (multi-processor) systems, mixing processors of different internal clock frequencies is not supported and has not been validated. Pentium III processors do not support a variable multiplier ratio; therefore, adjusting the ratio setting to a common clock frequency is not valid. However, mixing processors of the same frequency but of different steppings is supported. Details on support for mixed steppings is provided in the Pentium® III Processor Specification Update." (hint: only some stepping were compatible).
If one can not mix processors with "mundane" changes as frequency and stepping, how can we hope to mix CPUs with different ISAs and call it a day?
My opinion counts very little, if any, but I have the feeling that the only exception is if/when the user is prepared to explicitly set affinity: a simple "only use this and only this CPU or you will crash" scenario is going to work reasonably well for static workload, which is basically what happens on the embedded word, where you control (more-or-less) everything. And this is one reason some users where afraid Intel disabled AXV512 on Alder Lake.
But at this point why limit yourself on the CPU? If the right workload is requested, simply "schedule" it on a dedicated GPU/FPGA/ASIC/whatever...
Regards.