AMD Ryzen: Windows 10 kennt AMD-SMT, aber nicht die CCX
Tests haben ergeben, dass der Scheduler von Windows 10 durchaus das SMT von AMDs Ryzen-CPUs erkennt und die Last auf diesen richtig verteilt. Probleme gibt es jedoch bei der CCX-Bauweise, die Windows 10 nicht kennt: Wechseln Threads zwischen den zwei 4-Kern-Clustern, kommt es zu massiv höheren Latenzen.
Die Webseite pcper.com hat in ersten Tests überprüft, woran es liegen könnte, dass Ryzen-CPUs mit Windows 7 teils deutlich schneller sind als mit Windows 10. Eine These beinhaltete die Erkennung der logischen Threads durch SMT. Windows 10 hat im Gegensatz zu Windows 7 den Bulldozer-"Fix" integriert, bei dem zusammenhängende Threads auf dasselbe Modul gelegt werden. Hätte Windows 10 Ryzen wie Bulldozer behandelt, wären die logischen Threads bevorzugt mit Arbeit versorgt worden. Diese These konnte pcper.com widerlegen.
In den Datenträgertests mit Ryzen-CPU fiel auf, dass wiederholt die "richtigen" Threads belastet wurden. Durften 16 Threads beim Test arbeiten, wurde pro physisch vorhandenen Kern je ein Thread nahezu voll ausgelastet. Die Last auf dem jeweils zweiten Thread stieg nur analog zu einer Senkung auf dem ersten. Wurde ein Limit von acht Threads für die Tests eingestellt, hat der Scheduler ebenfalls alle acht Kerne korrekt ausgelastet und nicht etwa virtuelle Threads oder vier von acht Kernen.
In einem zweiten Test hat pcper.com ein kleines Programm geschrieben, mit dem sich Workloads auf beliebige Threads legen lassen, ohne dass die CPU tatsächlich viel berechnen musste. Die Webseite hat die Zeiten bis zu einer Antwort gemessen und möchte so die Latenzen erfahren haben, wenn ein oder mehrere Threads belastet werden. Das Fazit beweist, was man laut Theorie erwarten konnte: Die Kommunikation innerhalb eines CPU Complexes (CCX) bestehend aus vier Kernen und Caches ist mit bis zu 45 Nanosekunden sehr schnell. Wechselt jedoch ein Threads zwischen den beiden CCX, steigt die Latenz um rund 100 ns. Kennt Windows 10 oder eine Anwendung mit eigenem Scheduler die CCX-Bauweise nicht und wechselt die Threads zwischen den CCX, kann die Performance je nach Häufigkeit der Wechsel mehr oder weniger stark einbrechen.
Am Rande sei erwähnt, dass der Test wunderbar die Vor- und Nachteile von AMDs CCX- und Intels Ring-Bus-Ansatz zeigt: AMD hat niedrige Latenzen innerhalb eines CCX, aber hohe darüber hinaus. Intel hat eine höhere Latenz von circa 80 ns, die dafür auf allen Kernen konstant bleibt.
Vorerst ist klar, dass Windows 10 mit AMDs SMT umgehen kann. Die CCX-Problematik lässt sich grundlegend mit Patches lösen, erfordert aber einen gewissen Aufwand seitens Microsoft beziehungsweise Spieleentwicklern. Unklar ist, warum Windows 7 bessere Leistungswerte als das aktuelle Betriebssystem zutage fördert und ob das mit den CCX zusammenhängt.
Die Frage ist nur: hat die Abteilung für Konsolen mit der Abteilung für Desktop OS gesprochen?
Microsoft wusste garantiert bescheid.. immerhin wird XBox Scorpio wahrscheinlich einiges von Zen verwenden, genau wie sie Vega Technik verwenden.
Microsoft wusste garantiert bescheid.. immerhin wird XBox Scorpio wahrscheinlich einiges von Zen verwenden, genau wie sie Vega Technik verwenden.
Jetzt fehlt mir nur noch ein AMD Ryzen zum Probieren.