• Achtung, kleine Regeländerung für User-News: Eine User-News muss Bezug zu einem IT-Thema (etwa Hardware, Software, Internet) haben. Diskussionen über Ereignisse ohne IT-Bezug sind im Unterforum Wirtschaft, Politik und Wissenschaft möglich.
  • Hallo Gast, du kaufst gerne günstig ein und erfährst oft vor deinen Freunden von interessanten Angeboten? Dann kannst du dein Talent als Schnäppchenjäger jetzt zu Geld machen und anderen PCGH-Lesern beim Sparen helfen! Schau einfach mal rein - beim Test der Community Deals!

[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:
TE
Oromis16

Oromis16

BIOS-Overclocker(in)
@dsdenni
Sag mir bitte wo, denn ich sehe keine größeren sprachlichen Schnitzer oder inhaltliche Fehler.
 

FrozenPie

Lötkolbengott/-göttin

Placebo

BIOS-Overclocker(in)
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:
TE
Oromis16

Oromis16

BIOS-Overclocker(in)
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.
 
TE
Oromis16

Oromis16

BIOS-Overclocker(in)
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
 
G

Gimmick

Guest
Hab mir den Build mal runtergeladen, kann aber nur CPU rendering auswählen. Jemand ne Idee woran das liegen kann?
 
TE
Oromis16

Oromis16

BIOS-Overclocker(in)
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 ;)
 

Olstyle

Moderator
Teammitglied
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.
 
TE
Oromis16

Oromis16

BIOS-Overclocker(in)
@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.
 

Olstyle

Moderator
Teammitglied
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.
 

konsolen/pczocker

Software-Overclocker(in)
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.
 
TE
Oromis16

Oromis16

BIOS-Overclocker(in)
@Olstyle
Der Blendpolis- und PCGH-Nutzer Placebo hat deine Frage hier gelesen und sie Thomas Dinges gestellt, das hier war seine Antwort:
Thomas Dinges schrieb:
[...]
1) Compiler
Der Rendering Kernel (also der gesamte Code, der für das Rendern zuständig ist), wird vom CUDA / OpenCL Compiler kompiliert. Dies geschieht auf der CPU. Die GPU ist hierbei nicht involviert. Nun ist es aber so, dass der Compiler aufgrund der Zielarchitektur (GPU) einiges beachten muss und GPUs immer noch nicht jeglichen Code ausführen können, so wie man es von CPUs kennt. Und hier lag das das Problem: Der CUDA / OpenCL Compiler ist nicht in der Lage den großen Render Kernel (effektiv) zu verarbeiten und zu optimieren. Nvidia hatte hier weniger Probleme mit CUDA als z.B AMD mit OpenCL, aber optimal war es schon lange nicht mehr.

Mit der Aufteilung des Kernels in kleinere Teile kommt der Compiler nun deutlich besser zurecht, da er jeweils nur einen kleines Teil von Cycles (Raytracing, Shaders, Render Passes....) verarbeiten muss. Dies bringt den Compiler nicht an seine Grenzen und verbraucht gleichzeitig auch weniger Ressourcen während der Kompilierung (Stichwort: Arbeitsspeicher Verbrauch).

2) Performance
Ebenso wie für den Compiler, ist auch für die GPU der Megakernel suboptimal. GPUs sind schnelle Floating Point Cruncher, sie lieben kleine Programme, die immer das selbe machen. Komplexer Code wie Cycles, mit hunderten von Funktionen und Tausenden Verzweigungen (if/else) sind nicht optimal. Durch die Aufspaltung kann die GPU die Berechnungen nun effizienter lösen und auch der Speicherverbrauch auf der GPU sollte sinken.

Wer es genauer wissen möchte sollte folgendes Paper lesen:
Megakernels Considered Harmful: Wavefront Path Tracing on GPUs

sowie die Dokumentation von den AMD Entwicklern: Split Kernel Optimizations[...]
 
Zuletzt bearbeitet:

Placebo

BIOS-Overclocker(in)
@Olstyle
Der Blendpolis-Nutzer B.Y.O.B. hat deine Frage hier gelesen und sie Thomas Dinges gestellt, das hier war seine Antwort:
Schreibst du meinen Namen gefälligst richtig, wenn du mir schon den Post wegnimmst? :ugly: :slap:




Nicht als persönlichen Angriff nehmen
 
Zuletzt bearbeitet:
TE
Oromis16

Oromis16

BIOS-Overclocker(in)
Von Sergey Sharybin gibt es Neuigkeiten zur voraussichtlichen Integration:
Er sagt darin, dass noch ein paar Fehler angegangen werden müssen, aber er meint, dass es mit Glück möglich sei, die Optimierungen noch in die Version 2.75 einzubringen.

Originaltext:
Hi everyone,

Just a quick update on the patch. It is now in the cycles_kernel_split branch. it contains original patch, followed with master merge commit and some compilation error fixes and cleanup.

This should make tests easier and will also let us help wrapping code up. There's still quite a few of issues to be addressed, but optimistically it's doable before 2.75 merge window closes :)
Quelle: [Bf-cycles] Cycles kernel split patch
 

CaptainKrack

Kabelverknoter(in)
@Oromis 16 @Placebo
Hallo zusammen,
habe unlängst einen Beitrag gestartet, in dem es ums Zusammenstellen eines PCs für Blender ging... :) Als es grad u.a. um die GPU ging (Nvidia oder AMD, wobei Cycles ja CUDA unterstützt und somit Nvidia empfehlenswert wäre) bin ich jetzt auf Euren Beitrag hier gestoßen.. :D Dachte erst so yaaay dann kann ich doch die mir empfohlene AMD nehmen, auch wenn ich wohl noch eine Blender-Version warten muss (das geht ja, wenn die Verbesserungen wirklich mit 2.75 kämen). Aber hättet Ihr da vielleicht bessere Empfehlungen?

Es ging um folgende Karten:
Sapphire Radeon R9 290 Tri-X OC [New Edition] 1000MHz, 4GB GDDR5, 2x DVI, HDMI, DisplayPort, lite retail (11227-13-20G) Preisvergleich | Geizhals Deutschland (empfohlen von der-pc-nutzer)
und um
EVGA Geforce GTX 960 SuperSC ACX2.0+ 4GB (Grafikkarten) Test - Übertaktete GTX 960 mit 4,0 GByte Speicher - GameStar.de

Den Beitrag findet ihr hier: http://extreme.pcgameshardware.de/k...kreativ-pc-hilfe-benoetigt-d.html#post7317437
Schon mal vielen Dank,
Gruß Kracky ;)
 
Zuletzt bearbeitet:
TE
Oromis16

Oromis16

BIOS-Overclocker(in)
[Update]
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
 

Mottekus

Software-Overclocker(in)
also mal ganz im ernst. Worum geht es hier. Nur mal bitte kurz für nen Laien angenschitten bitte :D
 

Placebo

BIOS-Overclocker(in)
Blender ist ein Programm, mit dem du 3D-Modelle erstellen kannst, wie du sie in Filmen und Spielen findest. Die Blendereigene Renderengine 'Cycles' (ein Pathtracer) ist in Sachen Realismus der normalen Computergrafik Jahrzehnte voraus und dementsprechend langsam. Jetzt hat sie volle CPU- und GPU-Unterstützung bei allen Herstellern (bis auf Intel IGPs, weil die sowieso keine Geschwindigkeitsvorteile bringen).


Das ist mit der ersten Cycles-Version entstanden:

https://www.youtube.com/watch?v=OHOpb2fS-cM
 

Mottekus

Software-Overclocker(in)
vielen Dank für die Erklärung. Und das ist ja wirklich beeindruckend was damit machbar ist.
 
G

Gimmick

Guest
[Update]
Blender 2.75 ist endlich raus und damit auf gehts ihr AMD-Nutzer! :daumen:
Downloadlink: https://www.blender.org/download/

rofl x)

Ein wenig mit dieser BMW-Benchmarkszene getestet.
Mit GPU-Compute ist es erst sau langsam gewesen. Der Ersteller der Szene hat ja seine Werte in die Info geschrieben: GTX570 53s mit OpenCL. Ich kam mit meiner r9 290 auf ~2min30s...

Also an allem mal rumgestellt und Tile-Größe verändert - hat erstmal kaum was gebracht.

Aber dann: Tile-Größe = Bildgröße :D

-> 31s Renderzeit.


Ich glaube da hängt so viel von den Einstellungen ab, dass man da einen enormen Fundus an Erfahrung braucht um das Optimum zu finden.
 

Olstyle

Moderator
Teammitglied
Tiles zu bilden macht wohl nur Sinn wenn man die dann auch parallel abarbeiten kann, ergo bei mehr Karten.
 

Musti20D

Komplett-PC-Käufer(in)
Sorry das ich den alten Krempel umkremple, aber was ist der Vorteil unter User preferences -> System-> Compute Device den auf GPU + CPU umschalte? Werden dann CPU und GPU gleichzeitig benutzt? Eventuell schnelles Rendern?
 
Oben Unten