Společnost Valve odhalila nový kompilátor shaderů pro GPU AMD

Společnost Valve navrhl nový shader kompilátor na Mesa developer mailing listu ACO pro řidiče RADV Vulkan, umístěno jako alternativa ke kompilátoru shaderu AMDGPU používanému v ovladačích RadeonSI a RADV OpenGL a Vulkan pro grafické čipy AMD.
Po dokončení testování a zdokonalení funkčnosti se plánuje, že ACO bude nabídnuto k zahrnutí do hlavního složení Mesa.

Cílem navrženého kódu Valve je zajistit, aby generování kódu bylo co nejoptimálnější pro shadery herních aplikací, a také dosáhnout velmi vysokých rychlostí kompilace. Shader kompilátor Mesa používá komponenty LLVM, které nedosahují požadované rychlosti kompilace a neumožňují plnou kontrolu toku řízení, což již v minulosti způsobilo vážné chyby. Odchod od LLVM navíc umožňuje agresivnější analýzu nesrovnalostí a jemnější kontrolu nad načítáním registrů, což umožňuje generovat efektivnější spustitelné soubory.

ACO je napsáno v C++, navrženo s ohledem na kompilaci JIT a používá datové struktury s rychlým opakováním, přičemž se vyhýbá strukturám založeným na ukazatelích, jako jsou propojené seznamy a řetězce def-use. Zprostředkující reprezentace kódu je zcela založena na SSA (Static Single Assignment) a umožňuje provádět alokaci registrů přesným předpočítáním registru v závislosti na shaderu.

V současnosti jsou na diskrétních GPU AMD (dGPU VI+) podporovány pouze pixelové (fragmentové) a výpočetní shadery. ACO však již správně staví shadery pro všechny testované hry, včetně komplexních shaderů ze Shadow of the Tomb Raider a Wolfenstein II. Prototyp ACO navržený k testování je téměř dvakrát rychlejší než kompilátor shaderu AMDGPU a ukazuje zvýšení FPS v některých hrách, když běží na systémech s ovladačem RADV.

Společnost Valve odhalila nový kompilátor shaderů pro GPU AMD

Společnost Valve odhalila nový kompilátor shaderů pro GPU AMD

Zdroj: opennet.ru

Přidat komentář