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 Derblü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 Entwickler heißt George Kyriazis und meldete sich am 27. Oktober 2014 erstmals bei den Entwicklern von Blender:
https://lists.blender.org/pipermail/...er/002115.html
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:
https://developer.blender.org/p/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 mit OpenCL befassen wird.
[Quelle:
https://www.blender.org/media-exposu...h-2016-report/ ]
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].
http://img.tweakpc.de/images/2016/08/23/Benchmark.png 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.
http://img.tweakpc.de/images/2016/08/24/ZEN.jpg
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.
http://img.tweakpc.de/images/2016/08...dbreite_v2.png
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 wird AVX2 beispielsweise unterstützt - eine Erweiterung die Broadwell-E hat, Zen aber nicht – und bringt einige Prozent an Mehrleistung:
https://wiki.blender.org/index.php/D...es/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
Selbstverständlich stehe ich für Kritik und weitere Fragen zum Thema zur Verfügung.