[Blender] Cycles dank AMD Entwicklern verbessert, AMD Grafikkarten nun auch nutzbar

Oromis16

BIOS-Overclocker(in)
Die beliebte Cycles-Renderengine, die seit Version 2.61 in der Open-Source Software Blender enthalten ist wurde von Mitarbeitern von AMD wie bereits im Oktober 2014 angekündigt erheblich verbessert, indem der große Kernel der Engine in mehrere kleinere aufgespalten wurde.
Bei der ersten Implementierung der Nutzbarkeit von GPUs traten hierbei bei AMD große Probleme auf, da die Chips nicht richtig mit dem Kernel arbeiten konnten, weil er zu groß war. Dieses Problem wurde zwar mit einem Treiber (13.10) teilweise gelöst, dennoch traten oftmals Abstürze auf und die Performance lies zu wünschen übrig, was viele Nutzer zur Verwendung von Luxrender bewegte, wo AMD-Grafikkarten ihre Kraft voll entfalten konnten.

Die Aufspaltung des Kernels behebt dieses Problem für diese und soll außerdem auch die Performance auf Grafikchips der Konkurrenten NVidia und Intel verbessern.

Aktuell befinden sich die Verbesserungen in der Testphase. Wie wahrscheinlich es ist, dass sie noch in die kommende Version 2.74 integriert werden wurde bereits bei Thomas Dinges angefragt.


Nachtrag:
Thomas Dinges: "2.75 erscheint mir möglich, aber ist abhängig davon wie viel Korrekturen nötig sind. Wird das Review in den kommenden Tagen Zeigen."
Aber eine Testversion kann man bereits runterladen: https://www.blendpolis.de/viewtopic.php?f=37&t=33775&p=522396#p522410

Nachtrag 2:
Eine Mail von Ton Roosendaal, dem Gründer und Leiter der Blender Foundation
Mail im Spoiler:
Hi all,

A couple of developers in AMD have been working for many months with trying to get smaller OpenCL kernels for Cycles. Yesterday they've posted their patch for review:

https://developer.blender.org/D1200

Doc:
https://docs.google.com/document/d/1LuXW-CV-sVJkQaEGZlMJ86jZ8FmoPfecaMdR-oiWbUY/edit

Whatever the outcome is, I'd like to express my thanks to AMD and George Kyriazis for their efforts. A corporate contribution to Blender of this scale is unique in our history. I hope it will be an inspiration for others to consider to help us out as stakeholders as well!

Laters,

-Ton-
Er spricht darin seinen Dank an die Mitarbeiter von AMD für ihre Mühen aus. Es gab nie einen derartig großen Beitrag einer fremden Firma an Blender, und er hofft auf weitere derartige Einbringungen.

Nachtrag 3:
Die Implementierung des Patches ist bei 2.75 als Goal eingetragen. Außerdem ist dort auch "OpenSubdiv" gelistet, das die Anwendung von "Subdivision Surface" auf Grafikkarten ermöglicht.
Blenderversion 2.75 wird voraussichtlich Ende Mai erscheinen.

Quelle: wiki.blender.org

Nachtrag 4:
Der erste Release Candidate ist da: http://download.blender.org/release/Blender2.75/
OpenCl ist mit dabei und funktioniert auf meiner HD 7850 (Catalyst 15.5) sehr gut. OpenSubdiv hat es leider nicht reingeschafft und steht auf der "2.76 und später" Liste. Erstaunlicherweise ist die Performance der 7850 allerdings abgesackt, sie ist über den Daumen gepeilt "nur" noch so schnell wie mein 5820K. Laut den Blenderentwicklern gibt es aber noch einen Haufen Optimierungsmöglichkeiten, und der Pitcairn Chip der 7850 basiert auch noch auf GCN 1 mit nur sehr wenigen ACE Einheiten.

Nachtrag 5:
Blender 2.75 ist endlich raus und damit auf gehts ihr AMD-Nutzer! :daumen:
Downloadlink: https://www.blender.org/download/
 
Zuletzt bearbeitet:
@dsdenni
Sag mir bitte wo, denn ich sehe keine größeren sprachlichen Schnitzer oder inhaltliche Fehler.
 
Na endlich! CPUs sind einfach zu langsam. Und es scheint auch auf älteren GraKas zu laufen :D Wahrscheinlich, dass es noch in 2.74 integriert wird ist es aber nicht.
 
Zuletzt bearbeitet:
Weitere Update: Eine Mail von Ton Roosendaal, dem Gründer und Leiter der Blender Foundation
Mail im Spoiler:
Hi all,

A couple of developers in AMD have been working for many months with trying to get smaller OpenCL kernels for Cycles. Yesterday they've posted their patch for review:

https://developer.blender.org/D1200

Doc:
https://docs.google.com/document/d/1LuXW-CV-sVJkQaEGZlMJ86jZ8FmoPfecaMdR-oiWbUY/edit

Whatever the outcome is, I'd like to express my thanks to AMD and George Kyriazis for their efforts. A corporate contribution to Blender of this scale is unique in our history. I hope it will be an inspiration for others to consider to help us out as stakeholders as well!

Laters,

-Ton-
Er spricht darin seinen Dank an die Mitarbeiter von AMD für ihre Mühen aus. Es gab nie einen derartig großen Beitrag einer fremden Firma an Blender, und er hofft auf weitere derartige Einbringungen.
 
Ein kleiner Performancevergleich:
Getestet wurde mit folgender Datei: https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests/cycles/anisotropic.blend
Mit folgenden Einstellungen: 1000 Samples, Standartauflösung

1. Prozessor (i7 5820K gekoppelt mit 16Gb DDR4 Speicher, Referenztakt)
Tilegröße: 32x32
Zeit: 1:48.26

2. Grafikkarte (7850 von Asus, 1Gb Speicher, ganz normaler Referenztakt)
Tilegröße: 256x256
Zeit: 1:16.54

Das ist ein Geschwindigkeitsvorteil von 41,4 % gegenüber dem Prozessor, und das obwohl die Grafikkarte nur einen Bruchteil kostet (390€ zu 150€)


Ein 2ter kleiner Test: Gleiche Szene mit 500 Samples, aber mit Progressive Refine aktiviert, um den Vorschaumodus zu simulieren:
1. Prozessor: 1:24.15
2. Grafikkarte: 0:57.80

Hierbei ergibt sich ein minimal größerer Abstand von 45,6%.

Fazit: Waoh, ich hätte in der Tat nicht erwartet, dass das GPU-Rendering SO schnell geht. Hierbei fände ich einen kleinen Test von PCGH, wo einfach mal ein paar Grafikkarten mit 2-3 Testszenen in einen Topf geworfen werden, klasse, damit die hiesige Renderingcommunity sich darauf einstellen kann, ob eine NVidia oder eine AMD-Grafikkarte für Cycles besser geeignet ist.

Vote for: 270X 280X 290X, 780 Ti, 960, 970, 980
 
Hab mir den Build mal runtergeladen, kann aber nur CPU rendering auswählen. Jemand ne Idee woran das liegen kann?
 
Korrekt, wenn man das direkt beim Start machen möchte kann man sich eine .bat im Verzeichnis der Blender.exe Datei machen. Diese .bat muss wie folgt aussehen:
Code:
set CYCLES_OPENCL_TEST=all
.\blender.exe

Dann einfach Doppelklick auf die .bat und Blender startet automatisch ;)
 
Kann jemand das Probleme der "zu großen Kernel" genauer erklären? Was genau ist da "zu groß"? Ich kenne als Weisheit bei GPU-Compute eigentlich, dass man für brauchbare Beschleunigung große Aufgaben stellen soll.
 
@Olstyle
Nach Aussage von Thomas Dinges zu dem Thema scheinen Grafikkarten allgemein ein Problem mit großen Kernels zu haben, Prozessoren kommen offenbar besser damit zurecht.
Bei AMD ist das Problem anfangs offenbar sehr groß gewesen, vor dem 13.12 Treiber war wie gesagt kein Arbeiten möglich, also handelt es sich dabei wohl um einen Softwarefehler und nicht um einen in der GCN-Architektur.
Im AMD Developer Forum las ich auch ein mal etwas über einen Fehler im OpenCL-Compiler von AMD, wie genau sich dieser auswirkt und ob es wirklich daran liegt kann ich nicht beurteilen, da eine neue OpenCl Version ansteht wird das Problem, wenn es existiert, aber wahrscheinlich ohnehin bald obsolet sein.
Eine Erklärung für die Probleme mit großen Kernels könnte vielleicht die geringe "SingleCore-Leistung" sein, wenn man die Shaderleistung so nennen kann. Das ist aber wirklich nur reine Spekulation.

Thomas sagte auch, dass eine Aufspaltung des Kernels bei allen Grafikkarten einen Geschwindigkeitsvorteil bringen wird, damit hat AMD also auch den grünen einen Gefallen getan.
 
Mir ist halt nicht ganz klar was "Kernel" in dem Zusammenhang meint. Kennen ich sonst nur von Betriebssystemen. Wenn ein "Kernel" hier einen Rechenthread bedeutet dann hilft es natürlich da viele von zu haben. Wenn ein "Kernel" aber eine Rechenaufgaben mit mehreren Treads ist sehe ich nicht warum aufspalten helfen sollte.
 
Schön zu hören, dass es da endlich mal Fortschritte gibt. Ich hatte mir extra noch eine GTX750Ti gekauft und zu meinen zwei Radeon HD5870 zugesteckt, damit ich wenigsten die CUDA Version von Cycles nutzen kann. Dummerweise rendere ich trotzdem momentan mit der CPU, da CUDA ja kein "Volume Scatter und Absorption" unterstützt.
 
Zurück