GPU + CPU Rendering langsamer als nur GPU Rendering?
Hallo zusammen!
Ich habe eine theoretische Frage zu Blender. Ich verwende HIP als Cycle Render Device.
Wie ihr sehen könnt, habe ich nur meine GPU dafür aktiviert, da das komischerweise schneller läuft, als wenn ich meine CPU "dazuschalte". Mein Monkey Brain ist natürlich der Meinung, dass GPU und CPU bei beiden Häkchen ihre Kräfte vereinen sollten und mehr Leistung dabei rumspringt, aber das Gegenteil ist der Fall.
Für folgendes Bild ist die Render-Zeit, wenn ich nur die GPU angeklickt habe bei ca. 30 Sekunden mit 4096 Samples und mit "dazugeschalteter" CPU bei ca. 1:30 Minuten.
Wieso ist dem so? Ich bin an sich zufrieden mit der Dauer und weiß auch, dass nvidia hier die bessere Wahl wäre - für meine Hobby-Basteleien passt das aber durchaus. Kann mir aber vielleicht jemand die Technik dahinter erklären? Läuft da was falsch, oder ist das normal so?
PS: GPU Compute ist für Cycles aktiviert.
Edit: Das gilt auch für die Leistung im Viewport. Das Programm läuft generell auch stabiler, wenn die CPU nicht aktiv ist.
3 Antworten
Die Erklärung ist recht simpel. Wenn du CPU und GPU gleichzeitig nutzt, werden die Render Tiles auf die verfügbaren Threads verteilt. Die CPU greift sich also 8 oder 16 Tiles ab, die GPU aber nur eins, weil die eben nur einen Thread verarbeiten kann.
Da die GPU (normalerweise) eh schon schneller ist, hat die dann oft schon alle anderen Tiles gerendert, während die CPU immer noch mit ihren 8 oder 16 Tiles beschäftigt ist. Und wenn sie die erstmal hat, rückt sie sie auch nicht mehr raus.
Könnte nun die GPU ein bereits angefangenes Tile einfach übernehmen, wäre diese Variante definitiv schneller. Daher arbeitet man zur Zeit daran, genau das hinzubekommen. Zudem versucht man, eine Art Renderzeit-Prognose zu erstellen, um der CPU explizit die leicht zu rendernden Tiles zuzuweisen. Etwa die, auf denen nur Himmel zu sehen ist.
Bis das funktioniert, kann CPU+GPU zwar schneller sein, wenn man Glück hat, ist es aber meistens nicht.
Wenn deine CPU zu langsam für deine GPU ist, verlangsamt sich alles, da bis die GPU dran ist, die CPU schon zu lange gebraucht.
ok und das ist sie wohl? Beim zocken ist es nämlich eher die CPU die nicht ausgereizt wird mit der 6600XT. Blender funktioniert da dann wahrscheinlich anders? Welche CPU bräuchte man denn, damit dieser "Doppelmodus" etwas bringt?
Ist alles eher eine Interessensfrage als ein Problem. danke auf jeden fall!
Hier wurde das Problem auch beschrieben:
https://developer.blender.org/T97554
Darin wird hierauf verwiesen:
https://developer.blender.org/T95687
Habs nicht alles gelesen. Status ist "confirmed" 🤷♂️