CG animációs cégnél dolgozom Bécsben, így első kézből tudok beszámolni arról, hogy miért is van létjogosultsága a sok magos workstation CPU-knak.
Van egy kb. 100 gépes renderfarmunk, amit 4 éve építettek, 4GHz i7 7700K procikkal.
A workflow-t kb. úgy kell elképzelni, hogy az emberek beadagolják a render feladatokat egy render managernek, az meg adott prioritások alapján kiosztja a munkát a farmnak. Mondjuk egy 160 kockás jelenetet szétszed 16 jobra, azokat kiosztja 16 gépnek, azaz egy gépre 10 kocka jut.
Ennek a megoldásnak több baja is van:
1. baromi sokat fogyaszt: 100 gép nem csak száz CPU, de ugyanannyi alaplap, táp, memória, hűtő, ssd, stb.
2. nagyon nagy az IO igény: egyszerre 100 gép lóg a szerveren (+ humanok) és még ha nem is mozgatnak hatalmas adatmennyiséget, a metadat forgalom brutális terhelést ró a rendszerre, mert egy renderjob rengeteg apró log file-t és egyebeket generál
3. a nagy fogyasztás nagy hőt is termel, ehhez külön kialakított helységek kellenek, amiben a klíma teljesítménye nagyobb, mint a renderre felhasznált energia. Értsd: ami KW energia bemegy, annak ki is kell jönnie, de mivel tökéletes hatásfokú klíma nincs, így 1KW hőre 1.5KW klíma teljesítménnyel kell számolni.
4. nehezen skálázható: ha hirtelen megugrik a render igény, akkor nem lehet egyik napról a másikra még 100 gépet csatasorba állítani, mert ahhoz újabb klimatizált helység kell, elektromos és adathálózat bővítés, stb.
Na most egy 32 fizikai magos workstation ugyebár 16db. 4 magos i7 munkáját tudja átvenni. Ez azt jelenti, hogy ha az emberünk a jelenetét a saját gépén a háttérben rendereli mondjuk 28 magon, még mindig marad egy "i7-nyi" erő a gépben, hogy a következő jeleneten dolgozzon. Így elméletileg ugyan veszít némi render kapacitást, de ez időben nem jelentkezik, mert nem kell várnia arra, hogy a renderjob-ja sorra kerüljön, illetve maga a render managelése is időt vesz igénybe.
Ezen kívül ha felvesznek még 10 embert, akkor 10 új workstation-el ki lejet elégíteni a megnövekedett render igényt, nem kell +100 géppel növelni a farmot.
Sőt, egyes munkákat akár outsource-olni is lehet, mert az emberünk otthon is le tudja renderelni a jelenetet, nem kell hozzá komplett renderfarm struktúrát építenie.
Persze ez még nem jelenti azt, hogy a renderfarmok innentől feleslegesek, sőt. A Blinn törvény alapján biztosra vehető, hogy a render igény az elérhető renderkapacitással együtt nő. Ha erősebb a gép, húzósabb feladatokat adnak neki.
Csakhogy a renderfarm fejlesztések is sokkal egyszerűbbé válnak: az i7-eket le lehet cserélni TR4-ekre és máris 16szorosára növelik a renderfarm kapacitását, miközben a többi összetevő, mint fogyasztás, hálózati forgalom nem változik jelentősen.
Miért nem GPU:
A GPU render előtt hatalmas jövő áll, de még nem tartunk ott, hogy egy komoly projectet nagyobb áldozatok nélkül teljesen GPU alapokra lehessen helyezni. A legtöbb GPU renderelő tudása limitált, egyes fícsöröket nem támogatnak, sok esetben komplex shader és plugin környezet áll egy-egy project mögött, amit nem lehet egyik napról a másikra GPU-ra implementálni. (Illetve lehet, csak túl sokba kerülne.)
Ráadásul ha bármilyen új render algoritmus, shader jelenik meg, azt elsőként CPU-n fogják kihozni.
Ezen kívül egy 32 magos CPU-val szemben csak egy több GPU-s rendszer tud érdemben annyival többet nyújtani, hogy érdemes legyen bevállalni a vele járó limitációkat és extra költségeket.
Márpedig egy 3-4 1080Ti-s rendszer kiépítése, hűtése és irodai környezetben való üzemeltetése nem egyszerű, költségben pedig jóval a CPU rendszerek fölött van. Egyelőre tehát jobban megéri sokmagos CPU-kat használni és ha az nem elég, akkor pár node-al kibővíteni a farmot, mint az egész céget átállítani GPU-ra.
[ Szerkesztve ]