Iscaran schrieb:
Nochmal für alle die die Diskussion verfolgen meine Behauptung ist - das schlechte abschneiden von Ryzen in x265 hat NICHTS aber auch gar nichts mit der Architektur zu tun.
sonst müsste er im Handbrake h265 genauso schlecht sein.
Handbrake nutzt die freien x265 Bibliotheken und h265 ist der zugehörige Standard. Das was du da schreibst ergibt entsprechend keinen Sinn. Ryzen liefert in Handbrake unter Nutzung der x265 die Leistung ab die er liefert. Wobei die AVX2 Codepfade intensiv genutzt werden und da liefert Zen einfach genau die ~50% je Kern/Takt im vergleich zu aktuellen Intel CPUs ab die anhand der Architektur im Mittel zu erwarten sind. Das wurde dir mehrfach erklärt, und du behauptest immer noch, fest vom Gegenteil überzeugt zu sein.
Wenn dich der Unterschied zu Intel CPUs bei Verwendung der x264 / x 265 Bibliotheken stört, das ist leicht zu begründen. x265 Iteriert einfach wesentlich häufiger über Schleifen, die fleißig vektorisiert werden. Entsprechend steigt die Ausführungszeit, die die CPU mit AVX-lastigem Code zubringt. Entsprechend ist bei x265 jene CPU im Vorteil, die unter diesen Bedingungen mehr Durchsatz bietet. Bei x264 die anteilige Zeit, die mit AVX-lastigem Code zugebracht wird entsprechend kleiner. Aus veränderten Bedingungen resultieren andere Laufzeiten.
Aber ich glaube mittlerweile, du bist Fakten nicht mehr zugänglich.
###########
Anmerkung zur "uralten" Version von GCC: Solang man nicht -march=znver1 setzt sind die Optimierungen vom GCC für Zen reichlich egal. Nur setzt man bei Software die auf allen Plattformen laufen soll kein "-march" um auf eine einzige, spezifische Architektur optimiertes Binary zu enthalten. Standard ist ein -O2 zu setzen, damit generischen x86 kompatiblen Code zu erzeugen und fertig. Aggressivere optimierungen wie -O3 und eben das setzen von -march= zum erzeichen von Plattform spezifischen Binaries macht man nur, wenn man es sehr gut begründen kann (In der Regel mit Geld, 10% Performancegewinn wenn die Stunde im Rechenzentrum ab 10.000€ kostet rechtfertigt den erhöhten Aufwand beim Testen, Entwickeln und Debug).
Wenn sie wollen können die Zweifler sich da die neuste Version vom GCC holen und selber mal probieren wie groß der Unterschied zwischen
-O2
und
-O2 -march=znver1
ist. Fairerweise gehört ein Vergleich mit Kabylake / Skylake gemacht mit je -O2 und -O2 -march=skylake .
Oder auch beliebige andere Compiler, VisualStudio hat für Zen gepatchte Compiler dabei, Clang dürfte mittlerweile auch soweit sein. Nur zu und fröhliches Experimentieren.
Oder lernt halt gleich Assembler bis zum Level von AVX2.
########################
Der Vergleich der x264 / x265 Bibliotheken zu anderen Encodern wird vor allem Aufzeigen, dass die Encoder stark unterschiedlich gestaltet sind. Die Entwicklergemeinde um die x-Bibliotheken findet Qualität oft wichtiger als Geschwindigkeit und wenn Kompromisse eingegangen werden müssen schlagen die meist in die Richtung, dass man aufwendigere, qualitativ bessere Methoden wählen kann. Die zukünftigen CPUs werden ja sowieso immer leistungsfähiger, Qualitätsverluste lassen sich aber nachträglich nicht mehr kompensieren. Wohingegen kommerzielle Encoder mitunter mit einer hohen Geschwindigkeit werben, was all zu oft zu Lasten der Qualität wie auch Datenrate geht.
Wenn entsprechend ein anderer Encoder andere Verhältnisse in der Performance aufzeigt, dann zeigt das einfach nur, dass die Dinger anders agieren.
Was uns zurück zu diesen Mikrobenchmarks bringt. Die sind in ihrem Ablauf so strikt definiert, dass sie unter allen Umständen immer die selben, begrenzten Aussagen zulassen. Denn auch die simpelsten realen Anwendungen sind bei Zeiten in ihrem Laufzeitverhalten so komplex, dass es bei Zeiten unfassbar kompliziert wird.