3ds Max + V-ray - Czy liczenie na GPU ma sens? Porównanie GPU vs CPU

3ds Max + V-ray - Czy liczenie na GPU ma sens? Porównanie GPU vs CPU


Jeśli zajmujesz się wykonywaniem wizualizacji, to na pewno nie raz słyszałeś o renderowaniu z wykorzystaniem kart graficznych (GPU). O co dokładnie w tym chodzi? Zamiast wykorzystywać do obliczeń standardowo procesor (CPU) naszego komputera możemy użyć do tego celu karty graficzne. Jeśli tylko aplikacja, z której korzystamy na to pozwala i mamy odpowiednio wydajną kartę graficzną, to istnieje duża szansa na to, że wykona to samo obliczenie szybciej. Albo dużo szybciej, o czym zaraz się przekonamy.

Tekst ten powstał we współpracy z firmą NVIDIA, ale nie wpłynęło to jakkolwiek na moją ocenę przydatności GPU w renderingu. Korzystałem z tej metody już od pewnego czasu i nikt nie musiał mnie namawiać, abym napisał na ten temat kilka zdań :)

W tym artykule będę skupiał się konkretnie na silniku renderującym V-ray 5 dla programu 3ds Max. V-ray od dłuższego czasu pozwala na na renderowanie z wykorzystaniem GPU, ale przyznam, że sam podchodziłem do tego z dużą rezerwą. Nie spieszyłem się z zakupem nowej karty graficznej specjalnie do tego celu. W dużej mierze była to po prostu kwestia przyzwyczajenia do renderowania na CPU. 

Jeśli wolisz bardziej słuchać niż czytać, to zachęcam do obejrzenia filmu poniżej, który przygotowałem o tej samej tematyce :)

Czym jest NVIDIA Studio?

NVIDIA Studio to platforma programowa i sprzętowa wykorzystująca technologie ułatwiające i zwiększające wydajność pracy twórczej. A co to znaczy dla nas użytkowników w praktyce?

NVIDIA na bieżąco jest w kontakcie z twórcami i cały czas dba o to aby aplikacje, z których korzystamy jak najlepiej wykorzystywały w pełni potencjał oraz moc obliczeniową kart graficznych. Dzięki temu możemy korzystać z dedykowanych sterowników NVIDIA Studio, które cały czas są aktualizowane i zapewniają największą stabilność, a nierzadko wzrost wydajności.

Dodatkowo NVIDIA posiada linię produktów NVIDIA RTX STUDIO, które przeznaczone są dla osób zajmujących się pracą kreatywną i cały czas wykorzystują moc obliczeniową komputera w różnych aplikacjach takich jak np. 3ds Max, Blender, Adobe Premiere Pro, Photoshop i wiele wiele innych. Korzystając z tych produktów mamy pewność, że zostały one przetestowane i zatwierdzone przez NVIDIĘ co daje nam pewność, że spełnią nasze oczekiwania.


Dlaczego warto zainteresować się liczeniem z wykorzystaniem kart graficznych?

Czemu w takim razie warto zainteresować się liczeniem z wykorzystaniem GPU? Powodów jest kilka, a według mnie najważniejsze z nich to:

  • Wydajność - Obecnie karty graficzne są naprawdę szybkie. Stosunek mocy jaką otrzymujemy w stosunku do ceny jest naprawdę dużo korzystniejszy niż w wypadku procesorów.
  • Elastyczność - pracując na GPU mamy dużą swobodę modyfikacji naszego sprzętu. W razie potrzeby możemy wymienić naszą kartę na nowszą bez większego problemu czego nie można powiedzieć o procesorach. Często ich wymiana wiąże się dodatkowo z zakupem nowej płyty głównej, ramu, chłodzenia, czyli praktycznie cały komputer trzeba składać od podstaw.

    W wypadku kart graficznych też oczywiście będziemy ograniczeni pewnymi rzeczami np. wydajnością naszego zasilacza lub procesora, które wpłyną na możliwości GPU. Jednak nawet jeśli nasza nowa karta graficzna będzie wykorzystywać tylko 80% swojego potencjału z powodu zbyt wolnego procesora, to i tak takie ulepszenie może okazać się bardzo korzystne i opłacalne.

  • Zachęcam do zapoznania się z moim poprzednim artykułem, gdzie dowiesz się więcej na temat tego jak dużo może dać nowa karta graficzna nawet w starym komputerze -  Jak 5-krotnie skrócić czas renderowania. Pierwsze wrażenia z renderowania na GPU.
  • Możliwość korzystania z kilku kart - Dodatkowo jeśli chcemy mieć dostęp do większej mocy obliczeniowej, to bez większego problemu możemy skorzystać w jednym komputerze z dwóch kart. Musimy tylko zatroszczyć się o odpowiednio mocny zasilacz. Jest to dużo bardziej ekonomiczne i prostsze rozwiązanie niż składanie dwóch oddzielnych komputerów, w celu korzystania z dwóch procesorów jednocześnie. Dzięki temu nie musimy również kupować dodatkowych licencji oprogramowania.

    Istnieje możliwość skorzystania z 3 lub 4 kart w jednym komputerze, ale w takim wypadku polecałbym już poradzić się kogoś kto na co dzień zajmuje się składaniem tego typu stacji roboczych.
  • Zużycie prądu, a moc obliczeniowa - W wypadku GPU stosunek mocy jaką uzyskujemy do ilości prądu, który zużywamy jest o wiele korzystniejszy niż w wypadku renderowania na CPU. Jeśli wykonujesz kilkanaście renderów w miesiącu może nie być to dla Ciebie istotne, ale jeśli codziennie renderujesz, to może być to już odczuwalna oszczędność.
  • Light Mix - W V-rayu jedynie wykorzystując Brute Force w Primary Engine , możemy wykorzystać Light Mix, który daje nam ogromne możliwości edycji oświetlenia renderujących się oraz wyrenderowanych wizualizacjach. Wykorzystując Irradiance map w Primary Engine nie będziemy mieli takiej możliwości. Jeśli korzystaliście kiedyś z Brute Force to wiecie, że jest to bardzo obciążający sposób obliczeń i wykorzystując do tego jedynie CPU może trwać to bardzo długo.
  • Szybki podgląd - Dzięki szybkiej karcie graficznej możemy bez problemu korzystać z IPR (Interactive Production Rendering) i mieć na bieżąco podgląd naszej sceny.

Porównanie czasów GPU (NVIDIA GeForce RTX 3090) vs CPU (Ryzen 3950X)

Przejdźmy teraz do porównania czasów renderowania z wykorzystaniem karty graficznej NVIDIA GeForce 3090 RTX, a procesorem Ryzen 3950X na przykładzie wizualizacji wnętrz. Będę również dodawał informacje ile RAM-u zostało wykorzystane w danej scenie.

Poniższa scena została wyrenderowana w rozdzielczości 1920x1080 z limitem Noise Threshold ustawionym na 0,007 na 5 różnych sposoby z wykorzystaniem silników V-ray 5 oraz V-ray GPU 5.

  • V-ray 5 - CPU - wykorzystując procesor.    Primary Engine - Brute Force.
  • V-ray 5 GPU - CPU - wykorzystując procesor
  • V-ray 5 GPU - GPU - CUDA - wykorzystując kartę graficzną
  • V-ray 5 GPU - GPU - RTX - wykorzystując kartę graficzną
  • V-ray 5 GPU - CPU + GPU - CUDA - wykorzystując jednocześnie kartę graficzną oraz procesor Wizualizacje wykonane z wykorzystaniem silnika

V-ray GPU zawsze wychodzą identycznie niezależnie, czy do obliczeń wykorzystamy CPU, czy GPU (CUDA lub RTX). Różnice natomiast możemy zauważyć jeśli porównamy wizualizacje wyrenderowane z wykorzystaniem V-ray 5, a V-ray GPU 5. Zazwyczaj te różnice są drobne co będziesz mógł zaobserwować na przykładach poniżej.


Na powyższej wizualizacji najwięcej zmian można dostrzec w odbiciach świateł w szybie, gdzie w przypadku V-raya CPU wyglądają nieco naturalniej. Czas renderowania dla tych 5 wariantów wygląda następująco:

  • V-ray 5 - CPU - 3 h 13 min 1 sek
  • V-ray 5 GPU - CPU - 1h 26 min 18 sek
  • V-ray 5 GPU - GPU - CUDA - 32 min 4 sek
  • V-ray 5 GPU - GPU - RTX -  20 min 44 sek
  • V-ray 5 GPU - CPU + GPU - CUDA - 28 min 56 sek

Wykorzystana pamięc RAM karty graficznej - 4959 MB

Jak widzicie zdecydowanie najlepszy czas udało się osiągnąć wykorzystująć kartę graficzną z ustawionym Engine na RTX. Mimo tego, że w wypadku wykorzystania Engine - CUDA mamy możliwość renderingu hybrydowego GPU + CPU, to w praktyce zdecydowanie lepszy czas udało się osiągnąć tylko z jedną kartą wykorzystującą RTX.

Przejdźmy teraz do kolejnego przykładu wnętrza.

Rozdzielczość: 1440 x 1920, Noise Threshold: 0,007


  • V-ray 5 - CPU - 30 min 21 sek
  • V-ray 5 GPU - CPU - 47 min 27 sek
  • V-ray 5 GPU - GPU - CUDA - 16 min 40 sek
  • V-ray 5 GPU - GPU - RTX -  11 min 28 sek
  • V-ray 5 GPU - CPU + GPU - CUDA - 18 min

Wykorzystana pamięć RAM karty graficznej - 5041 MB

W tym wypadku również możemy zobaczyć drobne różnice w zależności od tego, czy korzystamy ze standardowego V-raya, czy V-raya GPU.


Przejdźmy teraz do bardziej wymagającej sceny gdzie mamy zdecydowanie więcej geometrii i zobaczymy jak karta poradzi sobie na takim przykładzie.

Rozdzielczość: 4000 x 2260, Noise Threshold: 0,01


  • V-ray 5 - CPU - 2 h 39 min 21 sek
  • V-ray 5 GPU - CPU - 2 h 5 min 8 sek
  • V-ray 5 GPU - GPU - CUDA - 39 min 53 sek
  • V-ray 5 GPU - GPU - RTX -  26 min 28 min
  • V-ray 5 GPU - CPU + GPU - CUDA - 37 min 7 sek

Wykorzystana pamięć RAM karty graficznej - 7562 MB

Tutaj widoczne są różnice w trawie oraz w szkle barierki. Jednak nadal cała scena w 95% wygląda identycznie i bez problemu możemy w razie potrzeby przełączać się między jednym a drugim silnikiem bez obaw, że uzyskamy zupełnie inny efekt.

Czy Vray GPU obsługuje wszystko?

Reasumując, różnice w finalnych renderach między CPU i GPU są zauważalne, choć zazwyczaj nie duże. Czy to znaczy, że licząc na GPU zawsze będzie wszystko działać? Niestety nie. Są pewne funkcje, które nie są jeszcze obsługiwane przez V-ray GPU. Pełną listę możecie znaleźć pod tym linkiem. Z istotniejszych rzeczy, o których warto wspomnieć:

  • V-ray GPU nie obsługuje w ogóle Irradiance Map. Jedyny primary engine, z którego można korzystać to Brute Force, którego osobiście i tak zachęcałbym używać jeśli wasz sprzęt na to pozwala. Więcej odnośnie różnic między Irradiance Map, a Brute Froce znajdziecie w tym artykule - Plamy na renderze - Skąd się biorą i co z nimi zrobić? Poradnik
  • Ograniczona liczba filtrów odpowiedzialnych za Anti-Aliasing
  • Ograniczona obsługa materiałów wykorzystujących - Translucency
  • Ograniczona liczba Render Elements, z których można korzystać 
  • Mogą występować problemy z obsługą materiałów, w których wykorzystany był Composite
  • Możliwe, że nie wszystkie pluginy wpływające na render będą działać poprawnie

Czy RAM kart nas ogranicza?

Jakie jeszcze ewentualne ograniczenia mogą nas spotkać podczas korzystania z GPU? Jednym z najważniejszych jest na pewno pamięć RAM. W tym wypadku niestety nie możemy dokupić kolejnych kości pamięci i zwiększyć w ten sposób pojemności RAM-u naszej karty.

Dodatkowo jeśli np. posiadamy w komputerze 3 karty graficzne z czego dwie z nich będą miały po 10 GB pamięci, a trzecia 6 GB, to będziemy ograniczeni do pamięci karty, która posiada jej najmniej, czyli w tym wypadku - 6 GB. Ewentualnie niektóre karty możemy połączyć ze sobą sumując w ten sposób ich pamięć, ale w wypadku GeForce’ów z serii 30 jest to tylko możliwe z modelem - 3090.

Pamięć ta wykorzystywana jest do wszystkich obiektów oraz tekstur, które są w scenie. Czyli im bardziej skomplikowana scena tym więcej RAM-u będziemy potrzebować. W wypadku standardowych wizualizacji wnętrz w 100% wystarczające będzie 8-10 GB pamięci. Natomiast  przy wizualizacji architektury wszystko zależy od tego jak bardzo złożona będzie to scena. Im więcej pamięci posiadamy tym na więcej obiektów, roślinności, tekstur będziemy mogli sobie pozwolić.

Dodatkowo możemy skorzystać z bardzo przydatnej opcji w Render Settings -> Preferences -> Textures i ustawić w Mode: On-demand mip-mapped. Dzięki temu V-ray sam będzie dostosowywał rozmiar tekstur z jakich będzie korzystał. Przykładowo jeśli korzystamy z tekstury 4096x4096, która widoczna jest tylko na niewielkim obiekcie w tle, to nie będzie wykorzystywana w pełnej rozdzielczości, a jedynie w takiej, aby uzyskać dobrą jakość. Dzięki temu możemy zaoszczędzić dużo pamięci na inne istotniejsze rzeczy.


Jaką kartę graficzną wybrać?

W momencie przygotowywania tego artykułu najnowszymi kartami dostępnymi na rynku są GeForce’y od firmy NVIDIA serii 30. Jest kilka modeli, które różnią się od siebie mocą obliczeniową oraz ilością pamięci. 


Tak jak wspomniałem powyżej w wypadku wizualizacji wnętrz wystarczające będą karty z 8-10 GB pamięci, więc możemy wybierać między dowolnymi modelami w zależności od tego jakim budżetem dysponujemy.

Sytuacja staje się trochę bardziej skomplikowana jeśli wykonujemy bardziej złożone sceny i potrzebujemy więcej pamięci. W takim wypadku najlepszym wyborem będzie NVIDIA GeForce 3090 ponieważ posiada aż 24 GB RAM-u. Dodatkowo jeśli chcemy mieć jeszcze więcej pamięci możemy zaopatrzyć się w dwie karty 3090 i połączyć je ze sobą dzięki SLI. Dzięki czemu pamięć kart się zsumuje i będziemy mogli korzystać z 48 GB co powinno być wystarczające dla większości scen. Jeśli oczywiście zachowamy podstawy optymalizacji scen :)

Podsumowanie

Czy zatem warto interesować się renderowaniem na GPU? Według mnie bez wątpienia. W każdym z przypadków powyżej czasy renderingu z wykorzystaniem GPU były około 4-5x krótsze niż na CPU. Sądzę, że mimo ewentualnych ograniczeń, korzyści są tak duże, że renderowanie w ten sposób stanie się standardem i za kilka lat mało kto będzie wykonywał wizualizacje na CPU. Ewentualnie największy problem z pracą na GPU będą miały osoby, które nie wyobrażają sobie renderowania bez co najmniej 128 GB ramu :).

Autor

Mateusz Ciećwierz

Absolwent Wydziału Architektury Politechniki Warszawskiej. Założyciel CG Wisdom. Fan gier, komiksów i starych samochodów.

Jaki kurs online wybrać?

Jeśli nie jesteś zdecydowany, skorzystaj z naszych podpowiedzi

Zobacz

Jakiego oprogramowania chcesz się nauczyć?

  • kursy online Autocad
  • kursy online Blender
  • kursy online Digital Painting
  • kursy online Illustrator
  • kursy online Marvelous Designer
  • kursy online 3ds Max
  • kursy online Photoshop
  • kursy online Revit
  • kursy online Rhinoceros 3d
  • kursy online Sketchup
  • kursy online V-ray
  • kursy online Zbrush