Čeští vědci posouvají možnosti renderování na grafických kartách
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 počítají, to představuje zásadní problém – jejich vlastní paměť je řádově menší. Vědci z národního superpočítačového centra IT4Innovations proto představili novou metodu, která umožňuje renderovat scény větší, než je součet pamětí všech grafických karet v systému. Díky chytré kombinaci paměti grafických karet a operační paměti počítače může systém zpracovávat extrémně rozsáhlé scény bez výrazného poklesu výkonu.
Navzdory tomu, že kapacita pamětí grafických karet (GPU) každoročně roste, stále nedokáže držet krok s nároky moderní produkce. Ať už jde o filmové efekty, animaci nebo vědecké vizualizace, komplexní digitální prostředí často obsahují stovky milionů geometrických prvků a tisíce textur. Příkladem může být známá testovací scéna ostrova z filmu Moana od studia Disney, která zabírá téměř 170 gigabajtů dat. Pokud se taková scéna nevejde do paměti grafické karty, je její renderování výrazně omezené nebo velmi neefektivní.
Výzkumný tým z IT4Innovations tento problém řeší pomocí tzv. out-of-core renderování. Princip 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 uloženy v operační paměti počítače (RAM). Algoritmus krátkým testovacím výpočtem určí, které části scény jsou nejvíce využívány, a tyto klíčové části prioritně udržuje v paměti GPU, zatímco zbytek přesouvá do systémové RAM. Tím se minimalizují pomalejší přístupy k datům 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, která umožňuje sdílený adresní prostor mezi procesorem a grafickými kartami. V kombinaci 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 mezi grafickými kartami, jako je NVLink, což umožň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 dokáže kombinovat statistiky přístupů k datům z různých pozic kamery, což umožňuje optimalizovat práci s pamětí napříč celou sekvencí snímků. Díky tomu není nutné znovu provádět náročnou analýzu pro každý snímek.
Efektivitu nové metody vědci ověřili na několika výpočetních systémech, včetně superpočítačů Karolina a Barbora i systému NVIDIA DGX-2 v IT4Innovations. Testy na extrémně náročných scénách o velikosti více než 100 gigabajtů ukázaly, že přístup 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í změny ve stávajících renderovacích nástrojích. 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 také menším tvůrcům, výzkumným týmům a vědeckým institucím, které potřebují pracovat s velmi rozsáhlými 3D daty.
Nový přístup publikovaný v odborném časopise Future Generation Computer Systems tak ukazuje, že i menší multi-GPU systémy mohou efektivně pracovat s extrémně velkými scénami. 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 bylo vysoce kvalitní renderování dostupnější pro širší spektrum aplikací – od filmové produkce až po vědeckou vizualizaci.