Spoločnosť Valve otvorila nový kompilátor shaderov pre GPU AMD

Spoločnosť Valve navrhol Mesa developer mailing list má nový shader kompilátor ACO pre vodiča Vulkan RADV, polohovateľné ako alternatíva k kompilátoru shaderov AMDGPU používanému v ovládačoch OpenGL a Vulkan RadeonSI a RADV pre grafické čipy AMD.
Po dokončení testovania a dokončení funkčnosti sa plánuje ponúknuť ACO na zahrnutie do hlavného zloženia Mesa.

Navrhovaný kód Valve je zameraný na poskytovanie čo najoptimálnejšieho generovania kódu pre shadery herných aplikácií, ako aj na dosiahnutie veľmi vysokej rýchlosti kompilácie. Shader kompilátor Mesa využíva komponenty LLVM, ktoré neposkytujú požadovanú rýchlosť kompilácie a neumožňujú plnú kontrolu nad riadiacim tokom, čo v minulosti spôsobovalo vážne chyby. Okrem toho odklon od LLVM umožňuje implementovať agresívnejšiu analýzu nezrovnalostí a jemnejšie riadenie zaťaženia registrov, čo vám umožňuje generovať efektívnejšie spustiteľné súbory.

ACO je napísané v C++, navrhnuté s ohľadom na kompiláciu JIT a používa rýchle iteračné dátové štruktúry, pričom sa vyhýba štruktúram založeným na ukazovateľoch, ako sú prepojené zoznamy a reťazce na def-use. Reprezentácia stredného kódu je úplne založená na SSA (Static Single Assignment) a umožňuje pridelenie registra presným predbežným výpočtom registra v závislosti od shadera.

V súčasnosti sú na diskrétnych GPU AMD (dGPU VI+) podporované iba pixelové (fragmentové) a výpočtové shadery. ACO však už správne zbiera shadery pre všetky testované hry, vrátane komplexných shaderov z Shadow of the Tomb Raider a Wolfenstein II. Prototyp ACO navrhnutý na testovanie je takmer dvakrát rýchlejší ako kompilátor shadera AMDGPU, pokiaľ ide o rýchlosť kompilácie a ukazuje zvýšenie FPS v niektorých hrách pri spustení na systémoch s ovládačom RADV.

Spoločnosť Valve otvorila nový kompilátor shaderov pre GPU AMD

Spoločnosť Valve otvorila nový kompilátor shaderov pre GPU AMD

Zdroj: opennet.ru

Pridať komentár