Linuxové jádro 6.13 a Mesa 24.3: nejen Vulkan pro 12 let staré Radeony

8. 11. 2024
Doba čtení: 4 minuty

Sdílet

AMD EPYC 9005 Autor: AMD
AMD EPYC 9005
V novinkách pro další verzi linuxového jádra se aktuálně činí AMD, která řeší jak efektivitu chodu Radeonů, tak vylepšení pro svá CPU z hlediska výkonu, efektivity plánování úloh i snižování dopadu oprav na Spectre.

Ovládání režimu Zero RPM pro Radeony RX 7000

Do jaderných ovladačů AMDGPU/AMDKFD zamířil pull request přidávající nové vlastnosti a patche. Mimo jiné zprovozňuje možnost nastavovat běh aktuálních Radeonů RX 7000 (generace RDNA3) v režimu „zero RPM“, kdy tyto karty zcela vypnou chod ventilátorů (umožní-li to nároky na jejich výkon), a to obecně pro karty s řídící logikou SMU13, tedy uvedenou poslední generaci. 

Do jádra tak přibývá další sympatická novinka vedle dalších vylepšení a oprav (zobrazení pro generace DCN 3.5.x a DCN 4.x, další opravy pro 8k rozlišení, opravy pro běh s OLED displeji, rozličné čištění kódu apod.).

Možnost přepnout grafickou kartu do režimu pasivního chlazení v klidovém běhu je v Radeon Software na platformě Windows přítomna běžně a lze ji nastavit v tomto ovládacím GUI. 

Na Linuxu nic takového nemáme, kód zpřístupňuje možnost tuto hodnotu ručně upravit skrze sysfs soubor fan_zero_rpm. Další soubor fan_zero_rpm_stop_temperature, jak již název naznačuje, slouží k definování hodnoty teploty, při které se ventilátory vypnout (v principu tedy jde o mezní hodnoty, nad kterou se ventilátory opět automaticky aktivují).

Související: Mesa 24.3 s podporou Vulkan 1.3 pro starší Radeony

Ovladač RADV z balíku Mesa obsahuje nyní kód, kterým v podpoře API Vulkan verze 1.3 vyhovují i staré Radeony generací GFX6 a GFX7. Jde o modely typu Cape Verde / Pitcairn / Tahiti / Oland, tedy například Radeony HD 7950, v rámci sedmé generace pak řady s kódovými označeními jako Bonaire, Kabini, Kaveri či Hawaii, tedy například Radeon R9 290 a jemu architektonicky odpovídající (u)GPU.

Toto je poměrně důležitý krok vpřed pro karty, které ještě někde, navzdory své energetické totální neefektivitě, mohou být v provozu – vzpomeňme únorový článek o Radeonu HD 5850, u nějž jednoho dne přestala ve výchozím nastavení fungovat podpora ve Steam Proton, neb Valve převedlo toto API z OpenGL na Vulkan. Pokud generace následná, tedy HD 7000, má nadále jakous-takous podporu, je to dobře (na Windows její podpora skončila před šesti lety). 

Za nový kód vděčíme opět vývojářům z Valve, úpravy do projektu Mesa zaslal vývojář Samuel Pitoiset.

Patche pro AMD CPU s více typy procesorových jader

V rámci příprav jádra 6.13 pracují v AMD i na lepší podpoře heterogenního uspořádání svých CPU, tedy takových CPU, která nesou jak „velká“, tak „malá“ CPU jádra. 

U AMD nejde o tak radikální rozdíl jako u Intelu, kde velká jádra typicky uměla HT a AVX-512 a malá nikoli, neb byla „Atomová“ (pročež už od Alder Lake Intel raději zařízl podporu AVX-512 a nyní s Arrow Lake vyhodil i HyperThreading), u AMD jde o jádra lišící se převážně provozními parametry, tedy např. Zen5 a Zen5c, kde „kondenzovanější“ jádra dosahují nižších taktů, ale lze jich na danou plochu křemíku vyrobit více.

Z hlediska softwarového potřebuje AMD vyřešit rozpoznávání hybridních CPU vybavených oběma typy jader a samozřejmě i logiku zajišťující optimální rozřazování úloh na jednotlivé typy jader. 

Vývoj probíhá v příslušní vývojové větvi jádra na Gitu. Patche přijdou vhod i pro Intel, neb jak objasňuje Mario Limonciello z AMD, jejich sada přidává identifikaci topologie CPU (pro AMD i Intel) a tuto identifikaci dále používá v CPPC kódu pro rozpoznání boost numeratoru, které AMD používá pro ony dva typy různé taktovaných CPU jader. Ovladače jako amd_pstate potřebují tuto podporu v jádře k tomu, aby si korektně nastavily příslušnou hodnotu boost numeratoru pro výpočet maximální frekvence CPU jader, se kterou budou pracovat.

Další patch pro vývojovou větev (tip/tip.git's x86/cpu) přináší novou nastavitelnou vlastnost AMD Workload Classification, s jejíž pomocí bude indikováno, zdali dané CPU podporuje na zátěži založenou heuristickou zpětnou vazbu, využitelnou pro operační systém v rozhodování o přidělování úloh schedulerem. 

Jak ale konstatuje Phoronix, tyto patche jsou další na dlouhé cestě běžící už řadu měsíců, v jejímž rámci se AMD snaží dotáhnout optimalizace pro současné a budoucí firemní procesory. S Linuxem 6.13 tedy distribuce dostanou efektivnější chod posledních generací procesorů AMD, práce však i nadále pokračují vysokým tempem.

AMD ERAPS, nový způsob mírnění dopadu oprav na chyby typu Spectre

Ač AMD byla chybami typu Spectre zasažena méně než Intel, i její vývojáři stále vymýšlejí efektivnější cesty, jak dále snižovat výkonnostní dopad různých záplat na chyby tohoto typu. Nově v rámci stejné vývojové větve (tip/tip.git's x86/cpu) najdeme kód implementující podporu věci, která ještě není dostatečně popsána v dokumentaci.

ict ve školství 24

Jde o ERAPS, neboli Enhanced Return Address Prediction Security, metodu získávající zpět část výkonnostního propadu záplat na chyby typu Spectre, které AMD za poslední roky vyvinula, novou obranu proti spekulativním útokům využívajícím Return Stack Buffer.

Podrobnější popis se skrývá v patchi, jehož autorem je Amit Shah a do vývojové větve jej zaslal Borislav Petkov, oba z AMD. Upravuje četnost prováděných výmazů TLB, které se nemusí provádět při VMEXIT a provádění mazání RSB častěji, než je nezbytně nutné. Jelikož by se podpora měla nacházet v aktuálních procesorech AMD EPYC řady 9005, můžeme vyhlížet brzké provedení srovnávacích testů na Phoronixu.

Autor článku

Příznivec open-source rád píšící i o ne-IT tématech. Odpůrce softwarových patentů a omezování občanských svobod ve prospěch korporací.