Valve je otvorio novi shader kompajler za AMD GPU

Valve Company predložio Lista za slanje e-pošte programera Mesa ima novi kompajler za shadere ACO za vozača Vulkan RADV, pozicioniran kao alternativa AMDGPU shader kompajleru koji se koristi u OpenGL i Vulkan drajverima RadeonSI i RADV za AMD grafičke čipove.
Nakon što se završi testiranje i finalizira funkcionalnost, planira se ponuditi ACO za uključivanje u glavni sastav Mesa.

Valveov predloženi kod ima za cilj osigurati generiranje koda koje je što je moguće optimalnije za shadere aplikacija za igre, kao i postizanje vrlo velike brzine kompilacije. Mesin shader kompajler koristi komponente LLVM, koje ne daju željenu brzinu kompilacije i ne dopuštaju potpunu kontrolu tijeka kontrole, što je uzrokovalo ozbiljne pogreške u prošlosti. Osim toga, odmicanje od LLVM-a omogućuje implementaciju agresivnije analize odstupanja i finije kontrole opterećenja registra, što vam omogućuje generiranje učinkovitijih izvršnih datoteka.

ACO je napisan u C++, dizajniran imajući na umu JIT kompilaciju i koristi brze iterativne podatkovne strukture, izbjegavajući strukture temeljene na pokazivačima kao što su povezani popisi i def-use lanci. Intermedijarni prikaz koda u potpunosti se temelji na SSA (Static Single Assignment) i omogućuje dodjelu registra točnim prethodnim izračunom registra ovisno o shaderu.

Trenutno su samo piksel (fragment) i računalni shaderi podržani na diskretnim AMD GPU-ovima (dGPU VI+). Međutim, ACO već ispravno prikuplja shadere za sve testirane igre, uključujući složene shadere iz Shadow of the Tomb Raider i Wolfenstein II. ACO prototip predložen za testiranje gotovo je dvostruko brži od AMDGPU shader kompajlera u smislu brzine kompilacije i pokazuje povećanje FPS-a u nekim igrama kada se izvode na sustavima s RADV drajverom.

Valve je otvorio novi shader kompajler za AMD GPU

Valve je otvorio novi shader kompajler za AMD GPU

Izvor: opennet.ru

Dodajte komentar