p.b.s. schrieb:
@xexex , wenn ich Ned Flanders richtig verstehe, ist nicht die Code-Optimierung das Problem, sondern wohl eine eingebaute Abfrage zur CPU-Identifikation, das dann AMD stark benachteiligt, was ohne diese nicht der Fall wäre. Das ist in meinen Augen Vorsatz und dürfte auch gegen das Patent- und Lizenzabkommen zwischen beider Hersteller verstoßen:
https://de.wikipedia.org/wiki/Advanced_Vector_Extensions
Der Knackpunkt ist viel eher, wie wurde diese Code Optimierung "abgefragt" - es geht logisch nur nach dem Motto, wenn dann sonst.
Rein aus Programmierer Sicht ist es quasi fast gar kein Unterschied ob du die Abfrage:
- Wenn AMD, dann legacy, sonst optimized code
oder
- Wenn Intel, dann optimized code, sonst legacy
gestalten würdest - letzteres wäre nicht selten sogar schneller, weil es eben Sprungvorhersagen sei Dank höchst wahrscheinlich spekulativ schon weiter geht, während erstes ne Abbruchbedingung auf Intel CPUs wäre.
Aber moralisch ist erstere Abfrage schlicht ein NoGo während letztere einfach nur ein simpler Abwurf aller nicht explizit bevorteilter Themen wäre. Letzteres wäre sozusagen die "Optimierung" für spezielle Modelle/Produkte, ersteres der seitens Ned genannte Killswitch.
Weißt du wie MKL hier geschrieben wurde?
Aus meiner Sicht gibt es schlicht und ergreifend weder eine Regel noch irgend ein Gesetz was einen Softwareentwickler dazu zwingt, eine Featureabfrage zu erschaffen um vollvariabel bzw. volldynamisch auf jegliche CPUs reagieren zu können. Das KANN man machen, muss man aber eben nicht.
Solange Intel hier nicht AMD durch explizite Abfrage von der AMD Vendor ID ausschließt, sondern eben alles, was nicht Intel ist, auf den Legacy Pfad schickt, ist das moralisch sauber, wenn auch praktisch für den Anwender nicht schön. Ohne Zwang des Herstellers aber eben auch nicht zu erwarten. Theoretisch müsste es im Interesse der Entwickler hinter Mathlab sein, AMD mit optimierten Code zu versoren - im Zweifel müssen sie halt ne andere Lib für AMD einbauen, wenn MKL das nicht sicher stellen kann. ABER am Ende will das wohl wahrscheinlich einfach nur keiner bezahlen und allen real beteiligten Unternehmen ist es sogar völlig Bumms egal, was bei rum kommt - nur dass sich die Foristen drüber aufregen
Btw. was mich an dem Thema generell verwundert, warum regt man sich immer dann auf, wenn Intel im Spiel ist? Was ist denn mit all der ganzen Wald und Wiesen Software, die bspw. aus Supportgründen auf AVX verzichtet oder sogar auf neuere SSE Modi, nur damit die ewig hinterherlaufenden (bspw. K10 AMDler) überhaupt noch die Software verwenden können? In Games ist das nicht selten mal der Fall - kein K10 Support = Aufschrei in den Foren. Im Resultat baut man dann nen Legacypfad ein oder geht komplett auf alte Befehlserweiterungen zurück...