Ryzen má hardwarovou chybu, zamrzává na instrukcích FMA. AMD ji prý opraví mikrokódem

10

Že jsou chyby v programech, to už je všední věc. „Bugy“ v hardwaru ale až tak časté nejsou. Respektive se obvykle podaří ohlídat, aby se jejich projevy nedostaly až k uživateli. Když se však vynoří „v reálu“, jde o velký průšvih. Ten teď zdá se visí nad procesory Ryzen, uvedenými začátkem měsíce. V aktuálním křemíku je totiž chyba, která může způsobit zamrznutí počítače, tedy dosti závažný problém.

Problémy Ryzenu způsobují instrukce FMA3 (operace fused multiply-add užitečné pro náročné výpočty). Přesněji řečeno asi specifická situace při jejich využití, jinak by byl problém odhalen ještě před uvedením. Chybu zaregistroval uživatel na fóru HWBot.org při testování benchmarku Flops minulý týden. Binárka „x64-13-Haswell.exe“ uživatelům konzistentně vede k zamrznutí systému či pádu aplikace, přičemž jde o běžný neprivilegovaný kód pro CPU, který by toto nikdy neměl způsobit. Čip se zřejmě dostává do obávaného nepředvídaného stavu („unpredictable behavior“), což obvykle vede k zatuhnutí.

Chybu potvrdili další testující uživatelé a zřejmě nezávisí na použité RAM ani desce. Neprojeví se zřejmě pouze tehdy, pokud má CPU deaktivovanou technologii SMT. Pokud chcete kód vyzkoušet (program je open source), můžete použít odkázanou binárku. Předtím si ale uložte práci, jelikož při zamrznutí PC byste o ni přišli. Chyba zřejmě není závislá na operačním systému a AMD autorovi prý potvrdilo, že jde o hardwarovou závadu přímo v Ryzenu. Tedy o tzv. „erratum“ (častěji používáno v množném čísle errata), chybu hardwaru nalezenou po jeho dokončení a tedy neopravenou. V některých případech vede až k stažení produktu z trhu s velkými finančními náklady.

Oprava je na cestě

V tomto případě by ale prý podle AMD potíž měla být opravitelná softwarově pomocí aktualizace mikrokódu. Ve vláknu na HWBotu se objevila informace, že problém byl nalezen již začátkem února a interně jej programátoři již dokonce opravili či obešli. Ovšem otestování a ověření aktualizace trvá určitou dobu, spolu s otestováním samotných produktů. Tudíž se do v současnosti prodávaných desek, ani do nyní nabízených aktualizací jejich BIOSů (přesněji řečeno UEFi) ještě nestihla dostat. Mikrokód momentálně se nacházející v deskách byl údajně finalizován 27. ledna 2017.

fma-chyba-ryzen-hwbotOprava má tedy existovat a chyba tak doufejme nebude fatální. V tom by připomínala obdobný problém, který postihl před rokem procesory Skylake. Ty tehdy zamrzaly v programu Prime 95, pokud se použily instrukce AVX. Intel tehdy relativně rychle poskytl opravu také skrze aktualizace mikrokódu dodávané v nových BIOSech desek. Také v případě chyb v Ryzenu by měli aktualizaci mikrokódu výrobci desek začlenit do BIOSů, jež při spuštění PC nahrají aktualizovaný mikrokód do CPU; ten pak má zamezit výskytu chyby (pokud se vše povede). Kdy můžeme opravné BIOSy očekávat, ale zatím nevíme a bude to asi záviset také na jednotlivých výrobcích.

Přijde Ryzen o část výkonu?

Co zatím neznáme, je výkonnostní dopad, který by oprava teoreticky mohla mít. K nějaké degradaci by zde dojít mohlo. Záviset to bude na tom, jak přesně chyba vzniká, a co je pro její potlačení potřeba udělat. Nicméně je možné i to, že na výkonu nic nepoznáme – uvidíme, jak vše dopadne. Zmíněný problém Skylake se pokud vím podařilo odstranit bez zpomalení.

Epizoda z oblíbeného seriálu

Událost provokuje k přirovnáním s nechvalně známou chybou TLB v první prodejní (B2) verzi procesorů Phenom v letech 2007–2008. Její oprava tehdy snižovala výrazně výkon a dá se říct, že výrobci dodnes pošramocuje pověst. Připomínat jen tento případ ale není úplně fér, jelikož smůlu na závažné problémy měl od té doby často i Intel. Chyba návrhu čipové sady pro Sandy Bridge (2011) vedla dokonce k miliardu dolarů stojícímu stahování již vyrobených desek z trhu, již méně kritická chyba s uspáváním pak postihla i čipsety pro Haswell (2013). Přímo v procesorech měla (mimo již zmíněné nestability AVX v Skylake) neřešitelnou vadu architektura Haswell, které musel Intel kvůli nekorektnímu fungování (tedy hardwarové chybě) zpětně deaktivovat instrukce TSX (2014). A zcela nedávno přišel problém s degradujícími procesory Atom C2000 v serverech, který zřejmě Intel opět něco bude stát, neboť dochází ke stahování desek a zařízení z trhu.

amd-phenomPonaučení je takové, že komplexita současných čipů je natolik velká, že je nejen nemožné uvést čip zcela bez problémů (tak je tomu již desetiletí, typické CPU počítá svá errata na desítky), ale začíná být velmi těžké uhlídat i problémy nejzávažnějšího kalibru. Většina potíží, s kterými čipy jdou na trh, jsou natolik vzácné nebo nedůležité, že se ponechávají bez opravy, ovšem chyby, kdy dojde k zamrznutí nebo pádu na běžném kódu, jsou podstatně horší. Skylake a Zen 1 patrně naznačují, že podobných případů asi bude přibývat a inženýři Intelu a AMD na ně budou muset být připraveni. V případě Skylake Intel ve zkoušce obstál, doufejme tedy, že podobně se osvědčí i teď Zen a jeho tvůrci.

10 KOMENTÁŘE

  1. Prostě porodní bolest. Jak je uvedeno v článku, stávalo se to oběma firmám a stávat bude.
    Jestli je chyba ve spojení s SMT, není se čemu divit. Pro AMD je to nová technologie. Sice to padá na běžném kódu, ale je vidět že šance na pád systému z tohoto důvodu při běžném užívání bude hodně malá, jinak by sy „křičelo“ dříve a hlasitěji 😀
    Pokud to půjde vyřešit opravou mikrokódu bez dopadu na výkon, bude to fajn.