[Leserbericht] Warum Blender (vermutlich) nicht auf Zen optimiert ist

Oromis16

BIOS-Overclocker(in)
Warum Blender (vermutlich) nicht auf Zen optimiert ist

- Einleitung
- AMD und die BlenderFoundation
- Testsystem
- Benchmarks
- Fazit

Hinweis: Dieser Test ist auch als Videofassung verfügbar.

Einleitung
Selten gab es so unerwartete, erfreuliche Nachrichten in der Technikwelt wie letzte Woche. Vollkommen unangekündigt präsentierte AMD im Hotel gegenüber des IDF ein Zen Enginering Sample auf 3.0 Ghz.
Und damit nicht genug, nein, obendrein schnappte sich die Chipschmiede einen Broadlwell-E-Achtkerner, der ebenso auf 3.0 Ghz (herunter-)getaktet wurde, und lies die beiden in Blender gegeneinander antreten. Das Verblüffende war: AMDs Prozessor war schneller, wenn auch nur knapp.
Diese prinzipiell ausgesprochen erfreuliche Nachricht für den CPU-Markt, der durch einen Leistungsgleichstand wieder ein Stückchen Stabilität bekommen würde, wurde natürlich direkt von der Fachpresse aufgegriffen und weiterverbreitet.
Selbstverständlich dauerte es auch nicht lange, bis erste Kritiker sich zu Wort meldeten und - mal mehr und mal weniger fundiert - ihren Missmut bezüglich des Benchmarks kundtaten.
Solche Einwände sind natürlich vollkommen berechtigt, da vom Hersteller präsentierte Benchmarks das Ziel haben die glänzende Seite des eigenen Produkts zu zeigen, dennoch ist gerade dieses hier von AMD gezeigte Ergebnis nicht vollkommen nutzlos - denn Blender ist ein Open Source Programm mit inzwischen riesiger Community.


AMD und die BlenderFoundation
Die Entwicklung von Blender wird von der BlenderFoundation und deren Leiter Ton Roosendaal kontrolliert. Da Blender komplett Open Source ist, ist die Software auf Spenden von Nutzern und Firmen angewiesen.
Einige Nutzer wiesen berechtigt darauf hin, dass AMD die BlenderFoundation in der Vergangenheit bereits mit der Arbeit eines Entwicklers unterstützte und vor kurzem eine erneute Unterstützung zugesagt wurde.
Da alle Änderungen an Blender offengelegt werden, lassen sich diese recht leicht nachvollziehen. Der Entsprechende heißt George Kyriazis und meldete sich am 27. Oktober 2014 erstmals bei den Entwicklern von Blender: [Bf-cycles] OpenCL and AMD GPUs
Nun hätte Herr Kyriazis natürlich auch andere Dinge als nur den OpenCL-Kernel ändern können (zur Erklärung: Bei Blender laufen CPUs auf C++, AMD GPUs auf OpenCL und Nvidia GPUs auf Cuda). wie seine Chronik auf developer.blender.org zeigt hat er das aber nicht getan: ♟ kyriazis

Des Weiteren sprach Ton Roosendaal bei der Ankündigung ganz klar davon, dass AMD zwar in der Tat erneut einen Entwickler bereitstellen wird, dieser sich aber wieder (nur) mit OpenCL befassen wird.
[Quelle: SIGGRAPH 2016 report - blender.org - Home of the Blender project - Free and Open 3D Creation Software ]


Testsysten
Verwendet wurde das von früheren Tests bekannte Testsystem:
A8 7670K: 2x8Gb 2133Mhz, IGP, Asrock FM2A78M-ITX, Samsung 840 Pro 128Gb
i7 5820K: 4x8Gb 2133Mhz, R9 380 Nitro, MSI X99S Sli Plus, Samsung 850 Evo 512Gb


Benchmarks
Es wäre natürlich prinzipiell möglich, dass Blender bereits jetzt schon ausgesprochen gut mit AMD-CPUs funktioniert - nur welchen Nutzen hätte das? Zen ist im Gegensatz zu allen bisherigen Prozessoren von AMD ein SMT-Design, das mit Bulldozer und dessen Nachfolgern nicht viel gemeinsam haben wird. Der nächste Verwandte der 'neuen Architektur' wird vermutlich Jaguar sein, doch liegt der Fokus der Entwickler nicht auf einem Low End Chip der ausschließlich als APU mit 128 Shadern daherkommt und damit bereits Mühe hat Blender arbeitstauglich laufen zu lassen.

Für die die sich nun doch denken, Zen könne in gewissen Teilen auf Bulldozer aufbauen, habe ich einige Benchmarks durchlaufen lassen. Aufgeführt sind mehrere Raytracer auf einem A8 7670K [Steamroller] und einem i7 5820K [Haswell-E].
benchmark-png.911837

Genaue Ergebnisse <> Testszene
Wie unschwer zu erkennen ist liegt AMD in Blender im Vergleich zu anderen Raytracern gegenüber Intel hinten. [Relevant ist der blaue Balken: Je weiter rechts der blaue Balken endet desto besser kommt Intel im Verhältnis zu AMD zurecht]
Ein Grund dafür ist vermutlich, dass die meisten Cycles-Entwickler Intel-Systeme verwenden und dementsprechend am leichtesten auf diese optimieren können.

Natürlich ist meine Benchmarkszene für Blender nicht exakt identisch mit der von AMD, diese wurde bestmöglich anhand von den im Video ersichtlichen Informationen [Auflösung, Anzahl der Eckpunkte, Blenderversion] nachkonstruiert: Klick

Ein weiterer Kritikpunkt war, dass das Intel-System durch den Speicherausbau limitiert wurde: Der Broadwell-E der zum Einsatz kam hatte, wie Zen, nur zwei statt Module verbaut, Intels Model könnte aber vier davon ansteuern.

speicherbandbreite_v2-png.911838


Wie leicht zu sehen ist, gibt es hier keinen verwertbaren Unterschied. Blender scheint nicht (so) stark auf Speicherbandbreite anzuspringen. [Bei einer Szene mit ~260K Vertices und einer einzigen Textur ist das auch kein Wunder]

Des Weiteren wies ein Intel Mitarbeiter darauf hin, dass Blender nicht auf allen CPUs den gleichen Code ausführen würde und dementsprechend ein Vergleich unfair wäre. Er hat zwar damit vollkommen recht, jedoch zieht in diesem Fall Intel daraus Vorteile und nicht AMD: Blender entscheidet beim Rendern welche Chipsatzerweiterungen aktiviert werden. So wirdAVX2 beispielsweise wird unterstutzt - eine Erweiterung die Broadwell-E hat, Zen aber nicht - und bringt einige Prozent an Mehrleistung: https://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.72/Cycles

Fazit
Natürlich ist es möglich, dass AMD einen Weg gefunden, hat Blender so hinzubiegen, dass Zen wesentlich besser da steht als Broadwell-E. Wahrscheinlich ist das aber zumindest im Hinblick auf aktuelle Modelle des Herstellers nicht. Eben so unwahrscheinlich ist es, dass Broadwell-E durch die fehlenden zwei Riegel maßgeblich an Performance verloren hat.


Nachwort
Natürlich stehe ich für weitere Fragen zum Thema zur Verfügung.
[Und selbstverständlich auch für Fragen und Kritik]
 
Zuletzt bearbeitet:
Das ist natürlich doof :( Da ich auch ab und an mal mit Blender arbeite fahre ich also auch in Zukunft mit einem Intel besser.
 
Auf zen freu ich mich jedenfalls schon.

Dass es wie damals der A64 ein "Hammer" werden könnte, würd ich aber eher noch als unbegründeten und überzogenen Hype sehen.

@PCGH: Habt ihr schon ein Testmuster? :ugly:

EDIT:
Das ist natürlich doof :( Da ich auch ab und an mal mit Blender arbeite fahre ich also auch in Zukunft mit einem Intel besser.

Würd aber wiederrum für Zen sprechen, wenn Blender besser auf Intel optimiert ist.
 
@Malkolm
Da würde ich bei Zen erst mal auf Benchmarks warten. Es kann ja sein, dass trotz der Intel-Optimierung Zen am Ende besser dasteht (pro Geld)
 
Mal sehen, was ein kommender PCGH-Test zu Thema Dualchannel und Untertaktung beim Broadwell-E sagt.
 
Rundumschlag-Update bei der Rechtschreibung, da hat die Eile des Schreibens gestern ihren Tribut genommen :D
 
Kriegst nen Like. :)

Woher kommt eigentlich das Gerücht, dass Zen kein AVX 2 können soll? Hat AMD dazu irgendwas bestätigt? Denn schon Excavator kann AVX 2.
(Und nein, das ist nicht dasselbe wie 256 Bit-AVX-Befehle, die mit AVX 1 eingeführt wurden und die auch auf jeder AMD-CPU seit Bulldozer laufen)
 
Joa, AVX-512 ist aber auch ein eigener Befehlssatz bzw. eher ein Satz von Befehlssätzen, weil Intel offenbar gerne alles gerne so kompliziert wie möglich macht. Den Nutzen in Desktop-CPUs halte ich aber ohnehin für eher begrenzt, besonders in Desktop-Chips.

Aber auch laut dem hier soll Zen AVX2 können, und es wäre schon dämlich, wenn der Compiler Befehle generiert, die die CPU am Ende gar nicht unterstützt. :ugly:

Aber das ist auch so ein Punkt, warum Blender selbst zwar nicht Zen-optimiert sein muss, die Binary es aber durchaus sein könnte. Man kann ja für jeden Build eine Architektur spezifizieren, auf die optimiert werden soll, die Vorteile hängen da stark vom Programm ab und davon, wie gut die CPU mit dem Standardcode klarkommt. Bei dem Leistungsvergleich wissen wir im Grunde nur, dass Zen unter irgendwelchen Bedingungen, die den Intel-Chip mutmaßlich nicht zu sehr benachteiligen, etwa so flott ist wie der 3 GHz-Broadwell.
 
Manche haben aus AMD echt noch nichts gelernt. Deren Werbe und Presse Abteilung übetreibt es manchmal maßlos.

Ich erinnere mich nur zugut Bei der FuryX Präsentation.
Zitat "Wir haben die schnellste Grafikkarte auf dem Markt"
Das Ende vom Lied kennt jeder: AMD kam kaum mit der GTX TitanX/980TI mit.

Klar es wäre schon wenn Zen gleich/schneller als Broadwell ist. Allerdings glaube ich nicht daran
 
@VikingGe
Bei AVX2 hab ich mich an PCGH gehalten, die haben das afaik im Frühjahr berichtet und fortan übernommen.
Der Teil der AVX2-Aussage der sich auf die Intel-Optimierung bezieht ließe sich aber ggbf. auch umformulieren: Während AVX2 (2013, bislang nur Intel) bereits seit 2014 implementiert ist fehlt FMA4 (2011, bislang nur AMD) bis heute
 
Da hängt es dann wohl wie bei Cuda/OpenCL davon ab, was die Programme einsetzten werden.

Man kann ja für jeden Build eine Architektur spezifizieren, auf die optimiert werden soll, die Vorteile hängen da stark vom Programm ab und davon, wie gut die CPU mit dem Standardcode klarkommt.
Normalerweise wird aber für Intel x86 bzw. x86-64 kompiliert.
 
Man kann natürlich eine eigene Version kompilieren und alles verändern was man grad so möchte, ich kann für meine Tests aber nur von der Standardversion von Blender.org ausgehen.
 
Ich bin zwar gerade etwas am Leichenschänden und habe es vielleicht übersehen - aber mithilfe welches Betriebssystemes sind die Tests entstanden?
 
Puhhh, der Test ist lang her :wow:
Win 7 Prof oder Win10, beide das gleiche, aber welches weiß ich nicht mehr :(

[Ich unterstelle mir an dieser Stelle, dass ich professionell genug war und Win 10 genommen habe ;) ]
 
Okay, ich meine mich nämlich erinnern zu können, dass vor allem die AMD CPUs unter Linux einiges an Geschwindigkeit zulegen können ;)
 
Zurück