Jádro v Ubuntu zpomalí výpočty na kartách AMD až dvaačtyřicetkrát, oprava je na cestě
Kernelový tým Ubuntu sám dopředu upozornil, že jádro 7.0.0-28.28 obsahuje chybu v ovladači amdgpu. Výpočty přes ROCm kvůli ní běží až dvaačtyřicetkrát pomaleji – z devíti sekund se stane 388. Hraní ani běžná práce se to netýká. Oprava už je v jádře 7.0.13 a opravené jádro Ubuntu má vyjít v týdnu od 2. srpna.

Když se do jádra Linuxu dostane chyba, obvykle se o tom uživatelé dozvědí až od někoho, komu přestalo fungovat. Tady to bylo naopak: kernelový tým Ubuntu vydal 16. července varování dřív, než chybné jádro doputovalo ke všem.
Co se stalo
Jádro 7.0.0-28.28 pro Ubuntu 26.04 a pro takzvaný HWE stack Ubuntu 24.04 LTS obsahuje chybu v ovladači amdgpu. Projeví se u výpočtů, které používají ROCm – což je obdoba CUDA od NVIDIE, tedy vrstva, přes kterou běží na grafických kartách AMD strojové učení a další výpočetní úlohy.
Čísla z hlášení jsou nezvyklá. Úloha, která zabrala 9 sekund, trvala 388 sekund. To je zhruba dvaačtyřicetinásobek. Jako příklad tým uvádí generování obrázků modelem Stable Diffusion XL přes rozhraní ComfyUI.
Podstatné je, že nejde o zamrznutí ani pád. Systém běží dál, jen výrazně pomaleji – přesně ten druh chyby, kterého si člověk nemusí všimnout, dokud nezačne měřit.
Co je HWE stack a proč se to týká i LTS
Že chyba dopadá i na Ubuntu 24.04 LTS, může překvapit – vydání s dlouhou podporou mají pověst konzervativních. Jenže LTS vydání nabízí volbu: buď zůstat na jádře, se kterým vyšlo, nebo přejít na takzvaný HWE stack, tedy novější jádro a grafické ovladače přebrané z pozdějších vydání.
Smysl je hlavně v novém hardwaru: čerstvě koupený počítač často se čtyři roky starým jádrem pořádně nefunguje. Daň je právě tohle – spolu s podporou nových karet přicházejí i jejich čerstvé chyby. Kdo na 24.04 zůstal u původního jádra, tuhle regresi nepotká.
Jak zjistit, na čem jedu
Verzi běžícího jádra vypíše jediný příkaz:
uname -r
Když ve výpisu je 7.0.0-28 a počítač se používá k výpočtům na kartě AMD, je to ten dotčený případ. Kdo tam má cokoliv jiného, se aktualizací může chvíli počkat a rovnou přeskočit na opravené vydání.
Koho se to netýká
Hráčů ani běžných uživatelů. Chyba sedí v části ovladače, která obsluhuje heterogenní správu paměti, tedy sdílení paměti mezi procesorem a grafickou kartou při výpočtech. Vykreslování obrazu jde jinou cestou.
Zasažení jsou tedy hlavně ti, kdo mají Radeon jako výpočetní kartu – domácí generování obrázků, trénování modelů, vědecké výpočty. Tedy nasazení, kde je AMD dlouhodobě v roli vyzyvatele NVIDIE a kde se každý takový zádrhel počítá.
Co s tím
Rada od kernelového týmu je prostá: zůstat na dosavadním jádře. Kdo už 7.0.0-28 nainstalovaný má a naráží na zpomalení, může při startu počítače v nabídce GRUB vybrat předchozí verzi jádra a nabootovat z ní.
Oprava existuje. Do jádra Linuxu se dostala ve verzi 7.0.13, konkrétním commitem, který upravuje opakovací smyčku v dotčené části ovladače. Ubuntu ji zabalilo do jádra 7.0.0-29.29, které bylo 22. července zpřístupněno v testovacím repozitáři, a řádné vydání je naplánované na týden od 2. srpna.
Proč to stojí za zaznamenání
Ne kvůli samotné chybě – regrese ve výkonu se v jádře objevují pravidelně a tahle bude za pár dní zalátaná.
Zajímavý je způsob, jakým se to řešilo. Chyba nevznikla v Ubuntu, ale výš, v opravné verzi jádra 7.0.12, odkud ji distribuce převzala. Distribuce, které bezpečnostní a opravné verze přebírají rychleji, tak dostaly problém dřív – a rychleji i opravu. Ubuntu, které je přebírá s odstupem, mělo naopak čas problém pojmenovat dřív, než na něj lidé narazí.
Veřejné varování ve stylu „tohle vám příští týden zpomalí výpočty, počkejte s aktualizací“ je u distribucí spíš výjimka. Přitom je to přesně to, co uživatel potřebuje: ne dodatečné vysvětlení, ale varování včas.
Zdroje: oznámení kernelového týmu Ubuntu a zpravodajství Phoronixu.