Jump to content
  • 0
Sign in to follow this  
kolaborant

Blender / Cycles / GPU vs CPU

Question

Hej

 

W zasadzie można ten wątek założyć w dziale Kart graficznych ale myślę, że tutaj znajdzie się

więcej osób stricte w temacie Cycles'owym. Mam kartę gtx 580 3Gb. W jakimś bliskim czasookresie

chciałem nieco wzmocnić możliwości obliczeniowe (GPU) mojego blaszaka.

 

Czy waszym zdaniem lepiej zakupić drugiego gtx 580 (za około 600 zł) czy taki układ będzie mniej wydajny

niż jakiś gtx nowszej generacji a może lepiej pójść w stronę liczenia CPU?

 

Wiem, że gpu ma ograniczenia związane z pojemnością karty (ale w przypadku 2 kart/6Gb powinny udźwignąć spore scen)

Czy karty w Sli dobrze obsługuje Cycles.

Wszelkie rady/sugestie mile widziane.

 

Pozdrawiam.

Share this post


Link to post
Share on other sites

Recommended Posts

  • 0

Z tego co wiem, to tak pięknie nie ma dobrze, że dokładasz kartę graficzną z drugie 3 giga i możesz renderować scenę 6giga.

 

Całość musi się mieści w każdej karcie, a z wydajnością to było tak, że przy 2 kartach wydajność był równa około 2x najsłabszej z pary kart.

 

Ale 3 giga to dość dużo z jednej strony, jak ktoś ma nawyk optymalizować sceny, ale są takie rzeczy, których się nie da. Moja scena z włosami i jednoroźcem brała w porywach do 6 i musiałem na CPU.

 

Warto zauważyć, że ficzery cyclesa najpierw przeważnie wychodzą na CPU, a na GPU są z opóźnieniem - tak jest teraz z wolumetryką, w wcześniej było z SSS, Włosami ...

 

No i dodakowo są jeszcze farmy renderujące, w których naprawdę duże rzeczy można tanio i szybko werenderować nie męcząc swojego kompa. Niech wspomnę RayPump.

 

Jak masz gtx 580 3gb, to na twoim miejscu bym nie kupował GPU, bo trudno uzyskać większy stosunek cena/wydajność.

CPU mocniejszy się przydaje nie tylko do renderowania, a czasem dobrze mieć, żeby od biedy coś wysmarzyć, co jeszcze nie działa na GPU, albo z innego silnika skorzystać (corona, vray)

Natomiast hardkory i anuimacje od czasu do czasu można w raypumpie wyrenderować nie zajmując sobie komputera przez ten czas wcale.

Share this post


Link to post
Share on other sites
  • 0

Jeśli potrzebujesz rzeczy które teraz działają na CPU a nie działają na grafie to wybierz raczej mocarne CPU. Po odejściu Brechta nie prędko przeniosą wszystko na GPU.

 

SLI nie działa w cyclesie. Każda karta jest traktowana jako osobny akcelerator ze swoją własna pamięcią w której musi się zmieścić scena.

Co do kart 6 giga. Musisz zwrócić uwagę na architekturę takiej karty. Większość z nich to tak zwane kanapki czyli 2 identyczne karty połączone czymś w rodzaju mostka SLI na sterydach. Na pudle masz napisane 6 giga ramu ale tak na prawdę to jest 2 razy po 3 giga, czyli jeden akcelerator ma dla siebie nadal tylko 3 giga pamięci. Taki titan chyba na prawde ma 6 giga pamięci ale już titan Z to kanaplka więc dostajesz 2 razy po 6 giga.

 

Co do wyboru karty to ci nie poradzę, nie wiem jak to teraz wygląda z price performance. Za to zwróć uwagę na jedną rzecz. Może być tak że opłaci ci się wydać kase na jednego kolosa zamiast 2 kart dlatego że będziesz mógł dużo szybciej pracować, zmniejszy ci się czas robienia preview renderów. Natomiast jeśli masz już wypracowane jakieś swoje ustawienia i materiały to pewnie bardziej opłacą ci się 2 karty i oszczędność czasu na final-renderach. Tym bardziej do renderowania animacji. Poza szybkością renderu na klatkę masz jeszcze taki czynnik że karty kolosy się mocniej grzeją więc szybciej ci padnie.

 

Tak czy inaczej zacznij od tego jakie sceny będziesz robił i ile ramu ci na nie trzeba. Szybkość odszumiania będzie lepsza lub gorsza ale to mozliwość wyrenderowania czegoś złożonego w ramach ilości RAM jest tutaj czynnikiem decydującym. Może być tak że jak uwzględnisz instancing obiektów jak roślinność to starczy ci karta 2 giga. Zrób sobie jakieś testy na twoich scenach kopiując (również robiąc instancje) obiekty do tego momentu aż urżniesz twoją obecną kartę, wtedy ci wyjdzie ile razy więcej ramu potrzebujesz żeby uzyskać to co chcesz.

 

No i jeszcze bierz poprawkę że jak będziesz renderował nocami duże stilki czy klatki animacji to te karty się usmażą za 2-3 lata i będziesz zmuszony kupić nowe. Poprawka, będziesz CHCIAŁ kupić nowe nawet jak tamte będą jeszcze działać. To leci tak do przodu że bóg wie jaką te cuda będą miały wydajność. ;) Nie sadzę że taki Titan Z za 10 kafli to dobra inwestycja na sprzęt na 2 lata. ;)

Share this post


Link to post
Share on other sites
  • 0

Dzięki za opinie. Cóż ostatnio raczej renderuje studyjne rzeczy ale w rozmiarach do druku czas renderowania potrafi dać się we znaki.

Zwłaszcza jak nagle, na renderze końcowym dostrzegasz jakiś fail :) Dlatego myślałem, że drugi gtx 580 mógłby nieco sprawę ułatwić.

Czy w takim wypadku jeżeli kupię kartę gtx 580 o pojemności 1,5 Gb (zawsze taniej) to nadal będę mógł korzystać z pojemności 3Gb mojej obecnej karty czy pojemność zrówna mi do najsłabszej?

 

Co myślicie o takim wynalazku. Kusząca sprawa mieć taki regalik na czarną godzinę. Można zbudować jakoś po kosztach i z czasem rozbudowywać. http://cgcookie.com/blender/2013/08/09/setting-up-a-render-farm/

Czy wiecie jak tam sobie radzą AMD wydajnościowo (ja z przyzwyczajenie celowałem zazwyczaj w intela

obecnie 2600K)

 

Ps. Jeśli chodzi o instancje obiektów to muszę tu zagłębić się w temat bo przyznam, że nie korzystałem wcześniej z takiego rozwiązania.

Share this post


Link to post
Share on other sites
  • 0
Ps. Jeśli chodzi o instancje obiektów to muszę tu zagłębić się w temat bo przyznam, że nie korzystałem wcześniej z takiego rozwiązania.

założe się ze korzystałes tylko nie wiedziałeś, że tak tworzy się instancje (któryś ze sposobów duplikacji) ;)

 

jeżeli chodzi o amd, przeglądałem wczoraj benchmarki procesorów i najlepsze amd jest tuż za sandy bridge ale kawałek za najnowszymi i5

Share this post


Link to post
Share on other sites
  • 0
założe się ze korzystałes tylko nie wiedziałeś

 

:)

... myślałem że jakoś na zasadzie linkowania obiektu do sceny, a tu proszę jestem zaawansowanym

użytkownikiem instancji.

Share this post


Link to post
Share on other sites
  • 0
Czy w takim wypadku jeżeli kupię kartę gtx 580 o pojemności 1,5 Gb (zawsze taniej) to nadal będę mógł korzystać z pojemności 3Gb mojej obecnej karty czy pojemność zrówna mi do najsłabszej?
Oczywiście zrówna się do tej słabszej. Jak umieszczasz scenę w ramie wszystkich kart to ta najsłabsza sobie go nie wyczaruje. ;) Mówimy o sytuacji gdy będziesz korzystał z obu na raz bo przecież możesz niektóre rzeczy renderowac na pojedynczej, mocniejszej karcie.

 

Instancje obiektów to ALT+D, edytując jeden zmieniasz wszystkie, jak ładujesz je do renderu to ładujesz tylko jeden obiekt (mniej więcej, każda instancja dodaję coś do objętości sceny.) Twarda kopia obiektu to SHIFT+D, czyli jak skopujesz to on staje się niezależny.

Share this post


Link to post
Share on other sites
  • 0

ALT+D nie powoduje żadnej oszczędności pamięci! Do renderowania ładujesz wszyskie linnkowane duplikaty.

 

tylko przywołanie Group instance tak działa.

Share this post


Link to post
Share on other sites
  • 0

@Monio - dzięki w temacie kart już mam mniej więcej jasność

 

 

ALT+D nie powoduje żadnej oszczędności pamięci! Do renderowania ładujesz wszyskie linnkowane duplikaty.

 

tylko przywołanie Group instance tak działa.

 

 

... hmm chyba mam teraz mętlik. Czy mógłbyś mi wyjaśnić, co miałeś na myśli. Czy pamięć można zaoszczędzić używając tylko

Group instance (coś na takiej zasadzie jak grupy obiektów przy cząsteczkach?). Byłbym wdzięczny za szersze wyjaśnienie sposobu przygotowania obiektów tak aby zaoszczędzić ram.

Share this post


Link to post
Share on other sites
  • 0

Ikkiz- A kiedy ostatnio sprawdzałeś? Może kiedyś tak było ale od lat Alt+D robi w cyclesie instancje która jest ładowana do pamięci tylko raz. Zrobiłem ci graficzkę. Porównaj sobie zużycie ramu:

 

SgsR2VX.png

Share this post


Link to post
Share on other sites
  • 0

Robiłem silnik gwiazdowy, 9-cylindrowy, każdy cylinder z osprzętem to było sporo geometrii więc wymyśliłem, że zrobię instancing przez Alt-D, ale wcale nie oszczędziłem pamięci bo wzięło przy renderze dokładnie dyle samo, co twarda kopia Shift D. Wtedy sprawdziłem!

 

Dopiero, jak zrobiłem na ukrytej warstwie (musi byś ukryta, bo obiekt grupy musi być w punkcie 0,0,0 na środku sceny i to jest niefartowne ułożenie) jeden cylinder i dodałem go do grupy. A potem do silnika pododawałem group instance i poobracałem - wtedy faktycznie ilość pamięci nie bardzo zależała od ilości instacji tak dodanych.

 

 

Jak są particle instancje, to wiadomo działa też.

Ale tez nie można w nieskońconość, więc jak byś robił trawę, to nie korzystaj z jednego źdźbła jako grupy, tylko zrób całą kępkę kilku tysięcy źdźbeł i tą kępę emituj tysiące razy (a nie miliony)

Share this post


Link to post
Share on other sites
  • 0

Może zależy od przypadku. W bebechach blender particle działają dokładnie tak samo jak ALT+D. Z trawą znam patent (chyba nawet od ciebie). Tak czy inaczej nie zajmuje się na razie takimi rzeczami, jak zacznę to skorzystam i sam się pobawię.

Share this post


Link to post
Share on other sites
  • 0

narobiłem sobie duplikatów przez alt D i mi wyszło jak Moniowi. Już myślameł, że będę musiał odszczekać, ale jak zacząłem je obracać ...

 

taki jest efekt. Obracane i skalowanie powoduje, że nawet linkowane kopie biorą normalnie ramu, podczass gdy instancje przy obracaniu i skalowaniu już nie.

 

V47aYSb.jpg

Share this post


Link to post
Share on other sites
  • 0

dobra uwaga, w sumie mało kiedy obracałem i też bym nie zauważył. dzieki!

Share this post


Link to post
Share on other sites
  • 0

Well. To jest ewidentny bug wymagający zgłoszenia.To powinno działać tak samo jak w przypadku particli gdzie rotacja i skala nie duplikują danych. Zgłosisz?

Share this post


Link to post
Share on other sites
  • 0

ale+d duplicate linked to nie instancing kiedyś gdzieś to na blenderartists czytałem i tak też mi się wydawało całe życie. Chyba chodziło o to że przez linkowanie podpinasz pewne parametry. instancing działa przez particle, grup instanc i teoretycznie przez duplication w zakładce object (Czyli parent z duplikacją) (u mnie działa).

w skrócie moje przejścia z instacingiem w blenderze są podobne do @ikkiza i niegdy nie traktowałem tego jako bug. Tylko za pierwszym razem było to dla mnie zdziwienie.

Share this post


Link to post
Share on other sites
  • 0

Myślę, że nie bug w klasycznym tego słowa znaczeniu, choć można by było pewnie to inaczej oprogramować, żeby alt-duplikaty działały jak instancje. Jest coś na rzeczy właśnie z tym, że duplikat z grupy ma związek ze środkiem układu współrzędnych, jeśli chce się go traktować w ten sposób (dodawać group instacje), Natomiast Duplikate linked jest trochę prostszy i mniej wymagający - bo po prostu zawiera zlinkowaną kopię siatki i normalnie origin względem origina przesunięty. Jest jeden szczególny przypadek, gdy się zachowuje względem pamięci jak instancja - gdy ma taką samą skalę i rotację.

Share this post


Link to post
Share on other sites
  • 0

wydaje mi się że to raczej kwestia modyfikatorów dodanych do obiektu a nie samego obrotu. u mnie alt+D newet poobracane daje takie zwiekszenie ramu jak grupy

Share this post


Link to post
Share on other sites
  • 0
... u mnie alt+D newet poobracane daje takie zwiekszenie ramu jak grupy

 

to już dziwne co to możesz podesłać plik testowy w którym coś takiego u ciebie występuję?

Share this post


Link to post
Share on other sites
  • 0

Tak Jest. Każdy Linked duplicate z subsurfem bierze dodatkowy ram, obracanie nie ma tu wiele do rzeczy.

Natomiast group instance wciąż nie bierze dodatkowego ramu, ile by nie miał modyfikatorów.

 

Sorry że zamieszałem swoim szczególnym przykładem, ale chyba jakaś wiedza jednak z tego wynikła.

Edited by ikkiz

Share this post


Link to post
Share on other sites
  • 0

pamietam jak sie klocilem z cala blenderownia na temat tego hahahahhahaha ikkiz pamietasz xD?

Share this post


Link to post
Share on other sites
  • 0

Nie dokładnie o to, ale faktycznie nie jeden raz się kłóciłeś z całą blenderownią :)

Share this post


Link to post
Share on other sites
  • 0

Idlero: sorry ale nie zapisałem, do tego mam robotę i nie chce mi się tworzyć jeszcze raz :P

Ale jest to imo logiczne, skoro każdy klon (alt+D) ma swój własny (oddzielny) stos modyfikatorów, to nie można traktować takiego zestawu jako instancji. Natomiast czysty klon (bez modyfikatorów) już można i Cycles to robi. Przy group Instance klon jest idealny i zmiana stosu modyfikatorów w źródle powoduje zmianę we wszystkich instancjach.

Edited by szczuro

Share this post


Link to post
Share on other sites
  • 0

Ikkiz- Nie wziąłem po uwagę że twój obiekt ma modyfikatory... Czyli jest tak jak mówię, Alt+D to jest instancja. Jest jedno ale. To instancja mesha w obiekcie który sam w sobie nie musi być instancją. Jak postukasz w konsoli pythona to będziesz miał tego potwierdzenie. Obiekt może mieć dowolną skale, rotacje i translacje ale póki mesh do którego się odwołuje jest instancją to będzie wczytany do ramu tylko raz.

Modyfikatory natomiast, jak sama nazwa wskazuje modyfikują mesha więc dane są podmieniane na zupełnie nową siatkę, w większości przypadków nie ma jak tego zoptymalizować bo modyfikatory mogą mieć zupełnie inne ustawienia, odwoływać się do target obiektów, byś animowane w inny sposób (armature modifier). To co mogliby zoptymalizować to instancjonowanie statycznych meshy z subsurfem (nie testowałem, może nawet tak to już działa).

Group instance działa razem z modyfkatorami dlatego że pobiera dane siatki już po jej modyfikacji, to jest dodatkowe usprawnienie. Modyfikatory obiektu w instancjach grupy zawsze mają identyczne ustawienia.

 

Zlm4nNa.png

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

We are using cookies. Read about our Privacy Policy