Hat Ryzen Probleme mit bestimmtem FMA3-Code? (Update)

Update 20.03.2017: Inzwi짯schen hat hei짯se eine offi짯zi짯el짯le Best채짯ti짯gung zum mut짯ma횩짯li짯chen FMA3-Bug in Ryzen von AMD erhal짯ten (sie짯he Ori짯gi짯nal짯mel짯dung unten). Man habe den Feh짯ler iden짯ti짯fi짯ziert und arbei짯te an einer L철sung, damit Main짯board-Her짯stel짯ler so bald wie m철g짯lich ein BIOS-Update zur Ver짯f체짯gung stel짯len k철nnen:

We are awa짯re of sel짯ect ins짯tances whe짯re FMA code can result in a sys짯tem hang. We have iden짯ti짯fied the root cau짯se and will soon release BIOS updates to mother짯board ven짯dors that will resol짯ve the issue. Plea짯se watch for new BIOS updates from your mother짯board ven짯dor to incor짯po짯ra짯te the짯se changes.

In der Zwi짯schen짯zeit hat짯te Golem eige짯ne Tests durch짯ge짯f체hrt und dabei fest짯ge짯stellt, dass der Feh짯ler aus짯schlie횩짯lich unter Win짯dows auf짯tritt und zwar sowohl mit dem fer짯ti짯gen Bina짯ry als auch mit selbst kom짯pi짯lier짯ten Ver짯sio짯nen und sogar sol짯chen, die mit einem ande짯ren Com짯pi짯ler erstellt wor짯den sind, was einen Com짯pi짯ler-Bug aus짯schloss , wohin짯ge짯gen der Feh짯ler unter Linux nicht zum Vor짯schein kam. Da der Absturz zudem nur bei akti짯vier짯tem SMT beob짯ach짯tet wer짯den konn짯te, tipp짯te Golem auf einen SMT-Feh짯ler oder eine 멗nkom짯pa짯ti짯bi짯li짯t채t in Win짯dows 10 und nicht auf einen Bug in Ryzen. Das w채re nun mit der off짯zi짯el짯len Best채짯ti짯gung durch AMD hin짯f채l짯lig. Da es aber noch immer kei짯nen Revi짯si짯on Gui짯de gibt zu Sum짯mit Ridge, blei짯ben die genaue짯ren Ursa짯chen und die Ma횩짯nah짯men zur Behe짯bung wei짯ter im Dunkeln.

Ori짯gi짯nal짯ar짯ti짯kel vom 15.03.2017
Der Ent짯wick짯ler Alex짯an짯der 쏮ys짯ti짯cial Yee ist bei sei짯nem selbst ent짯wi짯ckel짯ten Bench짯mark namens Flops auf einen Feh짯ler gesto짯횩en, der mit sei짯nem AMD-Ryzen-Sys짯tem zum sofor짯ti짯gen Absturz des gesam짯ten PCs f체hrt. Dabei han짯delt es sich um hoch짯op짯ti짯mier짯ten Code, der Sin짯gle-Pre짯cis짯i짯on-128-bit-FMA3-Befeh짯le ver짯wen짯det. Nach sei짯nem Pos짯ting bei HWBot haben eini짯ge User den Feh짯ler nach짯ge짯stellt, sodass man aus짯schlie짯횩en kann, dass es ein indi짯vi짯du짯el짯ler Defekt sei짯nes CPU-Exem짯plars oder ein Bug sei짯nes Main짯boards ist. Nur ob der Absturz auf짯grund eines Bugs im Ryzen-Pro짯zes짯sor geschieht oder auf짯grund eines feh짯ler짯haf짯ten Codes durch einen Bug im Com짯pi짯ler, ist noch nicht abschlie짯횩end gekl채rt, da sich AMD laut Hei짯se dazu noch nicht ge채u짯횩ert hat.

Wem nun ein Hor짯ror짯sze짯na짯rio vom Schla짯ge des Phe짯nom-TLB-Bugs vor dem inne짯ren Auge abl채uft, der kann (ver짯mut짯lich) beru짯higt wer짯den. Der TLB-Bug oder bes짯ser gesagt der dar짯auf fol짯gen짯de leis짯tungs짯min짯dern짯de Work짯around bestraf짯te prak짯tisch jeg짯li짯che Soft짯ware, da in einem moder짯nen Betriebs짯sys짯tem mit vir짯tu짯el짯ler Adress짯ver짯wal짯tung jedes Pro짯gramm von einem funk짯tio짯nie짯ren짯den Trans짯la짯ti짯on-Loo짯ka짯s짯i짯de-Buf짯fer pro짯fi짯tiert. Wenn hier ein Bug durch Deak짯ti짯vie짯ren von Fea짯tures umschifft wer짯den muss wirk짯lich fixen kann man einen Feh짯ler ja nur mit einem neu짯en Step짯ping so wirkt sich das nat체r짯lich nega짯tiv auf die Leis짯tung aus.

Soll짯te sich wirk짯lich ein Bug in die FMA3-Sek짯ti짯on der Ryzen-FPU geschli짯chen haben, der per AGE짯SA-Micro짯code-Update umschifft wer짯den m체ss짯te, so w채re das zwar 채rger짯lich f체r AMD, f체r den Anwen짯der unter dem Strich aber nur wenig rele짯vant, von der Trag짯wei짯te her eher ver짯gleich짯bar mit dem IDIV-Bug des Llano, als mit dem TLB-Bug des Phe짯nom. Damals hat짯te AMD sei짯ner K10-basier짯ten APU Llano eine Hard짯ware-IDIV-Ein짯heit spen짯diert; die jedoch unter bestimm짯ten Umst채n짯den feh짯ler짯haft arbei짯te짯te. Daher muss짯te AMD den neu짯en Pfad per BIOS-Update wie짯der deak짯ti짯vie짯ren, was die Leis짯tung bei den 채u횩erst sel짯ten vor짯kom짯men짯den Inte짯ger-Divi짯sio짯nen wie짯der auf K10-Niveau redu짯zier짯te. 횆hn짯lich liegt der Fall bei Ryzen. Kaum eine Soft짯ware nutzt FMA3-Code.

Ver짯wun짯der짯lich w채re es den짯noch soll짯te es sich wirk짯lich um einen Bug in Ryzens FMA3-Ein짯heit han짯deln , da Fused-Mul짯ti짯ply-Add mit 3 Ope짯ran짯den nichts Neu짯es ist bei AMD-Pro짯zes짯so짯ren, im Gegen짯satz zu IDIV bei Llano damals. Schon Bull짯do짯zer unter짯st체tz짯te Fused-Mul짯ti짯ply-Add, und zwar nicht nur das simp짯le FMA3, son짯dern sogar das vom ein짯ge짯stampf짯ten SSE5-Pro짯jekt abge짯lei짯te짯te FMA4. Seit Ryzen ver짯zich짯tet AMD jedoch auf FMA4 und beschei짯det sich wie Intel mit FMA3.

Dass kom짯ple짯xe Gebil짯de wie Pro짯zes짯so짯ren unz채h짯li짯ge Feh짯ler auf짯wei짯sen, ist nor짯mal. Vom Intel Has짯well zum Bei짯spiel sind aktu짯ell 172 Bugs doku짯men짯tiert, von Sky짯la짯ke 141. Zu AMDs Ryzen ist lei짯der noch kein Revi짯si짯on Gui짯de online. Unge짯w철hn짯lich ist eher, dass es so ein Bug tat짯s채ch짯lich auch mal repro짯du짯zier짯bar in die freie Wild짯bahn schafft. Nor짯ma짯ler짯wei짯se wird der Gro횩짯teil davon bereits in der Test짯pha짯se neu짯tra짯li짯siert oder die Umst채n짯de sind so uto짯pisch, dass sie in der Pra짯xis so gut wie nie auf짯tre짯ten. Aber hier merkt man dann wohl doch die kom짯plett tau짯fri짯sche Architektur.