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

@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:
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
 
@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:
[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
 
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
 
[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.
 
Tiles zu bilden macht wohl nur Sinn wenn man die dann auch parallel abarbeiten kann, ergo bei mehr Karten.
 
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?
 
Zurück