Immer noch: Intel Compiler benachteiligt AMD CPUs

Opteron

Redaktion
☆☆☆☆☆☆
★ Themenstarter ★
Mitglied seit
13.08.2002
Beiträge
23.643
Renomée
2.249
  • SIMAP Race
  • Spinhenge ESL
  • BOINC Pentathlon 2012
Hallo,

sowas gabs ja schon mal vor Jahren:

http://www.swallowtail.org/naughty-intel.html
http://www.swallowtail.org/naughty-intel.shtml

Die alten intel Compiler fragten dort nicht nach den feature Set ab, das die CPU kann ( also MMX, SSE, SSE2, SSE3 ...) sondern er fragt erstmal, ob ne "Genuine Intel" CPU im PC steckt.

Das hatte AMD auch mit in die Klage gegen Intel mitaufgenommen:

http://www.amd.com/us-en/assets/content_type/DownloadableAssets/AMD-Intel_Full_Complaint.pdf
Seite 40

und schwupps, gabs im ICC 10.x eine neues Compiler Flag /QxO. Funktion laut Intel help file:
Can generate SSE3, SSE2, and SSE instructions. Generated code might operate on processors not made by Intel that support SSE3, SSE2 and SSE instruction sets.

Can optimize for Intel processors based on Intel® Core™ microarchitecture or Intel NetBurst® microarchitecture.

This value does not enable some optimizations enabled when using the S, T, or P processor values.
Soweit so schön ... allerdings gibts immer noch das alte Intel Flag /QxP, laut Intel hat das die folgende Aufgabe:
Can generate SSE3, SSE2, and SSE instructions and can optimize for Intel processors, like the following:

Intel® Core™ Duo processors

Intel® Core™ Solo processors

Pentium® D processors

Intel Pentium® 4 processors with SSE3

Intel Celeron® M processors

Intel Celeron® D processors

Intel® Xeon® processors with SSE3

Other Intel processors based on Intel® Core™ microarchitecture or Intel NetBurst® microarchitecture

Mac OS X: Supported on IA-32 and Intel® 64 architectures.
Quelle: http://cache-www.intel.com/cd/00/00/34/76/347618_347618.zip

So alles in Butter könnte man meinen ... nein leider nicht. Das für Intel compilierte binary läuft auf AMD CPUs immer noch 50-100% schneller, als die Alibi /QxO Version, aber natürlich erst, nachdem man die Intel Abfrage entfernt hat. Selbige fragt jetzt nichtmehr nach Genuine Intel, sondern die erweiterte Familie ab ... Supi. Um das Ganze jetzt zu umgehen, hat der nette Wissenschaftler von der Universität Kopenhagen, der den Sachverhalt herausgefunden hat, eine sehr gute Anleitung bereitgestellt:

http://www.agner.org/optimize/optimizing_cpp.pdf
Der betreffende Abschnitt ist um S.118

Dabei wird die Intel eigene "suboptimale" Abfragefunktion durch eine neutrale ersetzt, die schlicht und einfach nur die feature flags abfragt und die CPU Familie ignoriert.

Aufgabe für alle interessierten Crunsher:

Fragt mal bei Euren Favoritenprojekten nach, ob Sie Intel Compiler verwenden. Falls ja gebt Ihnen mal den Tipp über obiges Optimierungs PDF, vielleicht gibts dann demnächst mit einer neuen Programmversion bessre AMD Ergebnisse & mehr Credits.

Viele Projekte nützen meines Wissens nach GCC, aber nachdem ich nicht ausschließen kann, dass es auch das ein oder andre ICC Projekte gibt, wollte ich das hier mal melden.

Fortlaufende Diskussion bei aceshardware:
http://aceshardware.freeforums.org/...d-because-of-flaw-in-intel-compiler-t428.html

ciao

Alex
 
Zuletzt bearbeitet:

Nero24

Administrator
Teammitglied
Mitglied seit
01.07.2000
Beiträge
23.625
Renomée
9.731
  • BOINC Pentathlon 2019
  • BOINC Pentathlon 2020
  • BOINC Pentathlon 2018
  • BOINC Pentathlon 2021
Tja, ein zweischneidiges Schwert würde ich sagen *noahnung* Es ist Intels eigener Compiler, der mit eigenen R&D-Geldern entwickelt wurde. Man könnte die Meinung vertreten, dass Intel alles Recht der Welt hat sicherzustellen, dass nur die hauseigenen Prozessoren von den Optimierungen profitieren. Andererseits ist es natürlich ärgerlich für AMD. Wenn AMD einen eigenen Compiler anbieten würde oder die anderen Compiler besser wären, gäbe es diese Diskussion gar nicht, denn dann könnte man für AMD-Prozessoren einfach zu GCC, PGI, etc. greifen. Aber meistens ist der ICC ja selbst inklusive der künstlichen Bremsen noch besser, als die anderen Compiler in der höchsten Optimierungsstufe.
http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?category=1&id=1097500346
 

Opteron

Redaktion
☆☆☆☆☆☆
★ Themenstarter ★
Mitglied seit
13.08.2002
Beiträge
23.643
Renomée
2.249
  • SIMAP Race
  • Spinhenge ESL
  • BOINC Pentathlon 2012
Tja, ein zweischneidiges Schwert würde ich sagen *noahnung* Es ist Intels eigener Compiler, der mit eigenen R&D-Geldern entwickelt wurde. Man könnte die Meinung vertreten, dass Intel alles Recht der Welt hat sicherzustellen, dass nur die hauseigenen Prozessoren von den Optimierungen profitieren. Andererseits ist es natürlich ärgerlich für AMD. Wenn AMD einen eigenen Compiler anbieten würde oder die anderen Compiler besser wären, gäbe es diese Diskussion gar nicht, denn dann könnte man für AMD-Prozessoren einfach zu GCC, PGI, etc. greifen. Aber meistens ist der ICC ja selbst inklusive der künstlichen Bremsen noch besser, als die anderen Compiler in der höchsten Optimierungsstufe.
http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?category=1&id=1097500346

Jupp Zweischneidig.

Man muss aber unterscheiden zwischen:

a) Befehlssatzoptimierung (wozu gibts sonst die feature flags ...)
b) CPU Optimierung (nach der CPU Family)

Intel vermischt jetzt beides und optimiert über die CPU family Abfrage gleichzeitig die Befehlssätze. Böse Zungen mögen da von "Mißbrauch" sprechen ...

Ich halts auf alle Fälle kindisch, ja sogar gefährlich für Intel, nachdem zuvor schon die GenuineIntel Abfrage von AMD angeprangert wurde. Das kann ganz schnell als Mißbrauch von Marktmacht interpretiert werden, jetzt sogar im Wiederholungsfall, wenn das die EU Kommission mitbekommt .. die fackelt da nicht lange. Könnte noch sehr teuer für Intel werden...

ciao

Alex
 

mocad_tom

Admiral Special
Mitglied seit
17.06.2004
Beiträge
1.234
Renomée
52
Ich hätte echt gedacht, das Thema wäre allmählich "entschärfter".
Andreas Stiller hat das in der c't ja früher schonmal angemahnt.

Eine Frage würde mich aber brennend interessieren - sind SpecInt/SpecFP/usw.-Eintragungen mit hand-gepatchtem Code rechtens oder nicht?
Viele Optimierungen sind oft nur dazu da eben diesen Code zu verbessern.

Grüße,
Tom
 

hot

Admiral Special
Mitglied seit
21.09.2002
Beiträge
1.187
Renomée
15
Das ist eindeutig wettbewerbswidriges Verhalten, CPUs auszuschließen, die mit offiziell lizenzierten Befehlssätzen arbeiten. Dabei spielt es überhaupt keine Rolle, ob man selber den Compiler entwickelt. Das wird sicherlich eine der EU Auflagen werden, diese Abfrage aus dem Compiler zu nehmen.
 

Twodee

Lord of the Stats, Special, ,
Mitglied seit
18.09.2006
Beiträge
13.778
Renomée
389
  • RCN Russia
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2012
Das ist eindeutig wettbewerbswidriges Verhalten, CPUs auszuschließen, die mit offiziell lizenzierten Befehlssätzen arbeiten. Dabei spielt es überhaupt keine Rolle, ob man selber den Compiler entwickelt. Das wird sicherlich eine der EU Auflagen werden, diese Abfrage aus dem Compiler zu nehmen.

nun es zwingt dich niemand diesen compiler zu verwenden oder?

warum muss/soll Intel für AMD die Entwicklungsarbeit abnehmen? Wenn das AMD wirklich so wichtig wäre, dann hätten sie schon längst einen EIGENEN kommerziellen Compiler.
 

TiKu

Administrator
Teammitglied
Mitglied seit
16.11.2001
Beiträge
21.509
Renomée
1.116
Standort
Unterföhring
  • SIMAP Race
  • QMC Race
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2021
nun es zwingt dich niemand diesen compiler zu verwenden oder?

warum muss/soll Intel für AMD die Entwicklungsarbeit abnehmen?
So könnte man argumentieren wenn der für Intel-CPUs generierte Code von Haus aus auf AMD-CPUs langsam wäre. Aber es ist ja so, dass der für Intel-CPUs generierte Code zufällig auch auf AMD-CPUs sehr gut läuft. Intel schmeckt das nicht, also bauen sie die Abfrage ein, ob es eine Intel-CPU ist und bremsen AMD-CPUs künstlich aus.
Ein Polemiker würde jetzt behaupten, dass durch die Abfrage Intel sogar mehr Aufwand betreiben muss als wenn sie AMD-CPUs gleichwertig behandeln würden.;)
 

Twodee

Lord of the Stats, Special, ,
Mitglied seit
18.09.2006
Beiträge
13.778
Renomée
389
  • RCN Russia
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2012
So könnte man argumentieren wenn der für Intel-CPUs generierte Code von Haus aus auf AMD-CPUs langsam wäre. Aber es ist ja so, dass der für Intel-CPUs generierte Code zufällig auch auf AMD-CPUs sehr gut läuft. Intel schmeckt das nicht, also bauen sie die Abfrage ein, ob es eine Intel-CPU ist und bremsen AMD-CPUs künstlich aus.
Ein Polemiker würde jetzt behaupten, dass durch die Abfrage Intel sogar mehr Aufwand betreiben muss als wenn sie AMD-CPUs gleichwertig behandeln würden.;)

das mag ja alles richtig sein, aber wo ist da das Problem für Intel? ;)
Versteht mich nicht falsch, mir schmeckt das genauso wenig, aber Intel bewegt sich da in einem legitimen Raum. Es ist ihr Produkt, sie haben es entwickelt, sie verkaufen es, sie entscheiden wie es funktioniert, niemand MUSS es verwenden.

Wenn AMD etwas ähnliches im Angebot hätte, würde sie es ja bestimmt auch so machen :]
 
Zuletzt bearbeitet:

TiKu

Administrator
Teammitglied
Mitglied seit
16.11.2001
Beiträge
21.509
Renomée
1.116
Standort
Unterföhring
  • SIMAP Race
  • QMC Race
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2021
Versteht mich nicht falsch, mir schmeckt das genauso wenig, aber Intel bewegt sich da in einem legitimen Raum. Es ist ihr Produkt, sie haben es entwickelt, sie verkaufen es, sie entscheiden wie es funktioniert, niemand MUSS es verwenden.
Gleiches gilt für Microsoft Windows und trotzdem gibts für Microsoft regelmäßig auf den Deckel.;) Das Problem ist die marktbeherrschende Stellung. Die ist zugegeben bei Intel weniger stark ausgeprägt als bei Microsoft.
 

Twodee

Lord of the Stats, Special, ,
Mitglied seit
18.09.2006
Beiträge
13.778
Renomée
389
  • RCN Russia
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2012
Gleiches gilt für Microsoft Windows und trotzdem gibts für Microsoft regelmäßig auf den Deckel.;) Das Problem ist die marktbeherrschende Stellung. Die ist zugegeben bei Intel weniger stark ausgeprägt als bei Microsoft.

das ist richtig. der markt würde auch ganz gut ohne intel compiler funktionieren (klar nicht für alle, der MS compiler tut es auch, auch wenn er zum kotzen ist), bei MS Windows ist das natürlich aufgrund der Markmacht kritischer zu betrachten, das muss von außen reguliert werden.
 

erde-m

Grand Admiral Special
Mitglied seit
23.03.2002
Beiträge
3.171
Renomée
366
Standort
TF
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2017
  • BOINC Pentathlon 2018
  • BOINC Pentathlon 2019
  • SETI@Home Wow!-Event 2019
  • SETI@Home Intel-Race II
  • BOINC Pentathlon 2020
  • THOR Challenge 2020
  • BOINC Pentathlon 2021
Intel hat ja wegen der Sache schon einmal eine auf den Deckel bekommen. Gerade wo jetzt die EU und einige andere Kartellbehörden genauer hinschauen, ist so etwas einfach nur dumm.

AMD hatte schon mal in der Richtung Anlauf genommen - nur wird das bei AMD einfach ein Ressourcen-Problem sein. Alles was sich nicht in relativ kurzer Zeit in Euro und Cent auszahlt, ist bei deren Lage im Moment leider nur rausgeschmissen.
 

Twodee

Lord of the Stats, Special, ,
Mitglied seit
18.09.2006
Beiträge
13.778
Renomée
389
  • RCN Russia
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2012
Intel hat ja wegen der Sache schon einmal eine auf den Deckel bekommen. Gerade wo jetzt die EU und einige andere Kartellbehörden genauer hinschauen, ist so etwas einfach nur dumm.

AMD hatte schon mal in der Richtung Anlauf genommen - nur wird das bei AMD einfach ein Ressourcen-Problem sein. Alles was sich nicht in relativ kurzer Zeit in Euro und Cent auszahlt, ist bei deren Lage im Moment leider nur rausgeschmissen.
... und seswegen dürfen sie "kostenlos" auf das konkurrenzprodukt verweisen bzw. sich beschweren wenn sie künstlich ausgebremst werden?
 

erde-m

Grand Admiral Special
Mitglied seit
23.03.2002
Beiträge
3.171
Renomée
366
Standort
TF
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2017
  • BOINC Pentathlon 2018
  • BOINC Pentathlon 2019
  • SETI@Home Wow!-Event 2019
  • SETI@Home Intel-Race II
  • BOINC Pentathlon 2020
  • THOR Challenge 2020
  • BOINC Pentathlon 2021
... und seswegen dürfen sie "kostenlos" auf das konkurrenzprodukt verweisen bzw. sich beschweren wenn sie künstlich ausgebremst werden?

Ich sag ja nicht, das es richtig ist ;) Intel sollte in dieser Richtung nur einfach mal die Füße stillhalten, sonst fällt was drauf. Wer die Steuerfahnder im Hause hat, wird doch auch nicht nebenbei anfangen auf seinen luxemburger Konten zu traden ;D
 

Twodee

Lord of the Stats, Special, ,
Mitglied seit
18.09.2006
Beiträge
13.778
Renomée
389
  • RCN Russia
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2012
Ich sag ja nicht, das es richtig ist ;) Intel sollte in dieser Richtung nur einfach mal die Füße stillhalten, sonst fällt was drauf. Wer die Steuerfahnder im Hause hat, wird doch auch nicht nebenbei anfangen auf seinen luxemburger Konten zu traden ;D

Warum sollten sie, sie machen ja nichts illegales.
 

TiKu

Administrator
Teammitglied
Mitglied seit
16.11.2001
Beiträge
21.509
Renomée
1.116
Standort
Unterföhring
  • SIMAP Race
  • QMC Race
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2021

erde-m

Grand Admiral Special
Mitglied seit
23.03.2002
Beiträge
3.171
Renomée
366
Standort
TF
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2017
  • BOINC Pentathlon 2018
  • BOINC Pentathlon 2019
  • SETI@Home Wow!-Event 2019
  • SETI@Home Intel-Race II
  • BOINC Pentathlon 2020
  • THOR Challenge 2020
  • BOINC Pentathlon 2021
Als was würdest du es denn dann bezeichnen?`

Ich würde sagen "fieß" aber "legal" :(

Bei kleineren Firmen würde kein Hahn nach krähen - da wäre es wohl "clever". Bei eindeutig marktbeherrschenden Firmen gelten nach dem Kartellrecht andere Maßstäbe. Und da nun mal bekannt ist, das der blaue Riese nicht immer nur kartellrechtlich sauber vorgegangen ist, wäre so eine Sache nur eine Provokation an die Kartellbehörden*noahnung* muß man nicht unbedingt haben...
 

Twodee

Lord of the Stats, Special, ,
Mitglied seit
18.09.2006
Beiträge
13.778
Renomée
389
  • RCN Russia
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2012
Bei kleineren Firmen würde kein Hahn nach krähen - da wäre es wohl "clever". Bei eindeutig marktbeherrschenden Firmen gelten nach dem Kartellrecht andere Maßstäbe. Und da nun mal bekannt ist, das der blaue Riese nicht immer nur kartellrechtlich sauber vorgegangen ist, wäre so eine Sache nur eine Provokation an die Kartellbehörden*noahnung* muß man nicht unbedingt haben...

Warum soll Intel die Firma AMD kostenlos unterstützen? Ich sehe da kein Kartellrecht, da die Welt auch ohne Intelcompiler funktionieren würde, es gibt ja noch zig andere Compiler.
 

TiKu

Administrator
Teammitglied
Mitglied seit
16.11.2001
Beiträge
21.509
Renomée
1.116
Standort
Unterföhring
  • SIMAP Race
  • QMC Race
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2021
Das Kartellrecht spielt deshalb da mit rein, weil Intel künstlich dafür sorgt, dass 2 Intel-Produkte besser zusammenspielen als eines der beiden Intel-Produkte mit einem Fremdhersteller-Produkt und Intel bei einem der beiden Produkte eine marktbeherrschende Stellung hat.
 

Twodee

Lord of the Stats, Special, ,
Mitglied seit
18.09.2006
Beiträge
13.778
Renomée
389
  • RCN Russia
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2012
Das Kartellrecht spielt deshalb da mit rein, weil Intel künstlich dafür sorgt, dass 2 Intel-Produkte besser zusammenspielen als eines der beiden Intel-Produkte mit einem Fremdhersteller-Produkt und Intel bei einem der beiden Produkte eine marktbeherrschende Stellung hat.

was wäre wenn der code, der vom intelcompiler erzeugt wird, überhaupt nicht mehr auf nicht-intel cpus laufen würde?

warum darf nvidia per treiber unterbinden das sli nur auf teueren nvidia boards funktioniert (abgesheen vom skulldings)? ist doch fast das gleiche oder?
 

fogzone

Grand Admiral Special
Mitglied seit
01.05.2006
Beiträge
2.377
Renomée
19
Standort
BW \ Tübingen
  • QMC Race
  • RCN Russia
  • Spinhenge ESL
  • Docking@Home
naja sogesehen ist das mit sli bei nvidia ja das gleiche wie wenn microsoft seine schnittstelle nicht offenlegt oder etwa nicht?
 

erde-m

Grand Admiral Special
Mitglied seit
23.03.2002
Beiträge
3.171
Renomée
366
Standort
TF
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2017
  • BOINC Pentathlon 2018
  • BOINC Pentathlon 2019
  • SETI@Home Wow!-Event 2019
  • SETI@Home Intel-Race II
  • BOINC Pentathlon 2020
  • THOR Challenge 2020
  • BOINC Pentathlon 2021
Warum soll Intel die Firma AMD kostenlos unterstützen? Ich sehe da kein Kartellrecht, da die Welt auch ohne Intelcompiler funktionieren würde, es gibt ja noch zig andere Compiler.

Es geht nicht um "nicht unterstützen" sondern um explizites Ausschließen von vorhandenen Optimierungsmöglichkeiten. Und das ist schon was anderes als Unterstützung.
 

Twodee

Lord of the Stats, Special, ,
Mitglied seit
18.09.2006
Beiträge
13.778
Renomée
389
  • RCN Russia
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2012
Es geht nicht um "nicht unterstützen" sondern um explizites Ausschließen von vorhandenen Optimierungsmöglichkeiten. Und das ist schon was anderes als Unterstützung.

wo ist da jetzt der unterschied aus Intels Sicht?

Sie sagen (lügen :]) einfach, dass deren SSE2/3 etc. optimiert code nicht zu 100% korrekt auf nicht Intel-cpus läuft, somit wird er deaktiviert :] - legal?
 

erde-m

Grand Admiral Special
Mitglied seit
23.03.2002
Beiträge
3.171
Renomée
366
Standort
TF
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2017
  • BOINC Pentathlon 2018
  • BOINC Pentathlon 2019
  • SETI@Home Wow!-Event 2019
  • SETI@Home Intel-Race II
  • BOINC Pentathlon 2020
  • THOR Challenge 2020
  • BOINC Pentathlon 2021
Aus Intels sich ist wohl jeglicher Wettbewerb Ursache für eine Minimierung des Gewinnes und deshalb äußerst unerwünscht ....ohne WB könnte sehr viel Geld gespart werden. Vermutlich hätten wir dann alle gaaaanz tolle P4 für genausoviel Kohle wie MHz...

Aus diesem Grunde habe ich stark eingeschränkte Sympathien für Monopolisten aller Art - da macht sich so eine unsympatische Arroganz der Macht breit:[
 

Twodee

Lord of the Stats, Special, ,
Mitglied seit
18.09.2006
Beiträge
13.778
Renomée
389
  • RCN Russia
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2012
Aus Intels sich ist wohl jeglicher Wettbewerb Ursache für eine Minimierung des Gewinnes und deshalb äußerst unerwünscht ....ohne WB könnte sehr viel Geld gespart werden. Vermutlich hätten wir dann alle gaaaanz tolle P4 für genausoviel Kohle wie MHz...

Aus diesem Grunde habe ich stark eingeschränkte Sympathien für Monopolisten aller Art - da macht sich so eine unsympatische Arroganz der Macht breit:[

dem stimem ich ja auch zu, nur geht es hier um das "darf Intel es oder darf Intel das nicht" und ich bin der Meinung, das Intel es darf (damit meine ich die Compilersache).
 
Oben Unten