Valve-k shader konpilatzaile berri bat ireki du AMD GPUetarako

Balbula konpainia proposatu Mesa garatzaileen posta-zerrendak shader konpilatzaile berri bat du ACO Vulkan RADV gidariarentzat, posizionagarria OpenGL eta Vulkan kontrolatzaileetan RadeonSI eta RADV AMD chip grafikoetarako AMDGPU shader konpilatzailearen alternatiba gisa.
Probak amaitu eta funtzionaltasuna amaitutakoan, ACO Mesaren osaera nagusian sartzeko eskaintzea aurreikusi da.

Valve-k proposatutako kodea joko-aplikazioen itzalaldietarako ahalik eta onena den kodea sortzea du helburu, baita konpilazio-abiadura oso altua lortzera ere. Mesa-ren shader konpilatzaileak LLVM osagaiak erabiltzen ditu, ez baitute nahi den konpilazio-abiadura ematen eta ez dute kontrol-fluxuaren kontrol osoa onartzen, eta horrek akats larriak eragin ditu iraganean. Horrez gain, LLVMtik urruntzeak desadostasun-analisi oldarkorragoa eta erregistro-kargaren kontrol finagoa ezartzea ahalbidetzen du, exekutagarri eraginkorragoak sortzeko aukera ematen duena.

ACO C++-n idatzita dago, JIT konpilazioa kontuan hartuta diseinatuta, eta datu-egitura iteratibo azkarrak erabiltzen ditu, erakusleetan oinarritutako egiturak saihestuz, esate baterako, zerrendak eta def-use kateak. Tarteko kodearen irudikapena guztiz oinarritzen da SSA (Static Single Assignment) eta erregistroen esleipena ahalbidetzen du, itzalgailuaren arabera erregistroa aldez aurretik kalkulatuz.

Gaur egun, pixel (fragmentua) eta konputazio itzalgailuak soilik onartzen dira AMD GPU diskretuetan (dGPU VI+). Hala ere, ACOk dagoeneko behar bezala biltzen ditu probatutako joko guztietarako itzalak, Shadow of the Tomb Raider eta Wolfenstein II-ren itzal konplexuak barne. Proba egiteko proposatutako ACO prototipoa AMDGPU shader konpilatzailea baino bi aldiz azkarragoa da konpilazio-abiadurari dagokionez eta joko batzuetan FPS-en igoera erakusten du RADV kontrolatzailea duten sistemetan exekutatzen direnean.

Valve-k shader konpilatzaile berri bat ireki du AMD GPUetarako

Valve-k shader konpilatzaile berri bat ireki du AMD GPUetarako

Iturria: opennet.ru

Gehitu iruzkin berria