Taxxor schrieb:
Deaktivierung der Featureset Abfrage und damit nicht Nutzen von vorhandenen Resourcen der CPU bei nicht Intel CPUs ist genau so eine aktive Maßnahme wie das nicht Nutzen von zusätzlichem Takt bei nicht AMD CPUs.
Es wurde nichts deaktiviert. Die von dir behauptete Abfrage von Featuresets gab es nie, also musste nie etwas deaktiviert werden.
Genauso wie deine herbeifantasierte Senkung irgendwelcher Betriebsfrequenzen nicht gab. Wenn du diskutieren willst, tu das bitte nicht anhand irgendwelcher nicht existenter Hirngespinster.
Bzw. die Vendor ID Abfrage die nur dazu dient, die Featureset Abfrage danach entweder auszuführen oder eben nicht, ist die aktive Maßnahme.
Es gibt und gab keine Abfrage von Featuresets in der MKL, sondern Abfragen nach Intel Prozessorfamilien.
Man könnte diese ID Abfrage sowie die Abfrage der Prozessorfamilie komplett aus dem Code entfernen und für Intel CPUs würde alles noch genau so laufen wie vorher, da es auch unterschiedliche Featuresets innerhalb einer Familie gibt und so ultimativ sowieso nach dem Featureset gefragt wird.
Wenn die Abfrage nach der CPU Familie deaktiviert wird, dann laufen alle CPUs den Default Path auf SSE2 Niveau. Was allen aktuellen X86 CPUs die Performance ganz gewaltig verhageln würde.
Die Massiv abweichenden Features innerhalb einer CPU-Familie. Da kann ich mich an nicht viel mehr als div. Featurelevels bei AVX512 erinnern. Da müsste man den Spaß echt detaillierter auseinandernehmen, ob da die MKL detaillierter vorgeht als
icc -xCOMMON-AVX512 -mtune=xx oder ob es da nochmals einzelne Pfade für die Abweichenden Featurelevel von AVX512 vorgesehen sind.
pipip schrieb:
Eleganter wäre es, das System in ein Fehler laufen zu lassen, sodass sowas gar nicht erst passiert und Entwicklung einfließen muss, falls die Software nicht auf einer CPU läuft.
[...]
Programme so zu schreiben, dass sie illegale Befehle an eine CPU schicken, weil sie diesen vermeidbaren Fehlerfall nicht abfangen ist vieles, aber nicht elegant.
Ansonsten, Autovergleich? huiuiui