Co je to Hardware Accelerated GPU Scheduling pro grafické karty a co nám (ne)přinese?

3. 7. 2020

Sdílet

 Autor: techPowerUp
Květnový update Windows 10 přinesl novou volbu Hardware Accelerated GPU Scheduling. Teď k této zásadní změně fungování GPU aplikací a her máme víc detailů.

Minulý týden jsme informovali o tom, že se do ovladačů Nvidie pro grafiky GeForce dostala nová funkce Hardware Accelerated GPU Scheduling. Poté vyšel i první ovladač AMD, kde se tato volba objevila také (zatím jen pro GPU Navi 10). Co přesně od ní čekat, nebylo ze začátku moc jasné, Microsoft ale teď publikoval blog, kde význam této novinky přiblížil.

Hardware Accelerated GPU Scheduling je jedna z novinek, kterou přináší model ovladačů WDDM 2.7 (součást Windows 10 od aktualizace 2004). Jejím smyslem je zefektivnění schedulingu GPU – tedy přidělování výpočetního času grafického procesoru mezi jednotlivé aplikace.

Windows mají od příchodu Windows Vista (WDDM 1.0) plánovač GPU, který podobně jako scheduler CPU přiděluje čas na grafice jednotlivým aplikacím, díky čemuž je možné, aby grafiku sdílelo několik programů najednou. Tento plánovač je systémový proces běžící na CPU.

Toto ovšem klade určité překážky, jelikož komunikace mezi procesem běžícím na CPU a samotným GPU trvá nějakou dobu. Aplikace proto obvykle přidělují práci grafice například jen jednou za každý vykreslený snímek a to ještě dopředu s bufferingem (zatímco je zpracováván aktuální snímek, aplikace už zadává ten následující).

Velké překopání práce Windows s grafickou kartou

Z tohoto důvodu přináší Windows 10 v buildu 2004 alternativní plánovač grafiky, který běží přímo na GPU a dokáže práci přidělovat efektivněji. Protože komunikace mezi jím a GPU je rychlá, je možné přepínat kontext častěji a aplikace mohou zadávat grafice práci častěji po menších částech. To znamená, že se zkracuje doba prodleva mezi zadáváním úkolů a jejich zpracováním, a tedy se snižuje latence při využití GPU.

Vylepšení latencí a rychlosti odezvy v aplikacích, které používají GPU, je právě hlavním cílem funkce Hardware Accelerated GPU Scheduling. Většina práce, kterou plánování úloh GPU dělá, se přesouvá na dedikovaný hardwarový blok, který mají moderní grafiky. Hardware zajišťuje většinu operací, ačkoliv operační systém si pořád zachovává kontrolu například na přidělování úrovní priority.

windows 10 hardware scheduling setting Windows 10: Volba Hardware accelerted GPU Scheduling v nastaveních grafiky (Zdroj: Nvidia)

Tato novinka je přirozeně volitelná (pro starší GPU zůstane starší způsob práce) a momentálně není ani u nových GPU zapnutá automaticky. Zpočátku bude testován její dopad a případné negativní vedlejší účinky. Pokud si chcete Hardware Accelerated Scheduling zapnout, najdete tuto volbu v nastaveních Windows (sekce Systém, podmenu Obrazovka, pak úplně dole odkaz „Nastavení grafiky“).

Funkce bude k dispozici jen tehdy, pokud máte ovladač standardu WDDM 2.7, který ale zároveň musí mít explicitní podporu pro tento styl schedulingu. Současně také GPU musí obsahovat příslušný hardware.

U Nvidie je zdá se podpora v grafikách Pascal, Turing (a pravděpodobně i Volta). AMD zatím v beta ovladačích (k nalezení zde) poskytlo podporu pro Radeony řady RX 5700 a RX 5600, tedy pro GPU Navi 10. Které další čipy nebo generace GPU od něj budou podporované, zatím není známo.

Ovladače Nvidia GeForce s podporou DirectX 12 Ultimate 1600 První ovladače Nvidia GeForce s podporou DirectX 12 Ultimate přinesly také podporu pro Hardware Accelerated GPU Scheduling

Podle Microsoftu je hardwarová akcelerace schedulingu hodně zásadní změna ve fungování GPU pod Windows a zároveň hodně komplexní záležitost, takže povolení této funkce na určitém GPU vyžaduje hodně testování. Microsoft by ovladače, v nichž je chystaná podpora pro další čipy (asi hlavně Intel a AMD) měl předběžně zpřístupňovat v rámci programu Windows Insider, takže pokud jste netrpěliví, můžete se do něj zkusit přihlásit. Případné chyby nebo regrese výkonu můžete Microsoftu hlásit zde.

Galerie: Přehled novinek ve Windows 10 verze 2004

Pro celoobrazovkové hraní se asi moc nezmění

Největší přínosy by proto Hardware Accelerated Scheduling měl mít tam, kde se na grafice střídají úlohy. Třeba když mát puštěné video či prohlížeč internetu s GPU akcelerací a vedle toho další okna a aplikace, které také mohou používat akceleraci na GPU. Naopak asi nelze moc čekat zvýšení výkonu (FPS) ve hrách, pokud je máte spuštěné v plné obrazovce – tam logicky hra okupuje grafickou kartu prakticky výhradně a tudíž asi není moc prostoru pro to, aby scheduling na GPU něco výrazně změnil.

Toto zdá se podporují první benchmarky. Tom's Hardware například shledal, že FPS ve hrách se v průměru prakticky nezměnily (i když jednotlivé výsledky měly výkyvy nahoru i dolu).

bitcoin_skoleni

Podle Microsoftu je nicméně očekávané, že uživatel by neměl při zapnutí hardwarového schedulingu nic poznat na výkonu (a pozitivním slova smyslu také doufejme, že by se nemělo nic rozbít). Současné aplikace se totiž naučily s nevýhodami CPU schedulingu počítat a kompenzovat latenci například oním zmíněným bufferingem snímků. Přechod na hardwarový scheduling GPU představuje modernizaci infrastruktury, která až pak v druhém sledu bude využitá pro uživatelsky viditelné inovace a nové možnosti ve hrách a programech.

Zdroj: Microsoft