Architekturunterschiede bei CPUs -> Leistungsunterschiede?

M

micha`

Gast
Hallo zusammen,

ich habe mal eine ganz grundlegende Frage, die mir google leider unzureichend beantworten konnte. Es geht um Leistungsunterschiede zwischen AMD und Intel CPUs - z.B. in Spielen. Man hört immer wieder mal, dass Software X oder Spiel Y unter AMD weniger Leistung bringt. Bisher war ich immer der Annahme, dass das eben Software ist, die hauptsächlich auf wenigen (oder gar nur einem) Kern läuft und AMD z.B. mit Ryzen CPUs aufgrund der etwas geringeren IPC und der geringeren Taktrate das nachsehen hat. Gibt es jedoch auch die Möglichkeit, dass Software aufgrund unterschiedlicher CPU-Architektur langsamer läuft - sozusagen nicht auf AMD optimiert ist? Ich mein von Grafikkarten kennt man das ja, und im Zweifel kann mit aktualisierten Treibern entgegengesteuert werden, aber ist das auch bei CPUs möglich?



Besten Dank für euren Input!
 
  • Gefällt mir
Reaktionen: micha`
Auch die Größe, Bandbreite und Latenz von Caches sind ein Punkt, an dem unterschiedliche Software unterschiedlich darauf reagiert.
 
  • Gefällt mir
Reaktionen: micha`
jedenfalls weit zu komplex, um es inn einem thread sinnvoll abzubilden
du kommst ums googeln und viel lesen ned herum
 
Die Stichpunkte wurden ja schon genannt.

Software kann auf verschiedene Cache Größen optimiert sein, auf die Anzahl der Kerne und Threads und eben auch auf Befehlssätze.

Eine gut optimierte Software sollte bei der Entwicklung die möglichen Befehlssätze ausprobiert haben und die schnellsten je nach Intel oder AMD CPU nutzen.

Oft wird das nicht gemacht und teilweise sogar absichtlich das langsamste gewählt.....da gab es mal eine Skandal wo Intel dahinter steckte, das nur auf Intel CPUs der schnelle code läuft und für andere CPUs der langsamste.

AMD hat sicherlich nicht zufällig bei Ryzen die gleiche L3 Chache Größe je Kern wie Intel gewählt.....da passen sie sich an das an, auf das Optimiert wird.

Bei den Befehlssätzen glaube ich nicht, das da jemand durch blickt, der Spiele oder so programmiert....da gibt es so viel, das kann niemand überblicken, aber es gibt teilweise Auffälligkeiten, das bestimmte Spiele Engines einfach besser auf Intel laufen....da will ich auch keine Absicht unterstellen, es wird einfach auf den Big Player optimiert sein und AMD ist das nunmal nicht.

Und dann ist da die Sache mit der Lastverteilung.
Erkennt die Software HT oder SMT? Schafft sie es wenn möglich keine Last auf zwei Threads zum selben Kern zu legen?

Kennt die Software AMDs CCX Konzept und hält Aufgaben, die niedrige Latenzen untereinander bevorzugen innerhalb eines CCX?

Kennt die Software Intels Mesh Konzept für die Enthusiast CPUS?

usw.....
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: micha`
latency-pingtimes.png


Nur mal ein Aspekt, das Bild zeigt die Ping-Times zwischen verschiedenen Kernen von verschiedenen Architekturen.

Man sieht: Bei Intel ist auf den Enthusiast Plattformen die Pingtime zwischen allen Kernen recht hoch. Aber dafür gleichmäßig. Beim 7700k ist sie sehr niedrig (aber der hat nur 8 loigische Kerne).

Bei AMD: Von Kern 0 bis Kern 7 ist die Pingtime bei AMD deutlich niedriger als bei Intel (sogar leicht niedriger als beim 7700k). Also top Geschwindigkeit, wenn etwas zwischen Thread 0 und Thread 1 bis 7 ausgetauscht werden muss, ist AMD am schnellsten. Wenn von Kern 0 aber auf Kern 8 zugegriffen werden soll, wird die Pingtime auf einmal abartig hoch. Warum? AMD hat ein CCX Design bei dem immer 4 physische Cores (also 8 logische Cores) sehr eng miteinander verbunden ist und immer zwischen jeweils diesen 4er Blöcken eine langsame Verbindung besteht. Ist einfacher zu fertigen und dadurch kann man auch recht günstige CPUs mit vielen Kern herstellen. Und wenn man sauber programmiert, ist es auch nicht langsamer unter den meisten Anwendungen.

Wenn man also so programmiert dass es optimal auf AMD läuft, dann sorgt man dafür, dass immer nur Daten innerhalb eines 4er Blocks hin und hergeschoben werden. Um die Pingtime gering zu halten.

Wie sorgt man dafür, dass etwas auf AMD absichtlich schlecht läuft? Indem man viel zwischen den Threads verschiebt und zwar möglichst über mehr als 7 Threads hinweg, dann geht man auf Nummer sicher dass es immer über ein CCX drüber muss. Und senkt dadurch absichtlich die Performance auf AMD CPUs.

Wird das aktiv gemacht? Keine Ahnung.

Nur als Hinweis: Nvidia hat über sein Gameworks Programm in manche Spiele unsichtbare Texturen unter Wasser eingefügt und auf diese Texturen hohe Tesselation ausführen lassen. Völlig sinnlos, warum wird eine unsichtbare Textur tesseliert, bringt ja nichts. Antwort: Nvidia GPUs hatten bessere Tesselation als AMD GPUs, also wurden durch solche Maßnahmen Nvidia GPUs um 5% langsamer, aber AMD um 30% langsamer, wodurch Nvidia in Benchmarks wieder gewonnen hat (zu Lasten aller Kunden, denn es wurde ja auch bei Nvidia Kunden Leistung gestohlen). Kann ich mir vorstellen, dass Intel solche Tricks ebenfalls anwendet um AMD CPUs auszutricksen? Durchaus. Habe ich Beweise dafür: Nope.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: smart-, micha` und Baal Netbeck
Besten Dank für euren Input! Sehr interessante, und nachvollziehbare, Ausführungen dabei - und auch wenn es immer nur Teilaspekte betrifft hilft das ungemein weiter.
 
JohnVescoya schrieb:
Nur als Hinweis: Nvidia hat über sein Gameworks Programm in manche Spiele unsichtbare Texturen unter Wasser eingefügt und auf diese Texturen hohe Tesselation ausführen lassen. Völlig sinnlos, warum wird eine unsichtbare Textur tesseliert, bringt ja nichts. Antwort: Nvidia GPUs hatten bessere Tesselation als AMD GPUs, also wurden durch solche Maßnahmen Nvidia GPUs um 5% langsamer, aber AMD um 30% langsamer, wodurch Nvidia in Benchmarks wieder gewonnen hat (zu Lasten aller Kunden, denn es wurde ja auch bei Nvidia Kunden Leistung gestohlen). Kann ich mir vorstellen, dass Intel solche Tricks ebenfalls anwendet um AMD CPUs auszutricksen? Durchaus. Habe ich Beweise dafür: Nope.

Sehr gute Anmerkungen. Beweise? -> Siehe letzten Intel CPU Benchmark...
Gibt auch genug anderes, mal abgesehen von den Deals, bzw. Verurteilungen die Intel schon ereilt hat.
 
JohnVescoya schrieb:
Nvidia hat über sein Gameworks Programm in manche Spiele unsichtbare Texturen unter Wasser eingefügt und auf diese Texturen hohe Tesselation ausführen lassen.
Hast Du dafür eine Quelle? Ich habe gedacht, dass das nur bei einem Spiel, nämlich Crysis 2 mit dem Wasser war und dass dieser Bug, der mit nVidia nix zu tun hatte, gefixt wurde.

Dass den Herstellern durch Gameworks generell in den Spielen dieses Wasser untergejubelt wurde, konnte ich nirgendwo lesen.

Danke
Zero
 
@micha`

Bei Artikeln zum Thema immer kurz die Aktualität kontrollieren und die Quellen kurz anschauen.

Vieles ist in den Bereich relativ kurzlebig und ändert sich mit der nächsten Compiler Version oder der nächsten Version einer verwendeten Library usw. .

Falls du die Zeit und Lust hast, ruhig mal ein wenig selbst herumprobieren.
 
Wie auch @ZeroZerp würden mich Beweise für deine Aussage, @JohnVescoya , sehr interessieren.

Bei Crysis 2 war das Wasser tesseliert, aber dadurch, dass es sich eben größtenteils unter dem Terrain befand, eben nicht sichtbar und dementsprechend sollte die Rendering-Pipeline der GPU das bereits frühzeitig "verwerfen".
 
abgesehen von einem *bestimmten* beispiel, wo es stimmen kann oder auch ned

wahr ist sicher: geschäft ist krieg, es wird alsom generell nix, aber auch garnix zu mies sein, um nicht zumindest probiert zu werden.
und es ist egal ob es "durchgeht", laufen genug intrigen, funktionieren von der quote "ausreichend"
 
Ich habe gerade nochmal etwas in diversen Seiten und Foren gesucht und paar Threads quergelesen und bin mir jetzt relativ sicher, dass ich so etwas einmal gelesen habe, aber finde mittlerweile gar nichts mehr dazu. Entweder meine Wahrnehmung hat mich da betrogen oder das Thema basierte nur auf Behauptungen ohne Beleg. Also: Ziehe meine Behauptung mit der Unterwasser Tesselation zurück. Da habe ich Scheiße erzählt und hatte Sachen im Kopf die es wohl nie gab. Sorry!
 
@JohnVescoya
Ganz so abwegig wäre das ja nicht und ganz so daneben liegst Du ja nicht- Wenn man bedenkt, was für Default- Werte für Tesselation bei einigen Spieleherstellern (unnötigerweise) oftmals eingestellt wurden (Witcher 3). Da hatte AMD einen klaren Nachteil mit absolut nichtiger Qualitätssteigerung der Optik. Da weiss man zwar nicht, wer da unsauber gespielt hat (Spielehersteller/nVidia). Dennoch war das AMD gegenüber eine Sch...aktion.

Hätte mich nur gewundert, dass man davon dann doch verhältnismäßig wenig mitbekommen hätte, wenn sich nVidia sowas (heimlich mit Gameworks Funktionen eine offensichtliche Bremse für die Konkurrenz unterzujubeln) tatsächlich geleistet hätte.

Das wäre dann sicher ein neues XY- Gate geworden.
Wie gesagt- Hab auch im Netz gewühlt und nix gefunden...

Grüße
Zero
 
man kann sowas in den seltensten fällen *belegen*
drum habe ich es oben etwas allgemeiner formuliert.
/machiavelli mode off
 
War glaube ich nur bei Crysis 2 mit dem Wasser.....aber auch mit den absurd tesselierten Barikaden...ein Bug war das bestimmt nicht:

Aber mit nur zwei Anbietern, wird man nie ein unschuldiges Unternehmen finden.

AMD hat auch erst kürzlich wieder eine Grafikkarte mit irreführendem Namen veröffentlicht......hat sicherlich auch ab und gecheated.
Intel und Nvidia sicherlich mehr aber sie können es sich halt auch eher leisten.

Man muss sich davon verabschieden, das in dem Bereich mit fairen Mitteln gekämpft wird...wo sich die Möglichkeit ergibt, wird betrogen.
 
Zurück
Oben