GPU farm újratöltve

Fehér Krisztián weboldala
Fehér Krisztián weboldala
Tartalomhoz ugrás

GPU farm újratöltve

Webáruház
Közzététel itt Szakmai munka · 1 Június 2022
GPU gyorsításos renderelésről már több kiadványom is megjelent, részben programozási szempontból, részben felhasználói szemszögből megközelítve a dolgot.

Ezek mindegyikében közös volt, hogy egyetlen gép köré lettek felépítve, még akkor is, ha akár 6 darab videokártyáról is volt szó.

Nemrégiben kezdtem el több gép fizikai összekapcsolásának a gondolatával is foglalkozni. Ennek az az elsődleges előnye, hogy elvileg korlátlan mennyiségű GPU fogható munkára irányítottan. Ezt persze nem én találtam ki, ipari méretű GPU farmokat több gépből állítanak össze már régóta. Az összekapcsolás hálózati kábelek segítségével történik. Mint ismeretes, az NVIDIA emiatt például megvásárolta a Mellanox nevű céget, ami szupergyors hálózati eszközök fejlesztésére specializálódott. Én cégeket persze nem vásárolok fel, de otthoni körülmények között ezt is lehet modellezni.

És itt kezdődnek a nehézségek.

Egy 1Gbps sebességű csatornán kb. 120MB (a gyakorlatban inkább csak 100MB) adatot lehet keresztülpasszírozni másodpercenként. 8 megabájtos FullHD képkockák esetén ez a legjobb esetben is csak kb. 15 kép/mp-es sebességre lenne elegendő, úgy hogy nem számoljuk ebbe bele az adminisztratív tevékenységeket is ennek során. Kipróbálásra persze ez is elég lehet, de ez egy nagyon szűk keresztmetszetté válhat több gép esetén. Szóval legalább 2.5Gbps sebességben kell gondolkodni. Ez még nem olyan drága, mint a csillagászati 10Gbps technológia és elég sok eszköz érhető el hozzá kiskereskedelmi forgalomban is.

Egyelőre 2 gépet készítettem elő ennek szellemében és egy 2.5 gigabites portokkal rendelkező switch-et. Ez azért kell, mert valószínűleg legalább 3 gép fog kommunikálni egymással ebben a projektemben, de többnek a bekapcsolását is lehetővé szeretném tenni (ésszerű keretek között persze).



A másik kérdés az, hogy milyen módszerrel történjen az adatelérés.

Eddig 2 lehetőség fogalmazódott meg bennem:
a. megosztott mappával dolgozok és a gépek előrenderelést végeznek, a képkockákat belerakják ebbe a mappába és a renderelő program is innen olvassa ki
b. TCP/IP protokollt használva küldik a gépek a képkockákat a megjelenítést végző géphez.

Mindkét megoldás kivitelezhető, technikailag b.-t nehezebb megvalósítani, de gyorsabb és rugalmasabb működéssel kecsegtet. A dolog kulcsa az összehangolt kommunikció, egyáltalán: maga kommunikáció.
A projektben legalább 2 gép és 4 videokártya fogja végezni a renderelést. Ezt megtámogattam most egy RTX 3060-as videokártya beszerzésével is, ami egyébként is már régóta tervben volt a renderelő alkalmazásaimhoz.

Mondanom sem kell, hogy a projektből kiadványt is tervezek írni, ahol szokás szerint teljes forráskódokat is közölni fogok. Ez még odébb van, de talán jövő év elejére már működhet is a dolog, addig ugyanis még más kiadványok is be vannak ütemezve.


Vissza a tartalomhoz