News Beta-Chipsatztreiber: Destiny 2 startet erstmals auf AMD Ryzen 3000

Ned Flanders schrieb:
Anyway... eigentlich darf sowas nicht passieren.
Stimmt schon. Der Bug im Zufallsgenerator ist IMHO aber eigentlich nicht sooo tragisch, denn er besteht wohl "nur" darin, dass die CPU als Wert -1 zurückliefert und diesen Wert dennoch als gültig deklariert (also das Fehlerbit nicht setzt).

Aber spitzfindigerweise ist auch unendlich Mal -1 letztlich eine Zufallsfolge. Programme, die "echten" Zufall brauchen, dürfen sich nicht nur auf eine Quelle verlassen. Vermutlich landet hier irgendwas in einer Endlosschleife, weil es bei einem als ungültig interpretierten Wert (-1) sofort einen neuen Versuch startet (und wieder -1 zurückbekommt).

Zudem hatten AMD CPUs schon früher mit RDRAND Probleme; sich ausschließlich auf dieses Feature zu verlassen war auch aus diesem Grund eher "ungeschickt" bzw. man hat halt auch bei Bungie nur auf Intel-Systemen getestet.

Wenn man aber schon in der Implementierung auf Bare-Metal geht, sollte man schon ausgiebig testen. Die RDRAND-Implementierung von AMD ist bspw. auch bei einwandfreier Funktion ca. 3x langsamer als bei Intel, das könnte ja im Zweifel auch entscheidend sein.
 
  • Gefällt mir
Reaktionen: Ned Flanders
-1 ist halt schlecht, wenn man den Wert als Index verwenden will.
Ergänzung ()

Gast0ne schrieb:
Aber spitzfindigerweise ist auch unendlich Mal -1 letztlich eine Zufallsfolge.

Eigentlich nicht. Das nächste Element ist mit P=1 identisch.
Ergänzung ()

Gast0ne schrieb:
Die RDRAND-Implementierung von AMD ist bspw. auch bei einwandfreier Funktion ca. 3x langsamer als bei Intel,
Hast du eine Quelle dafür?
 
Zuletzt bearbeitet von einem Moderator:
  • Gefällt mir
Reaktionen: Ned Flanders
ZeroStrat schrieb:
-1 ist halt schlecht, wenn man den Wert als Index verwenden will.
Na schön, wenn man direkt mit dem Wert in die Tabelle greift. Aber eigentlich sollte man dann den Wert als unsigned interpretieren und ab in die Hash-Funktion damit. Sonst wär's ja selten dämlich.
 
  • Gefällt mir
Reaktionen: Ned Flanders
Ned Flanders schrieb:
Das stimmt so nicht. Siehe oben. (Jedenfalls dann nicht, wenn einem 4-5% ST Leistung im Zweifelsfall mehr Wert sind als 3-4W Verbrauch im Idle - Das kann ja jeder frei entscheiden - imho bemerkt man beides nicht)
frisch aufgesetzt bekommt man den energiesparplan gar nicht. Im neuen ~50MB Treiber ist er nicht vorhanden.
 
ZeroStrat schrieb:
Hast du eine Quelle dafür?
Wikipedia.
On an Intel Core i7-7700K, 4500 MHz (45 x 100 MHz) processor (Kaby Lake-S microarchitecture), a single RDRAND or RDSEED instruction takes 110ns or 463 clock cycles, [...] on Ivy Bridge processors RDRAND takes up to 117 clock cycles. On an AMD Ryzen CPU, each of the instructions takes around 1200 clock cycles for 16-bit or 32-bit operand, and around 2500 clock cycles for a 64-bit operand.

Also eher noch langsamer (ich hatte 400 zu 1200 im Kopf). Aber Wikipedia selbst nennt keine Quellen.

Im AMD Architecture Programmer's Manual steht dann auch noch:
If the returned value is invalid, software must execute the instruction again. Software should implement a retry limit to ensure forward progress of code.

Und es ist ja nicht so, dass keine Alternative bestünde:

AMD: AMD RNG Library
OpenCL: clRNG
 
  • Gefällt mir
Reaktionen: ZeroStrat und Ned Flanders
Software should implement a retry limit to ensure forward progress of code.

Ok, da haben wir dann die Verkettung die augenscheinlich zu den Problemen in Destiny und systemd geführt hat. Macht Sinn.

SavageSkull schrieb:
Im neuen ~50MB Treiber ist er nicht vorhanden.

Der ist allerdings auch BETA. Eventuell hat die Final ihn oder MS ist bis dahin soweit und hat das ganze in Windows.
 
Zuletzt bearbeitet:
corvus schrieb:
Hier starten halt Destiny II und ein paar Linuxsysteme nicht. In beiden Fällen kaum verwunderlich, dass das erst niemand gemerkt hat :D :D :D
Also egal ob Intel oder AMD: Wenn man nicht ein einziges Mal die Top 10 Spiele zumindest mal startet, dann ist das schon grob fahrlässig, um nicht zu sagen Dummheit. Destiny 2 hat über 1 Million tägliche User - das ist mehr als jedes Spiel auf Steam schafft. Damit dürfte das irgendwo in den Top 5 der aktuell meist gespielten Spiele sein.

So viel Fahrlässigkeit traue ich AMD nicht zu. Ich denke auch eher, dass der Fehler schon früher bekannt war, man aber eben keine Lösung hatte. Oder er sich erst gegen Ende eingeschlichen hat. Wobei man nach den QA-Tests eben nichts mehr ändern sollte...
 
RobinSword schrieb:
So viel Fahrlässigkeit traue ich AMD nicht zu.
Ich schon. Da dürfte man in der CPU-Abteilung gemeint haben: Errata und gut ist. Die Betriebssystem-Kerne bzw. die Krypto-APIs von Linux und Windows kommen ja damit klar, weil deren Entropy-Pools eben nicht nur RDRAND benutzen.

Das Userland-Code direkt RDRAND und keine OS-APIs für kryptografisch sicheren Zufall nutzt, dürfte wirklich sehr, sehr selten sein. Und eigentlich ein schlechtes Beispiel des NIH-Syndroms; für sowas gibt's aus gutem Grund APIs.

Dass es dann ausgerechnet Destiny 2 mit diesem Shitstorm-Potential trifft, war natürlich Pech. Womöglich hat irgendein Game-Tester das Ding auch mal gestartet, den Absturz aber ggf. ganz anderen Ursachen zugeschoben und nicht weiter priorisiert.
 
Lesenswert ist übrigens auch der Post von dem Typen auf Reddit auf den Robert Hallok da antwortet.

Ich mein, wer baut sich denn ein Ryzen 3000 Sys zusammen (und "watched every YouTube video and read every techie article I could find about your new CPUs"). und echauffiert sich dann gnadenlos, dass AMD nicht kommuniziert habe das alte Boards ein BIOS update benötigen bevor man das System starten kann.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: LukS
Ned Flanders schrieb:
Der ist allerdings auch BETA. Eventuell hat die Final ihn oder MS ist bis dahin soweit und hat das ganze in Windows.
auch der finale Treiber auf der AMD Seite, der mit release von zen2 raus gekommen ist, ist nur 50MB groß und hat den Energiesparplan nicht dabei.
Habe ein Intel System durch meinen 2700x auf x570 ersetzt und nur den aktuellen Treiber installiert und keinen energiesparplan durch den Treiber bekommen.
 
Ned Flanders schrieb:
Gilt das nicht für beide?

Jain, wie gesagt systemd nimmt hier eine ganz andere Stellung im System ein. Das Thema mit Zufallszahlengeneratoren die nicht richtig funktionieren ist nicht neu, und auch ältere CPUs haben dieses Problem, auch wenn es nach dem Suspend auftrat. Der Fix für dieses spezifische Problem ist auch schon länger vorhanden (unter anderem Debian 10 hat ihn von Anfang an dabei gehabt), aber man wollte ihn einfach nicht einspielen weil sie sich nicht für zuständig betrachten. Das Hilft nur dem User oder dem Admin wenig bei dem die Systeme nicht mehr starten.
Lenard hätte es wie Linus machen sollen, sich öffentlich und in feinster Umgangssprache über das Problem auslassen und den Fix einspielen. Das hätte er bereits vor Monaten machen können.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: yummycandy, Gast0ne und Ned Flanders
Ned Flanders schrieb:
Ich mein, wer baut sich denn ein Ryzen 3000 Sys zusammen (und "watched every YouTube video and read every techie article I could find about your new CPUs"). und echauffiert sich dann gnadenlos, dass AMD nicht kommuniziert habe das alte Boards ein BIOS update benötigen bevor man das System starten kann.
Depp halt. Sonst hätte er mitbekommen, dass AMD für diesen Zweck Boot-Kits bereitstellt. Gratis. Und das war schon bei Ryzen 1000 so. Und BIOS-Updates hat man auch schon bei AM3 und AM3+ gebraucht.

Ganz ehrlich: Wenn ich AMD wäre, gäbe es schlicht neue Boards für neue CPUs. Das ist Win-Win für AMD, die Board-Hersteller und Intel. Und die Kunden haben nix anderes verdient.
 
  • Gefällt mir
Reaktionen: [wege]mini
Gast0ne schrieb:
Wenn ich AMD wäre

Zum Glück bist Du es nicht ;-)

Upgrade Pfade sind schon was feines... nicht für AMD, nicht für die Board Hersteller, aber als Kunde find ich das super.
 
  • Gefällt mir
Reaktionen: LukS
mkdr schrieb:
Und wieso ist Destiny 2 das einzige Spiel mit dem Problem?

Weil es offentlich kein Fall Back hat wenn es mit dem Ergebnis unzufrieden ist. Das nennt man dann Verkettung von Umständen bis hin zum Problem.
 
@ekin06: Sicherlich, zum 200. Jahrestag des Schwupdizitätsgesetzes, mit welchem am 29.07.1819 zum erstenmal die Howolstrowskinski-Theorie, durch Erwin Brömmeke im Selbstversuch belegt werden konnte, darf man an diesen denkwürdigen Moment gerne mal erinnern, aber in wie fern steht dies in Zusammenhang mit diesem Thread?
 
  • Gefällt mir
Reaktionen: NerdmitHerz
@Ganzir
Wie meinen? Ich bin verwirrt. Ich hörte zum ersten mal davon... in diesem Thread... gleich 3 mal. :D
Und ich weiß eigentlich immer noch nicht so richtig was es ist. hehe
 
Cool, es braucht einen Beta Chipset Driver um ein Spiel zu starten, weit sind wir gekommen :volllol:
 
Zurück
Oben