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



## Oromis16 (24. März 2015)

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: 



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! 
Downloadlink: https://www.blender.org/download/


----------



## dsdenni (24. März 2015)

Glaub den Post musst du noch überarbeiten


----------



## Oromis16 (24. März 2015)

@dsdenni
Sag mir bitte wo, denn ich sehe keine größeren sprachlichen Schnitzer oder inhaltliche Fehler.


----------



## dsdenni (25. März 2015)

Oromis16 schrieb:


> @dsdenni
> Sag mir bitte wo, denn ich sehe keine größeren sprachlichen Schnitzer oder inhaltliche Fehler.


Warum endet der Post mit einem unvollständigen Satz?
Bei mir endet es mit Aktuell befinden sich Verbesserungen und dann nix mehr


----------



## FrozenPie (25. März 2015)

dsdenni schrieb:


> Warum endet der Post mit einem unvollständigen Satz?
> Bei mir endet es mit Aktuell befinden sich Verbesserungen und dann nix mehr


Dann stimmt was mit deinem Browser nicht, denn bei mir steht da:


Oromis16 schrieb:


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


----------



## Placebo (25. März 2015)

Na endlich! CPUs sind einfach zu langsam. Und es scheint auch auf älteren GraKas zu laufen  Wahrscheinlich, dass es noch in 2.74 integriert wird ist es aber nicht.


----------



## Oromis16 (25. März 2015)

@Placebo
Da hast du leider Recht

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


----------



## FrozenPie (25. März 2015)

Und ich habe vor einem Monat einen http://extreme.pcgameshardware.de/komplette-rechner-zusammenstellung/378819-blender-render-pc.html extra mit Quadros erstellt, weil die AMD Karten nicht mit Cycles funktionieren oder nur schlecht funktionieren 

Naja besser spät als nie


----------



## dsdenni (25. März 2015)

FrozenPie schrieb:


> Dann stimmt was mit deinem Browser nicht, denn bei mir steht da:



Oh, dann wird dies wohl ein Tapatalkfail sein, sorry. Auf dem Browser seh ich auch alles


----------



## Oromis16 (25. März 2015)

Weitere Update: Eine Mail von Ton Roosendaal, dem Gründer und Leiter der Blender Foundation
Mail im Spoiler: 



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.


----------



## Oromis16 (25. März 2015)

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


----------



## Gimmick (25. März 2015)

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


----------



## FrozenPie (25. März 2015)

Gimmick schrieb:


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



Umgebungsvariable gesetzt?


> CYCLES_OPENCL_TEST=all muss als Umgebungsvariable gesetzt sein!


----------



## Oromis16 (25. März 2015)

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:

```
set CYCLES_OPENCL_TEST=all
.\blender.exe
```

Dann einfach Doppelklick auf die .bat und Blender startet automatisch


----------



## Olstyle (25. März 2015)

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.


----------



## Gimmick (25. März 2015)

Jaaa, lesen hilft.
Thx


----------



## Oromis16 (25. März 2015)

@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 (25. März 2015)

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.


----------



## Oromis16 (25. März 2015)

Möglicherweise ist das hier gemeint: Modellierkern â€“ Wikipedia


----------



## konsolen/pczocker (26. März 2015)

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.


----------



## Oromis16 (28. März 2015)

@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.
> 
> ...


----------



## Placebo (29. März 2015)

Oromis16 schrieb:


> @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?  




Nicht als persönlichen Angriff nehmen


----------



## Oromis16 (29. März 2015)

Oups, vollkommen verlesen 
Wurde korrigiert.


----------



## Oromis16 (30. März 2015)

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:


Spoiler



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 (12. April 2015)

@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..  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


----------



## Oromis16 (22. April 2015)

[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


----------



## Oromis16 (27. Mai 2015)

Wie Nutzer @FrozenPie herausfand kann man seit Sonntag den Testbuild für 2.75 runterladen: Dev:Ref/Release Notes/2.75 - BlenderWiki
Der erste RC wird wenige Tage nach dem 5ten Juni erwartet: Devoc/Projects - BlenderWiki


----------



## FrozenPie (27. Mai 2015)

Oromis16 schrieb:


> Wie Nutzer @FrozenPie herausfand kann man seit Sonntag den Testbuild für 2.75 runterladen: Dev:Ref/Release Notes/2.75 - BlenderWiki
> Der erste RC wird wenige Tage nach dem 5ten Juni erwartet: Devoc/Projects - BlenderWiki



Dazu sollte noch gesagt sein, dass im Testbuild noch nicht alle Funktionen für Cycles aktiviert sind, wie z.B. Blurr-Effekte, etc.


----------



## FrozenPie (11. Juni 2015)

Es gibt jetzt einen Release-Candidate für Version 2.75 
Dev:Ref/Release Notes/2.75 - BlenderWiki


----------



## Oromis16 (11. Juni 2015)

Ich hab eine Stunde zu früh geschaut 
Wurde editiert


----------



## Mottekus (11. Juni 2015)

also mal ganz im ernst. Worum geht es hier. Nur mal bitte kurz für nen Laien angenschitten bitte


----------



## Placebo (11. Juni 2015)

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 (11. Juni 2015)

vielen Dank für die Erklärung. Und das ist ja wirklich beeindruckend was damit machbar ist.


----------



## Oromis16 (1. Juli 2015)

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


----------



## Gimmick (3. Juli 2015)

Oromis16 schrieb:


> [Update]
> Blender 2.75 ist endlich raus und damit auf gehts ihr AMD-Nutzer!
> 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 

-> 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 (3. Juli 2015)

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


----------



## Musti20D (20. März 2016)

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?


----------



## Placebo (20. März 2016)

Ja, werden gleichzeitig benutzt. Die Funktion bietet aber nur OpenCL und nicht CUDA an.


----------

