Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
NewsAMD Zen 4: GNU Compiler Collection mit Tuning für Ryzen und Epyc
Prozessoren der Serien AMD Ryzen und AMD Epyc auf Basis der Zen-4-Mikroarchitektur können mit dem Release der kommenden GNU Compiler Collection (GCC) in der neuen Version 13 von diversen Optimierungen Gebrauch machen, welche unter anderem die Befehlssatzerweiterung AVX-512 und die Zen-4-Befehlssatzarchitektur betreffen.
Vor allem für den Benchmarkbalken wäre es bei Release gut gewesen, aber für gewöhnlich vergehen da Jahre. Viele Projekte nutzen noch QT < 5.12. Ein Compilerwechsel kann da durchaus sogar noch länger dauern.
In der commit message ist ein typo. Sollte wohl 'scatter instructions' heißen. Aber wenn ich mir meine eigenen commit messages so anschaue sind die auch nicht gerade fehlerfrei.
Ich habe keine weitreichenden Statistiken aber zumindest bei uns wird überall Clang eingesetzt statt GCC (weil einfacher mit Lizenzen) und ich vermute dass es in den meisten kommerziellen Fällen ähnlich ist. Und clang unterstützt Zen 4 Instructions schon seit einem Monat.
Geht es um Optimierungen mittels GCC kompilierten Programmen für Zen 4 oder um Performanceoptimierungen von GCC für Zen 4 CPUs?
Letzteres wäre ja eher uninteressant.
Vor allem für den Benchmarkbalken wäre es bei Release gut gewesen, aber für gewöhnlich vergehen da Jahre. Viele Projekte nutzen noch QT < 5.12. Ein Compilerwechsel kann da durchaus sogar noch länger dauern.
Ich weiss nicht, wie die versionsübergreifende Code-Integrität bei Qt ist, da ich persönlich GTK nutze (sowohl zum Coden, als auch generell als Desktop-Grundlage), aber hier ist es so, dass sich zum Major-Versionssprung von z.B. GTK3 auf GTK4 unter der Haube viel geändert hat, was einen Merge vorhandener Projekte teils ziemlich erschwert. Deswegen ist es auch in der GTK Welt so, dass auch heute noch viele Tools auf GTK3 setzen, da ein Upgrade teils mit massivem Refactoring verbunden ist (habe den Krampf in eigenen Projekten schon mitgemacht). Und solange der Support der Vorversion noch gewährleistet wird.... Why not... Und das sind nur Frameworks und Libraries....
Compiler und deren Programmiersprachen sind da nochmal ein ganz anderes Level.... Und wie im Artikel ersichtlich ist, kommt hier noch erschwerend hinzu, dass die Entwickler nur sehr ausgedünnten Support für die (neue) Hardware erhalten, wodurch Reverse Engineering und viel Eigeninitiative von Nöten sind, was sehr viel Zeit in Anspruch nimmt- und ins Land fliessen lässt...
Im Nachgang kommen dann auch hier dieselben Probleme zum Tragen, die ich bzgl. Frameworks oben angeschnitten habe, weswegen in den meissten Distributionen, per Default, so gut wie nie aktuelle Compiler-Versionen enthalten sind..... Ist halt alles nicht so einfach, wie man denkt..... :-)
Ich habe keine weitreichenden Statistiken aber zumindest bei uns wird überall Clang eingesetzt statt GCC (weil einfacher mit Lizenzen) und ich vermute dass es in den meisten kommerziellen Fällen ähnlich ist. Und clang unterstützt Zen 4 Instructions schon seit einem Monat.
In dem letzten C++ Projekt, an dem ich mitarbeitete, bauten und testeten die Buildserver unter Windows, Linux und MacOS. GCC, Clang ICC und Ninja (VS), jeweils mehrere verschiedene Versionen.
In dem letzten C++ Projekt, an dem ich mitarbeitete, bauten und testeten die Buildserver unter Windows, Linux und MacOS. GCC, Clang ICC und Ninja (VS), jeweils mehrere verschiedene Versionen.
Vlt verstehe ich was falsch aber ich dachte hier geht es nur um die CPU-spezifischen Optimierungen, d.h. für den Fall, dass man für seinen PC kompilieren und der auch nur darauf laufen soll. Mit der kompletten Architektur als Target müsste es eigentlich schon ab Release gehen
Vlt verstehe ich was falsch aber ich dachte hier geht es nur um die CPU-spezifischen Optimierungen, d.h. für den Fall, dass man für seinen PC kompilieren und der auch nur darauf laufen soll.
Laufen wird der Code auch mit älteren Compilern auf neuerer Hardware, sofern ältere Instruction Sets nicht wegrationalisiert wurden... Die neuen liegen dann halt brach, was nachteile bringen kann....
JunkScore schrieb:
Mit der kompletten Architektur als Target müsste es eigentlich schon ab Release gehen
"Gehen" ja...Aber ein Pentium 3 gehört z.B., wie auch ein i9 13900K, zur Architektur x86 beinhaltet aber beileibe nicht dasselbe verfügbare Instruction Set..... Das heisst: Du kannst auf einem aktuellen i9 auch Software mit einem Compiler aus P3-Zeiten bauen, wie sinnvoll das ist, sei aber mal dahingestellt, da Du viele Neuerungen, die die Hardware bietet, softwareseitig nicht nutzen kannst.....
Vlt verstehe ich was falsch aber ich dachte hier geht es nur um die CPU-spezifischen Optimierungen, d.h. für den Fall, dass man für seinen PC kompilieren und der auch nur darauf laufen soll. Mit der kompletten Architektur als Target müsste es eigentlich schon ab Release gehen
Jein. Was hindert jemanden daran, ein Programm - zum Beispiel eine Bibliothek für mathematische Berechnung - als kombilierte .DLLs bzw. .SO Dateiein, optimiert auf jeweils andere Architektur, bereitzustellen.
Die Unterschiede sind da teils beträchtlich.
Auf godbolt.org kann man sich den kompilierten Maschinencode für unterschiedliche Compiler ansehen. Sehr lehrreich.
Traurig eine Ryzen 7600x mit Zen3 Instructions laufen lassen zu müssen.
Wenn die Gentoo Wiki auf znver3 verweist, werde ich keine Experimente eingehen.
Ergänzung ()
ToflixGamer schrieb:
Also für den "Normalnutzer" (Gaming, etc.) ändert sich jetzt nichts, hab ich das richtig rausgelesen?