Die dieswöchige Veröffentlichung von Blender 3.2 bringt AMD GPU-Rendering-Unterstützung unter Linux über AMDs HIP-Schnittstelle in Verbindung mit ihrem ROCm-Rechenstapel. Ich war gespannt, ob die AMD-GPU-Unterstützung unter Linux endlich verfügbar ist, und begann schnell, diese neue Version der Open-Source-3D-Modellierungssoftware von Blender auszuprobieren, während ich sah, wie sich die AMD RDNA2 HIP-Leistung mit der von NVIDIA GeForce RTX 30-GPUs vergleicht, die seit langem Top-Notch-Unterstützung unter Blender.

Während Blender 3.1 AMD HIP-Unterstützung für Windows brachte, war dies für Linux nicht der Fall, und erst jetzt, mit der Veröffentlichung von Blender 3.2 in dieser Woche, gibt es AMD HIP Unterstützung mit Blenders Linux-Builds. Dies ermöglicht eine GPU-Beschleunigung, wenn der ROCm-Compute-Stack eingerichtet ist – leider bedeutet dies keine Unterstützung, wenn nur die Mesa-Treiber und andere sofort einsatzbereite Unterstützung auf Linux-Distributionen verwendet werden.

Die meisten Linux-Benutzer, Führen Sie an dieser Stelle leider nicht das ROCm-Stack-Setup aus, da Sie es manuell über die Radeon-Software für Linux-Pakettreiber oder die manuellen ROCm-Installationsverfahren einrichten müssen. Selbst dann ist die Unterstützung der Linux-Distribution begrenzt. Es ist über einen Monat her, seit die Ubuntu 22.04 LTS-Version veröffentlicht wurde, und leider immer noch keine Unterstützung für diese neueste Ubuntu-Langzeit-Support-Version. Ich habe zunächst versucht, dies unter Ubuntu 22.04 zu umgehen, indem ich sowieso nur die ROCm-Bits wollte und mir keine Gedanken über die DKMS-/Vulkan-/OpenGL-Komponenten machte, aber die Unterschiede der GNU-Toolchain-Pakete zu Ubuntu 20.04 vs. 22.04 verursachten mehr Kopfschmerzen… Also Auf dem Testsystem habe ich es einfach gelöscht und wieder eine Ubuntu 20.04-Installation vorgenommen.

Am Anfang hatte ich sogar unter Ubuntu 20.04 LTS Probleme, als ich die AMD HIP-Unterstützung bekam für Blender aktiviert. Der gepackte Treiber auf der AMD-Website ist für die Radeon Software 22.10.2-Komponenten bestimmt, während der ROCm-Installationspfad neuere 22.10.3-Treiberkomponenten ergab. Mit etwas Bastelei habe ich es letztendlich geschafft, dass Blender 3.2 erfolgreich mit HIP/ROCm zusammenarbeitet! Leider enthalten die meisten Linux-Distributionen die AMD ROCm-Software aufgrund ihrer Feinheiten und anderer Probleme immer noch nicht. AMD konzentriert seinen offiziellen ROCm-Linux-Support mittlerweile nur noch auf die wenigen gängigen Enterprise-Linux-Distributionen. Im Vergleich dazu wird NVIDIAs proprietärer Linux-Treiber-Stack nahezu universell von allen Linux-Distributionen unterstützt/verfügbar. Es ist schon eine ganze Weile her, seit ich mich an Kopfschmerzen erinnern kann, die einfach nur den NVIDIA-Linux-Treiber richtig installiert haben.

Aber selbst wenn ROCm mit der ersten Karte, einem RDNA2-Modell, funktioniert, Es brachte eine weitere Einschränkung mit sich… Die viel eingeschränktere Auswahl an GPU-Geräteunterstützung als bei NVIDIAs breiter Geräteunterstützung für mehrere Generationen. Offiziell funktioniert Blender 3.2 mit RDNA2-und RDNA(1)-Grafikkarten unter Linux mit HIP. Ich konnte alle meine verfügbaren Radeon RX 6000 (RDNA2) Grafikkarten mit Blender 3.2 testen, yeah! Aber bei allen meinen RDNA1-getesteten Grafikkarten ergaben sie alle, dass Blender 3.2 einen Segmentierungsfehler hatte. Das Ausprobieren von Prä-RDNA-Grafikkarten wie der Vega-basierten Radeon VII führte auch zu einem Segmentierungsfehler, selbst wenn die Radeon VII-Grafikkarte ansonsten vom ROCm-Compute-Stack unterstützt wurde.

So for In dieser Testrunde konnte ich gerade zeigen, wie die Grafikkarten der Radeon RX 6000-Serie mit dem HIP von Blender 3.2 unter Linux funktionieren. Zum Vergleich habe ich auch alle mir zur Verfügung stehenden NVIDIA GeForce RTX 30 Karten getestet. NVIDIA mit Blender unterstützt sowohl CUDA-als auch OptiX-Pfade für das Rendern unter Linux, wobei OptiX der bevorzugte Renderer für die GeForce RTX-Grafikkarten ist und was für diesen Vergleich verwendet wurde.

Die Grafikkarten, die ich mit Blender 3.2 bewertet habe, enthalten alle die mir zur Verfügung stehenden RDNA2 und RTX 30 Karten (leider noch keine RX 6900 Serie von AMD):

-Radeon RX 6400
-Radeon RX 6500 XT
-Radeon RX 6600
-Radeon RX 6600 XT
-Radeon RX 6700 XT
-Radeon RX 6750 XT
-Radeon RX 6800
-Radeon RX 6800 XT
-GeForce RTX 3060
-GeForce RTX 3060 Ti
-GeForce RTX 3070
-GeForce RTX 3070 Ti
-GeForce RTX 3080
-GeForce RTX 3080 Ti
-GeForce RTX 3090

Alle Tests sind gleich AMD Ryzen 9 5950X Workstation mit Ubuntu 20.04 LTS mit Linux 5.13 Kernel und den neuesten AMD/NVIDIA-Treibern.

Die gute Nachricht ist, dass das AMD HIP-Back-End für Blender viel besser funktioniert als das alte OpenCL-Back-End-end, das in Blender 3.0 weggefallen ist… Das o ld OpenCL-Back-End war schlecht gewartet, zeigte oft eine sehr schlechte Skalierung über GPUs hinweg und war einfach ein Wrack. Leider, wie diese Linux-Benchmarks von Blender 3.2 zeigen, war NVIDIA mit seinem OptiX-Backend viel schneller. Auch wenn die Verwendung des CUDA-Backends in einigen zusätzlichen Tests immer noch eine relativ bessere Leistung lieferte als diese RDNA2-Grafikkarten mit HIP.

Ein Blick auf die GPU-Leistungsaufnahme während der BMW-Szene mit den verschiedenen Grafikkarten.

Leider beschränkte sich die schlechte HIP-Leistung nicht auf etwa eine Szene, sondern zeigte konstant eine schlechte RDNA2-Leistung im Vergleich zur NVIDIA RTX 30-Serie auf Blender 3.2 auf Ubuntu Linux.

Zumindest für die meisten Desktop-CPUs würde die Verwendung des Radeon HIP-Backends mit einer höherwertigen Grafikkarte der Radeon RX 6700/6800/6900-Serie immer noch eine schnellere Blender-Rendering-Leistung liefern als die Verwendung von rein CPU-basiertem Rendering.

Zumindest ist das Radeon HIP-Backend endlich unter Linux für diejenigen verfügbar, die davon Gebrauch machen wollen. Hoffentlich werden sowohl das Backend als auch der ROCm/HIP-Code selbst weiterhin gut reifen. Die Blender-Entwickler untersuchen auch immer noch die Vulkan-Unterstützung und andere Verbesserungen, die sich hoffentlich rechtzeitig ergeben, um eine nette herstellerübergreifende Unterstützung anzubieten. Intel arbeitet auch an SYCL + oneAPI-Unterstützung für Blender für die Intel Arc-Grafikbeschleunigung.

Zumindest kann die Radeon-HIP-Unterstützung in Blender 3.2 unter Linux funktionieren und ist mit einer High-End-GPU schneller als CPU-basiert Rendering, aber die NVIDIA-Unterstützung mit ihren OptiX-und CUDA-Backends erweist sich in dieser Phase weiterhin als überlegen. Es ist auch bedauerlich, dass die Bereitstellung der HIP-Linux-Softwareunterstützung außerhalb der offiziell unterstützten Linux-Distributionen von AMD mühsam sein kann, und ebenso, dass es mehr als einen Monat nach der Veröffentlichung von Ubuntu 22.04 LTS immer noch keine offizielle AMD-Unterstützung für diese neueste Version von gibt Ubuntu-Linux. Und auch unglücklich mit RDNA1-GPUs und zuvor erhalte ich nur Segmentierungsfehler mit Blender 3.2, wo die von NVIDIA unterstützte GPU-Reihe sehr robust ist und ihr gesamtes Portfolio über Generationen umfasst.

Zu guter Letzt, für Neugierige, unten ein Blick auf den GPU-Energieverbrauch und die thermischen Daten für die gesamte Bandbreite verschiedener Blender-Testszenen, die für diesen Blender 3.2-Linux-Vergleich bewertet wurden.

Categories: IT Info