- Natālijas Vokas izstrādātie kodola un KDE ielāpi piešķir prioritāti priekšplāna spēļu VRAM, samazinot GTT izmantošanu un raustīšanos.
- dmemcg-booster un plasma-foreground-booster koordinē kodolu un darbvirsmu, lai aizsargātu aktīvajai spēlei piešķirto GPU atmiņu.
- Uzlabojumi galvenokārt ir noderīgi AMD grafiskajiem procesoriem ar 8 GB vai mazāku videoatmiņu, kas jau ir viegli pieejami CachyOS un ir paredzēti integrācijai augšupējā līmenī.
- Jaunā sistēma labāk izmanto katru MB videoatmiņas, stabilizē minimālo kadru ātrumu sekundē (FPS) un pagarina vidējas klases grafikas karšu kalpošanas laiku operētājsistēmā Linux.
Ja spēlējat datorā ar Linux un joprojām izmantojat grafikas karti ar 8 GB vai mazāk videoatmiņasJūs, iespējams, esat saskārušies ar raustīšanos, mikroraustīšanos un FPS kritumiem jaunākajās spēlēs. Pārsteidzoši ir tas, ka bieži vien šī sliktā pieredze nav tik daudz saistīta ar jūsu GPU jaudu, cik ar... Kā sistēma pārvalda video atmiņu kad lietas kļūst neglītas.
Tas viss ir ieguvis diezgan nopietnu pavērsienu, pateicoties darbam Natālija Voka, Valve grafikas draiveru komandas inženiereVock, kas specializējas RADV (Vulkan draiveris AMD GPU), ir izstrādājis ielāpu komplektu. Linux kodols, KDE Plasma un Gamescope ekosistēma kas pilnībā maina veidu, kā sistēma izlemj, kas paliek VRAM un kas tiek izmests sistēmas RAM, kad vairs nav vietas.
Problēma ar GPU ar 8 GB VRAM operētājsistēmā Linux
Pēdējos gados video atmiņas apjoms ir kļuvis par ļoti reālu problēmu. Pašreizējās spēles ielādējas. milzīgas tekstūras, sarežģīta ģeometrija un uzlaboti efekti kas patērē videokartes atmiņu. Ar 8 GB vai mazāk, kas ir ļoti izplatīta vidējas klases grafikas kartēs, spēlei ir viegli piepildīt grafikas kartes atmiņu, tiklīdz kaut nedaudz palielināt iestatījumus.
Linux sistēmā, kad VRAM sāk pārpildīties, tiek aktivizēts t.s. Grafikas tulkošanas tabula (GTT)Būtībā sistēma sāk pārvietot daļu GPU datu uz datora RAM, lai novērstu avārijas. Problēma ir tā, ka RAM, lai arī ātra, ir ievērojami lēnāka nekā VRAM, un šis latentuma lēciens nozīmē... stostīšanās, kadru ātruma kāpumi un saraustīta spēles sajūta.
Līdz šim linux kodols Man nebija īsti labas spējas izlemt kuriem datiem bija jāpaliek VRAM atmiņā un kurus no tiem varēja nosūtīt uz RAM bez nopietnām problēmām. Sistēma pareizi neņēma vērā, vai process bija pilnekrāna spēle vai pārlūkprogramma pazudusi fonāDaudzās situācijās tieši pati spēle tika daļēji izmesta no videoatmiņas, kamēr mazāk atbilstošas darbvirsmas lietojumprogrammas turpināja aizņemt videoatmiņu.
Tas viss radīja tālu no ideāla scenārija spēlētājiem: ar 8 GB grafisko karti, prasīgos nosaukumos, piemēram, Kiberpanks 2077 zem Steam spēlēSistēma tik tikko izmantoja 6 GB videoatmiņas, kamēr GTT izmantoja vairāk nekā 1,3 GB operatīvās atmiņas, kas ir pilnīgi nevēlami. Īsāk sakot: Bija daudz brīvas videoatmiņas, un tomēr spēle joprojām cieta..
Praktiskās sekas lietotājam bija skaidras: Nestabils minimālais FPS, raustīšanās, ielādējot jaunas zonas, nelielas sastingšanas, pagriežot kameru vai ieejot citā zonā, un vispārēja sajūta, ka "grafika ir tik tikko atbilstoša", lai gan patiesībā sašaurinājumu radīja slikti noregulēta atmiņas pārvaldība.

Valve un Natālijas Vokas priekšlikums: prioritizēt spēlēšanu ar VRAM
Lai risinātu šo problēmu pašā saknē, Vock ir izstrādājis risinājumu, kas apvieno kodola izmaiņas, izmantojot lietotāja telpas rīkusGalvenā ideja ir vienkārši izskaidrojama, lai gan aiz tās slēpjas daudz inženierijas: skaidri pateikt Linux Kura lietojumprogramma ir priekšplānā un kurai vajadzētu būt absolūtai prioritātei VRAM?.
Šī priekšlikuma tehnisko kodolu veido ielāpi, kas paredzēti Ierīces atmiņas cgroup kontrolieris (DRM) un virkne būtisku modifikāciju kodola tulkošanas tabulu karšu (TTM) atmiņas pārvaldības apakšsistēmā. TTM ir atbildīgs par atmiņas piešķiršanas un izņemšanas grafikas ierīcēs lēmumu pieņemšanu, tāpēc tā ir ideāla vieta, lai iemācītu sistēmai jaunu domāšanas veidu.
Šie ielāpi ļauj kodolam Identificējiet ar priekšplāna spēli saistīto atmiņas grupu un piešķiriet tai VIP statusu. Kad kaut kas ir jāizņem no VRAM, jo vairs nav vietas, sistēma vispirms meklēs darbvirsmas procesi, pārlūkprogrammas, multivides atskaņotāji vai utilītas kas darbojas fonā, atstājot kritiski svarīgu spēles saturu kā pēdējo līdzekli.
Vienkāršāk sakot: turpmāk, ja spēlējat spēli un jums ir atvērti vairāki logi, Videoatmiņa (VRAM) "pieder" spēlei pirmām kārtām.Tikai tad, ja burtiski nebūs citas iespējas, Linux pieskarsies aktīvā nosaukuma resursiem, ievērojami samazinot raustīšanās iespējamību nepareiza izmešanas lēmuma dēļ.
Aiz šīm izmaiņām slēpjas ļoti cieša integrācija ar funkcionalitāti grupas Linux izmanto mehānismu, ko systemd jau izmanto, lai izolētu un kontrolētu lietojumprogrammu resursus. Vock ir izmantojis šo sistēmu, lai izveidotu veidu, kā klasificēt un aizsargāt GPU atmiņu pēc procesu grupāmļaujot kodolam visu laiku zināt, kas ir jāsaglabā un ko var upurēt.
dmemcg-booster: jaunās ierīces atmiņas vadības sirds
Lietotāja telpas galveno elementu sauc par dmemcg pastiprinātājsŠis ir systemd pakalpojums, kas regulē ierobežojumu un prioritāšu piemērošanu. Ierīces atmiņas vadības grupas (DMEM cgroups) par lietojumprogrammām, kas izmanto GPU.
Tās galvenā funkcija ir skaidri pateikt sistēmai Kura programma ir jāaizsargā VRAM atmiņā katrā brīdī. Kad palaižat spēli un tā kļūst par galveno logu, dmemcg-booster atzīmē to kā prioritāru procesu savā cgroup, lai kodols saprastu, ka Šo video atmiņu nevar viegli aiztikt..
Bez šī mehānisma kodols uztvēra visus VRAM lietojumus praktiski vienādi, kas noveda pie "aklām" izslēgšanām. Ja, darbojoties dmemcg-booster, ir jāatbrīvo vieta, jo atmiņa ir pilna, Pirmie procesi, kas tiks ielādēti RAM, būs sekundārie procesi.: galddatori, pārlūkprogrammas vai lietojumprogrammas, kas nav fokusā.
Šī prioritāšu noteikšana maģiski nesamazina spēles VRAM patēriņu, bet gan maksimāli izmantot katru pieejamo megabaituTādējādi GPU, kas iepriekš šķita nepietiekams atmiņas pārvaldības dēļ, tagad var darboties daudz tuvāk savam patiesajam potenciālam.
Testos, ar kuriem Voks ir dalījies Cyberpunk 2077 Uz 8 GB kartes, izmantojot Steam Play, izmaiņas ir ļoti pamanāmas: pirms ielāpiem spēle tik tikko izmantoja 6 GB videoatmiņas, un aptuveni 1,37 GB tika izlietoti GTT RAM. Pēc jaunās atmiņas arhitektūras aktivizēšanas spēle izmanto... aptuveni 7,4 GB faktiskās VRAM, savukārt GTT izmantošana samazinās līdz aptuveni 650 MB, tas ir, tas ir samazināts līdz mazāk nekā pusei.
plasma-foreground-booster un koordinācija ar KDE Plasma
Lai visa šī prioritāšu sistēma darbotos nevainojami, nepietiek tikai ar kodola modificēšanu; ir jāmodificē arī darbvirsmas vide. pateikt sistēmai, kurš logs faktiski atrodas priekšplānāŠeit noder otrais Valve izstrādātais komponents: plazmas priekšplāna pastiprinātājs.
Šis modulis ir paredzēts integrācijai ar KDE plazma un darbojas kā tilts starp darbvirsmas un ierīces atmiņas cgroups mehānismiem. Tās uzdevums ir vienkāršs, bet izšķirošs: ziņot reāllaikā, kurš logs ir aktīvs (parasti jūsu spēle pilnekrāna režīmā), lai sistēma varētu dinamiski pielāgot VRAM prioritātes.
Pārslēdzot lietojumprogrammas vai nospiežot taustiņu kombināciju Alt+Tab, lai pārslēgtos uz citu logu, plasma-foreground-booster atjaunina informāciju, kas nonāk kodolā un dmemcg-booster, lai Prioritātes "kronis" salīdzinājumā ar VRAM var mainīties Ja vēlaties. Tā ir horeogrāfija starp darbvirsmu un kodolu, kādas iepriekš vienkārši nebija.
Papildus KDE Plasma, Valve ir apsvēris arī tos, kas izmanto citas darbvirsmas vides. Šādos gadījumos risinājums ietver jaunākās Gamescope versijasGamescope, Valve labi zināmais mikrokomponists, ko plaši izmanto Steam Deck un spēļu vidē, var veikt līdzīgu funkciju kā Plasma. Identificējiet spēles logu un atzīmējiet to, lai saņemtu resursu prioritāti.vai dažās darbplūsmās izmantot tādus rīkus kā Pudeles lai pārvaldītu saderības sesijas.
Pamatideja ir izveidot koordinēta ekosistēma no kodola līdz darbvirsmai, kurā visa sistēma ir saskaņota ar to, ko lietotājs patiesībā vēlas: lai spēle viņa priekšā darbotos pēc iespējas vienmērīgāk, pat ja fonā darbojas citas lietas.
Praktiski rezultāti tādās spēlēs kā Cyberpunk 2077
Papildus teorijai svarīgi ir tas, kā tas viss tiek pārnests uz ikdienas spēļu pieredzi. Voka parādītajos publiskajos piemēros viens no reprezentatīvākajiem gadījumiem ir Cyberpunk 2077 darbojas Steam Play platformā uz 8 GB GPU.
Pirms ielāpa izlaišanas spēle darbojās ar VRAM izmantošanu, kas uz papīra šķita pieņemama, taču patiesībā tā nebūt neizmantoja visu pieejamo atmiņu: aptuveni 6 GB GPU un 1,37 GB "izlijuši" GTTŠī pastāvīgā pāreja nozīmēja, ka ievērojama daļa grafikas datu faktiski atradās sistēmas RAM, piespiežot GPU veikt vaicājumus, izmantojot GTT, un ģenerēt reakcijas laika lēcieni.
Ar jaunās arhitektūras ieviešanu ainava ievērojami mainās. Cyberpunk 2077 sāk izmantot gandrīz visa pieejamā videoatmiņa, aptuveni 7,4 GBsavukārt GTT izmantošana samazinās līdz aptuveni 650 MB. Mazāk izmestās atmiņas nozīmē mazāk lēnu RAM piekļuvi un līdz ar to daudz stabilāka spēļu pieredze.
Ir svarīgi uzsvērt, ka šie ielāpi nav tik ļoti paredzēti Palieliniet maksimālo FPSTas mazais skaitlis, ko redzat, skatoties uz sienu, bet, lai to uzlabotu minimālais FPS un kadru laika stabilitāteCitiem vārdiem sakot, raustīšanās ir samazināta, izciļņi ir izlīdzināti un ir lielāka kopējās plūstamības sajūta, ko spēlētājs patiešām pamana, pārvietojoties pa Naktspilsētu vai jebkuru citu prasīgu atvērto pasauli.
Praksē ieguvums ir īpaši jūtams sistēmās, kurās videoRAM jau bija ļoti tuvu savam ierobežojumam: grafikas kartes ar ietilpību 8 GB vai mazāk, lai varētu spēlēt modernas AAA spēlesar vairākām vienlaikus atvērtām programmām. Tieši šādos "tieši tik daudz" scenārijos laba izslēgšanas un prioritāšu pārvaldība var pagarināt kartes kalpošanas laiku vēl par pāris paaudzēm.
Izplatījumi, saderība un pašreizējais ielāpu statuss
Tagad, kad informācija ir publicēta, vienkāršākais veids, kā pārbaudīt šo jauno atmiņas arhitektūru, ir izmantot cachyOS, izplatījums, kas ir apsteidzis pārējos un pēc noklusējuma integrē šos ielāpus gan kodolā, gan lietotāja telpas komponentos.
Citu izplatījumu gadījumā tas ir iespējams Kompilējiet ielāpoto kodolu un dmemcg-booster un plasma-foreground-booster pakotnes. neatkarīgi, lai gan tas jau nozīmē nedaudz augstāku zināšanu līmeni. Voks un ekosistēma paredz, ka laika gaitā visi šie uzlabojumi kļūs par realitāti. ir integrēti oficiālajā Linux kodolā un oficiālajās KDE un Valve krātuvēs, lai Ubuntu, Fedora, Arch un citu lietotāji varētu gūt labumu, nepieskaroties nekam neparastam; un tiem, kam nepieciešami saderības slāņi, ir pieejamas arī tādas iespējas kā Vīni.
Ir svarīga nianse: šīs izmaiņas galvenokārt ir paredzētas AMD GPU ar atvērtiem draiveriem un RADV steku. Iemesls ir vienkāršs: NVIDIA karšu atmiņas pārvaldība lielā mērā ir atkarīga no slēgti patentēti draiveriTas ievērojami ierobežo to, ko var paveikt no kodola un brīvajām lietotāju telpām. AMD gadījumā atvērtā pirmkoda draiveru izmantošana ļauj daudz labāk pielāgot mijiedarbību starp kodolu, DRM, TTM un grafikas draiveri.
Runājot par laika grafiku, daži izplatījumi jau strādā pie šo uzlabojumu integrēšanas īstermiņā un vidējā termiņā. Tā kā kodols ar atbalstu DMEM c grupas kontrolieris Un, tā kā TTM ielāpi tiek apvienoti stabilās versijās, arvien biežāk būs atrodami distribūcijas, kas ietver VRAM prioritāšu noteikšana spēlēm praktiski "ārpus kastes".
Tiem, kas izmanto citus galddatorus, nevis KDE Plasma, loģiskākais ceļš būs izmantot priekšrocības spēļu skops Savā jaunākajā versijā Valve to padara par standarta elementu spēļu sesiju pārvaldībai, īpaši tādās aparatūrās kā Steam Deck vai hipotētiskās nākotnes iekārtās no uzņēmuma.
Ietekme uz spēļu pieredzi un aparatūras kalpošanas laiku
Visa šī darba tiešas sekas ir tādas, ka miljoniem spēlētāju ar 8 GB grafiskajām kartēm Viņi var turpināt nedaudz uzlabot savas grafikas kartes, krasi nesamazinot grafikas iestatījumus vai nekavējoties neuzlabojot aparatūru. Voka un Valve pieeja uzsver programmatūras efektivitāte un inteliģenta resursu sadalezināmā mērā kompensējot pašas mikroshēmas un tās atmiņas fiziskos ierobežojumus.
Tā vietā, lai samierinātos ar videoatmiņas piepildīšanos un sistēmas nejaušu lēmumu pieņemšanu par to, ko izmest, tagad ir skaidra stratēģija: Priekšplānā redzamā spēle ir pēdējā, kas atstāj videoatmiņu.Tas nozīmē, ka pat ar sarežģītām tekstūrām un vidēm spēles dzinējs, visticamāk, saglabās kritiskos datus GPU ātrajā atmiņā, samazinot pēkšņas sasalšanas.
Vidusmēra lietotājam tas nozīmē kaut ko ļoti taustāmu: viņš var turpināt lietot savu galddatoru, atvērt pārlūkprogrammu ar vairākām cilnēm, mūzikas atskaņotāju vai tērzēšanas lietotnes, zinot, ka, pienāks kritiskais brīdis, Viņi būs tie, kas pirmie upurēs sevi Runājot par videoRAM, nevis par spēli.
No plašākas perspektīvas Voka darbs arī pastiprina vēstījumu, ka Valve nopietni uztver spēļu spēlēšanu operētājsistēmā Linux.Tas neapstājas tikai pie Steam Deck tipa konsoļu vai iespējamu Steam Machines ar 8 GB GDDR6 koplietojamo video atmiņu izlaišanas, bet arī iegulda resursus visas ekosistēmas uzlabošanā: kodolā, draiveros, darbvirsmā un rīkos, piemēram, Gamescope.
Tiem, kas uztraucas par latentumu, kadru laikiem un stabilitāti sarežģītos darbos, šie ielāpi nodrošina tieši to, kas bija nepieciešams: a kontekstam atbilstoša izraidīšanas pārvaldībakurš saprot, kas ir pilnekrāna spēle un kas ir vienkārši fona troksnis uz darbvirsmas.
Īsāk sakot, jaunā infrastruktūra, ko vada Natālija Voka, ir nozīmīgs solis uz priekšu tajā, kā Linux apstrādā video atmiņu resursiem ierobežotās sistēmās. Apvienojot ierīces atmiņas cgroups, ielāpi TTM apakšsistēmai, dmemcg-booster pakalpojums un integrācija ar KDE Plasma un GamescopeVisbeidzot, sistēma darbojas spēlētāja labā, nevis otrādi. Ikvienam, kas spēlē Linux operētājsistēmā ar 8 GB vai mazāku grafisko karti, šis ir viens no tiem klusajiem uzlabojumiem, kuru, tiklīdz esat to izmēģinājis, ļoti pietrūkst, ja tas pazūd.
Kaislīgs rakstnieks par baitu pasauli un tehnoloģiju kopumā. Man patīk dalīties savās zināšanās rakstot, un tieši to es darīšu šajā emuārā, parādot visu interesantāko informāciju par sīkrīkiem, programmatūru, aparatūru, tehnoloģiju tendencēm un daudz ko citu. Mans mērķis ir palīdzēt jums vienkāršā un izklaidējošā veidā orientēties digitālajā pasaulē.
