Vulkan kontrolatzaileak orain Valve-ren ACO build backend-a erabiltzen du

Mesa 20.2 bertsioa osatzeko erabilitako kode oinarrian, RADV kontrolatzailea, Vulkan AMD txipetarako backend-era aldatu da konpilatzeko lehenetsia itzalak »ACO«, Valvek garatua LLVM shader konpilatzailearen alternatiba gisa.

Aldaketa zehaztu da jokoen produktibitatea handitzea lortu zenean egin zen eta jaurtitzeko denbora murriztea.

Aldaketa RADV kontrolagailutik backend berrira posible zen ACO funtzionaltasunean parekotasuna lortu ondoren AMD garatutako backend zaharrarekin AMDGPU kontrolatzailearentzat, RadeonSI OpenGL kontrolatzailean erabiltzen jarraitzen duena.

Valvek egindako probek erakutsi dute ACO AMDGPU shader eraikuntza-konpiladorea baino bi aldiz azkarragoa dela eta FPSaren gehikuntza erakusten du joko batzuetan RADV kontrolatzailea duten sistemetan exekutatzean.

AMD OpenGL eta Vulkan kontrolatzaileek gaur egun LLVM upstream proiektuaren parte den shader konpiladorea erabiltzen dute. Proiektu hori izugarria da eta helburu desberdin ugari ditu, eta joko-itzalen lineako konpilazioa horietako bat besterik ez da. 

Horrek garapen konpentsazioak ekar ditzake, non jokoaren funtzionaltasuna hobetzea beste modu batean baino zailagoa den edo jokoaren ezaugarri bereziak beste gauza batzuetan lan egiten duten LLVM garatzaileek nahi gabe hautsi ohi dituzten.

-Ren backend-a ACOren helburua kodea modu optimoenean sortzen dela ziurtatzea da posible da joko aplikazioen itzaletarako eta konpilazio abiadura oso altua lortzea.

ACO C ++-en idatzita dago, garatu garatu JIT konpilaziorako aplikagarritasuna, eta azkarrak erabili datu egituren gainean errepikatzeko, estekatutako zerrendak eta kateak bezalako erakusleetan oinarritutako egiturak def. Kodearen bitarteko irudikapena guztiz oinarrituta dago SSA (Esleipen estatiko bakarra) eta erregistroak esleitzea ahalbidetzen du, erregistroa shader-en arabera zehazki kalkulatuz.

Kodearen tarteko irudikapena guztiz oinarrituta dago SSA (Esleipen estatiko bakarra) eta erregistroak esleitzea ahalbidetzen du, erregistroa zehaztasunez kalkulatuz shaderrean oinarrituta.

Une honetan pixelak bakarrik onartzen dira (zatiak) eta itzalak kalkulatu AMD GPU diskretuetan (dGPU VI +). Hala ere, ACOk dagoeneko zuzen biltzen ditu probatutako joko guztietako itzalak, Shadow of the Tomb Raider eta Wolfenstein II filmetako itzal konplexuak barne.

Proposatutako ACO prototipoa probarako AMDGPU shader konpiladorea baino bi aldiz azkarragoa da eta FPSa handitzen dela erakusten du zenbait jokoetan RADV kontroladorea duten sistemetan exekutatzen denean.

Valve-ren kodea hartzearen garrantziaz zerbait gehiago ulertzeko, garrantzitsua da hori lehenestea helburua ahalik eta kode sortze egokiena bermatzea da joko aplikazioen itzaletarako, baita konpilazio abiadura oso handia ere.

Mesan eskuragarri dagoen shader konpiladoreak LLVM osagaiak erabiltzen ditu, nahi ez den konpilazio-abiadura lortzen uzten ez duten eta kontrol-fluxuaren erabateko kontrola onartzen ez dutenak, iraganean akats larriak eragin dituena.

Gainera, LLVM saihesteak analisi oldarkorragoa ezartzea ahalbidetzen du desadostasunak eta erregistroen kargaren kudeaketa finagoa, fitxategi exekutagarrien sorrera eraginkorragoa ahalbidetuz.

Azkenean, gainera Garrantzitsua da kontuan hartzea une honetan ACOk Mesa RADV Vulkan kontrolagailuarentzat bakarrik funtzionatzen duela. Baina ACO garatzaileek baieztatu dute hurrengo pausoa OpenGL RadeonSI kontrolatzaileari laguntzeko ACOren gaitasunak zabaltzen hastea izango dela, etorkizunean eta kontrolatzaile honentzat ACOk LLVM shader konpilatzaile lehenetsia ordezkatu ahal izateko. .

Zenbat lehen erabiltzen zen backendarekin jarraitzea nahiago dutenek LLVM shader konpilatzailetik, hara itzuli daitezke, aldagai bat aldatu besterik ez dute egin behar.

Aldaketa hau egiteko ematen den ingurune aldagaia da "RADV_DEBUG = llvm".


Artikuluaren edukia gure printzipioekin bat dator etika editoriala. Akats baten berri emateko egin klik hemen.

Iruzkin bat, utzi zurea

Utzi zure iruzkina

Zure helbide elektronikoa ez da argitaratuko. Beharrezko eremuak markatuta daude *

*

*

  1. Datuen arduraduna: Miguel Ángel Gatón
  2. Datuen xedea: SPAM kontrolatzea, iruzkinen kudeaketa.
  3. Legitimazioa: Zure baimena
  4. Datuen komunikazioa: datuak ez zaizkie hirugarrenei jakinaraziko legezko betebeharrez izan ezik.
  5. Datuak biltegiratzea: Occentus Networks-ek (EB) ostatatutako datu-basea
  6. Eskubideak: Edonoiz zure informazioa mugatu, berreskuratu eta ezabatu dezakezu.

  1.   AldatuHeavy esan zuen

    Eta nola aukeratzen du erabiltzaileak joko bat zein backend-ekin exekutatu behar duen? Zer fitxategi aldatu behar ditu?