Moderní filmové efekty, animace nebo vědecké vizualizace dnes pracují s digitálními scénami o velikosti stovek gigabajtů. Pro grafické karty, které tyto obrazy vypočítávají, jde o zásadní problém – jejich vlastní paměť je řádově menší. Vědci z národního superpočítačového centra IT4Innovations proto přišli s novou metodou, která umožňuje renderovat scény větší, než je celkový součet pamětí všech grafických karet v systému. Chytrou kombinací paměti grafických karet a operační paměti počítače je systém schopen zpracovávat extrémně rozsáhlé scény bez výraznějšího poklesu výkonu.
Přestože kapacita pamětí grafických karet (GPU) každý rok roste, stále nestačí držet krok s nároky moderní produkce. Ať už se jedná o filmové efekty, animaci, nebo vědecké vizualizace, komplexní digitální prostředí nezřídka obsahují stovky milionů geometrických prvků a tisíce textur. Jako příklad poslouží známá testovací scéna ostrova z Disneyho filmu Moana, která zabírá téměř 170 gigabajtů dat. Pokud se taková scéna do paměti grafické karty nevejde, je její renderování výrazně omezené nebo krajně neefektivní.
Výzkumný tým z IT4Innovations tento problém řeší prostřednictvím tzv. out-of-core renderování. Princip metody spočívá v tom, že část dat scény zůstává v rychlé paměti grafických karet, zatímco méně často využívané informace jsou uchovávány v operační paměti počítače (RAM). Algoritmus pomocí krátkého testovacího výpočtu zjistí, které části scény jsou využívány nejčastěji, a právě ty prioritně udržuje v paměti GPU, zatímco ostatní data přesouvá do systémové RAM. Tím se pomalejší přístupy k datům omezují na minimum a celý výpočet zůstává efektivní.
„Naším cílem bylo vytvořit systém, který umožní grafickým kartám pracovat i se scénami výrazně většími, než je jejich vlastní paměť,“ říká Milan Jaroš z IT4Innovations. „Výsledky ukazují, že díky této metodě mohou i menší systémy s několika grafickými kartami zpracovávat velmi rozsáhlé scény, které byly dříve doménou mnohem větších výpočetních systémů.“
Metoda využívá technologii NVIDIA Unified Memory, jež umožňuje sdílený adresní prostor mezi procesorem a grafickými kartami. Ve spojení se statistickou analýzou přístupů k datům dokáže algoritmus dynamicky rozhodovat o tom, kde bude která část scény uložena, a tím minimalizovat náročné přenosy dat mezi jednotlivými částmi systému. Přístup je kompatibilní s vysokorychlostními propojeními grafických karet, jako je NVLink, což zajišťuje rychlý a efektivní přenos dat mezi jednotlivými výpočetními jednotkami.
Výzkumníci zároveň navrhli strategii pro renderování animací. Systém je schopen kombinovat statistiky přístupů k datům z různých pozic kamery, díky čemuž lze optimalizovat práci s pamětí napříč celou sekvencí snímků. Náročnou analýzu tak není nutné opakovat pro každý snímek zvlášť.
Účinnost nové metody vědci ověřili na několika výpočetních systémech, mimo jiné na superpočítačích Karolina a Barbora a také na systému NVIDIA DGX-2 v IT4Innovations. Testy na extrémně náročných scénách přesahujících 100 gigabajtů prokázaly, že metoda funguje napříč různými hardwarovými architekturami a dokáže efektivně využít jak moderní vysokorychlostní propojení grafických karet, tak i běžné komunikační sběrnice.
Navržené řešení navíc nevyžaduje zásadní zásahy do stávajících renderovacích nástrojů. Lze jej integrovat například do populárního open-source nástroje Blender Cycles. To otevírá nové možnosti nejen velkým filmovým studiím, ale i menším tvůrcům, výzkumným týmům a vědeckým institucím, které potřebují pracovat s rozsáhlými 3D daty.
Nový přístup publikovaný v odborném časopise Future Generation Computer Systems tak dokládá, že i menší multi-GPU systémy mohou efektivně zvládat extrémně velké scény. Inteligentní správa dat mezi pamětí grafických karet a operační pamětí počítače představuje důležitý krok k tomu, aby se vysoce kvalitní renderování stalo dostupnějším pro širší spektrum aplikací – od filmové produkce až po vědeckou vizualizaci.
Zdroj: it4i.cz


