Hraní pro časy krize: Linux zlepší výkon grafických karet s 8GB pamětí, pomůže to Steam Machine

Sdílet

Valve Steam Machine Autor: Valve
Valve Steam Machine
Vývojáři mimo jiné z Valve přišli se zlepšeními, díky kterým dostanou majitelé starších a levnějších grafik s malou pamětí hrající na Linuxu ze svého GPU víc muziky.

Extrémní nedostatek pamětí na trhu a vysoké ceny kvůli boomu (či bublině?) AI opět prodlouží éru, kdy lidovým standardem v herních PC je grafika s jen 8GB pamětí. Místo aby už konečně skončila, asi s těmito kapacitami bude třeba žít ještě hodně dlouho. Na platformě Linux teď vývojáři přišli s optimalizacemi, které cíleně mají zlepšit využití paměti na takových kartách – mimo jiné proto, že 8GB Radeonem bude vybavená Steam Machine.

Pro efektivní využití paměti u levných grafik

Autorem této optimalizace mající za cíl zlepšit hraní na levných GPU s například 8GB nebo případně ještě menší grafickou pamětí jsou vývojáři Valve, Intelu a Rade Hatu. Podle podrobného popisu od Natalie Vock z Valve a jde o snahu obecně zlepšit správu grafické paměti. Ta je v současné podobě problematická (minimálně v kombinaci s otevřenými ovladači GPU Radeon, které Valve používá v zařízeních se systémem SteamOS, nicméně odpovědnost zřejmě nese i OS).

Při hraní na grafikách s malou pamětí se totiž naráží na to, že systém nechá všechny aplikace běžící v počítači (a to nejen ty aktuálně spuštěné uživatelem, ale i různé systémové komponenty) alokovat desítky až stovky megabajtů v paměti GPU pro každou takovou úlohu, a to i když je spuštěná hra. V příkladu ukazovaném v blogpostu zabíraly různé neherní položky v paměti GPU 1829 MB z 8 GB a v případě, že uživatel spustí náročnou hru, neuvolní prostor.

Programy zabírající paměť GPU, aniž by byla spuštěna hra

Programy zabírající paměť GPU, aniž by byla spuštěna hra

Autor: Natalie Vock

Při ukázkovém spuštění Cyberpunku 2077 tak hra dostala jen 6105 MB a musela používat dalších 1370 MB v operační paměti, což přináší značné propady výkonu.

Přidělení paměti pro Cyberpunk 2077 před zlepšením správy VRAM

Přidělení paměti pro Cyberpunk 2077 před zlepšením správy VRAM

Autor: Natalie Vock

Řešením problému má být komponenta či systémový program nazvaný dmem cgroup controller, který používá funkci cgroups k sofistikovanějšímu řízení alokace grafické paměti jednotlivým úlohám. Využívá toho, že každý program má přidělenu vlastní cgroup, pro kterou lze definovat, zda ji preferovat při přidělování grafické paměti a chránit jeho data před vyhozením z paměti GPU do běžné RAM, což je přesně ten problém, na který zde hra naráží.

Linux běžně nemá dobou představu o tom, která data by měla mít při přidělování grafické paměti přednost. Nicméně Natalie Vock přidala patche zlepšující chování v jádru a také úpravu komponenty plasma-foreground-booster, která v prostředí KDE automaticky hlídá, která okna jsou v popředí, a takovým dává jim prioritu. Zatímco v původní verzi řídila jenom prioritu aplikace pro využití CPU, nově byla přidána i schopnost prioritizovat proces pro potřeby přidělení paměti GPU. Když je spuštěná nějaká hra, dostane tím pádem prioritu před ostatními programy na pozadí včetně třeba webového prohlížeče, který by jinak mohl dost paměti zkonzumovat.

Využitím této schopnosti lze docílit toho, že správa grafické paměti při běhu hry vytěsní z grafické paměti nikoliv část dat hry, ale data ostatních programů, které během hraní typicky stejně běží jen na pozadí nebo minimalizované a není tak třeba jejich data ponechávat v paměti GPU. S touto úpravou pak Cyberpunk 2077 ve stejné situaci jako v prvním případu dostane přiděleno 7395 MB, což je přesně velikost paměti, kterou si hra vyžádala. Naopak se výrazně omezí množství paměti zabrané neherními „příživníky“. Výsledkem by mělo být mnohem plynulejší hraní bez propadů FPS způsobených tím, že data nebyla v paměti GPU, ale jenom v pomalé operační paměti počítače.

Přidělení paměti pro Cyberpunk 2077 po zlepšení správy VRAM

Přidělení paměti pro Cyberpunk 2077 po zlepšení správy VRAM

Autor: Natalie Vock

Lepší hraní na Linuxu a Steam Machine

Toto nemusí znamenat, že by vám přechod na Linux výrazně pomohl, pokud hrajete s na počítači s 8GB grafickou kartou a máte Windows. Jde asi spíš o opravu dosavadního slabšího místa v herních schopnostech Linuxu, než nalezení nějakých doteď obecně nevyužívaných rezerv (i když porovnat efektivitu využití VRAM mezi oběma platformami by asi bylo zajímavé). Nicméně i coby oprava bude tato změna pro hráče na Linuxu užitečná a zejména pomůže chystané konzoli či herním počítači Valve Steam Machine.

Steam Machine se vrací. Valve vydává vlastní herní PC či konzoli a gamepad Steam Controller Přečtěte si také:

Steam Machine se vrací. Valve vydává vlastní herní PC či konzoli a gamepad Steam Controller

Ta běží na Linuxové distribuci SteamOS a kvůli ceně dostala právě grafiku s 8GB pamětí, odvozenou od Radeonu RX 7600. To bylo jistým zdrojem obav. S tímto vylepšením správy grafické paměti v Linuxu by ale každopádně měla lépe zvládat náročnější hry, až se Steam Machine podaří vydat (její vypuštění se opozdilo právě kvůli nepříznivému vývoji cen pamětí).

Steam Machine už měl být na trhu, teď jej Valve odsouvá a zdražuje. Kdy se dočkáme? Přečtěte si také:

Steam Machine už měl být na trhu, teď jej Valve odsouvá a zdražuje. Kdy se dočkáme?

Těžit z této změny budou zatím zdá se jen grafické karty AMD Radeon a Intel Arc s otevřenými ovladači amdgpu a xe a grafiky Nvidia s otevřeným ovladače Noveau. Je totiž třeba, aby ovladač v jádru podporoval funkci dmem cgroups (a zřejmě je zde i závislost na systemd). Standardní proprietární ovladač grafik Nvidia, který většinou hráči asi budou používat, tyto opravy kvůli absenci podpory pro dmem cgroups zatím nepodporuje. Zároveň je třeba mít nainstalované utility dmemcg-booster a plasma-foreground-booster pro prostředí KDE/Plasma (které využívá SteamOS), případně pro jiná prostředí dmemcg-booster a gamescope. První položka (dmemcg-booster) má však být jen dočasným řešením, než se podpora pro potřební nastavovování priorit různých cgroups dostane i do standardního kódu systemd – to se stane, až bude dokončen návrh potřených rozhraní.

Samotné patche implementující toto zlepšení správy grafické paměti zatím zřejmě nebyly upstreamovány do jádra Linuxu a momentálně je tak k jejich využití či testování třeba opatchované jádro.

dane

Do SteamOSu by se ale asi vzhledem k provázanosti s Valve dostat mohly a tím pádem by měla být i snaha o jejich upstreamování, aby se na Linuxu lepší využití paměti hrami bylo standardním chováním. K tomu ovšem také distribuce budou potřebovat začlenit i příslušné utility. Už teď by zřejmě měly být integrovány v distribuci CachyOS (při použití KDE) od verze jádra 7.0rc7–2, dále jsou k dispozici patche pro distribuci Arch.

Zdroje: techPowerUp, Github

Autor článku

Redaktor portálu Cnews.cz. Zaměřuje se na procesory, mobilní SoC, grafické karty, disky a další počítačový hardware. Profil autora →

Kvíz týdne

Tyto konektory zná každý. Ale víte, co jejich zkratky doopravdy znamenají?
1/9 otázek