AMD nimmt Stellung zu “Low-Res-Schwäche” von Ryzen
Am 2. März stellte AMD seine neuen High-End-Prozessoren der Serie Ryzen offiziell vor. Dabei konnte AMDs neue Prozessor-Architektur Zen die Erwartungen weitestgehend erfüllen und bot jede Menge Leistung zu gegenüber Intels 8‑Kern-Prozessoren deutlich geringeren Preisen. Während die Prozessoren auch bei Spielen sehr gute Leistung erbrachten, sofern wie bei uns in Full-HD-Auflösung oder andernorts mit 4K getestet wurde, ließen manche Publikationen das Testsystem in 720p laufen. Dabei offenbarten sich bei einigen Spielen deutlich sichtbare Schwächen. Ryzen hinkte den Intel-Systemen in niedriger Auflösung hinterher, weshalb sofort der Begriff “Low-Res-Schwäche” die Runde machte.
Nun ist Spielen in 720p für ein High-End-Ryzen-System vermutlich nicht das alltägliche Einsatzszenario und bei anderen, rein CPU-lastigen Tests hatte sich Ryzen gut geschlagen. Dennoch sind derartige Tests legitim, auch wir hatten in der Vergangenheit bei Mainboard- und CPU-Reviews in einer Disziplin absichtlich das uralte Quake III Arena in Auflösung 640x480 verwendet, da es die Grafikkarte derart wenig belastet, dass Schwächen bei der CPU oder bei der Infrastruktur (Durchsatz, Latenzen) ziemlich deutlich offenbart werden.
Was folgte, waren eine ganze Reihe an Spekulationen. Die schlechten L3-Cache- und Speicher-Latenzen, die der AIDA64-Test ausspuckt, sollen dafür verantwortlich sein. Oder der Windows-Scheduler, der Threads wahllos auf die einzelnen Kerne verteilt – auch über einen CCX (CPU Core Complex) hinweg – und damit für Leistungsverlust sorgt. Zur Erinnerung: Ryzen 7 “Summit Ridge” besteht aus zwei CCX zu je 4 Kernen und 8 MiB L3-Cache. Die beiden CCX sind via Fabric verbunden.
pcper.com hat daher analysiert, wie Windows 10 einzelne Threads verteilt. Dabei konnte widerlegt werden, dass sich womöglich der Bulldozer-Patch, der für Windows 7 nachträglich zur Installation bereitgestellt wurde und in Windows 10 ab Werk integriert sein soll, negativ auswirkt. Der Windows-10-Scheduler kann bei aktiviertem SMT durchaus zwischen physischen und logischen Kernen unterscheiden und belastet bevorzugt “echte” Kerne und logische erst dann, wenn keine physischen mehr frei sind:
Quelle: pcper.com
Doch dann ging es ans Eingemachte. Die Redakteure wollten wissen, ob der Windows-Scheduler auch die beiden CCXs erkennen und die Threads so legen kann, dass Wartezeit und unnötiger Datentransfer zwischen den beiden CCX via Fabric möglichst vermieden wird.
Quelle: pcper.com
Laut Messungen der Tester kommt es dabei zu enormen Latenzunterschieden. Während die Kommunikation zwischen den Kernen eines CCX nur ca. 45 ns dauerte, stiegen die Latenzzeiten bei der Kommunikation zweier Kerne in verschiedenen CCXs auf etwa 140 ns, also auf mehr als den 3‑fachen Wert. Daher wäre ein Scheduler-Patch von Microsoft, der die Ryzen-8-Kern-CPU wie ein Zwei-Sockel-System bestehend aus zwei 4‑Kern-Prozessoren betrachtet, überaus angebracht. Allerdings kann der Windows-10-Scheduler nach Meinung der Tester die Zen-CPU bereits jetzt durchaus korrekt ansteuern und das beschriebene Szenario vermeiden wo möglich:
it validates that Windows 10 is correctly enumerating the core structure of Ryzen and thus the scheduling comparisons we made above are 100% accurate. Windows 10 does not have a scheduling conflict on Ryzen processors.
AMD selber bleibt bei seiner Aussage im Rahmen eines AMA-Events auf Reddit.com direkt nach dem Launch, dass nicht der Windows-Scheduler das Hauptproblem sei, sondern die Software selbst. Das schreibt AMD in einer Stellungnahme:
Finally, we have reviewed the limited available evidence concerning performance deltas between Windows® 7 and Windows® 10 on the AMD Ryzen™ CPU. We do not believe there is an issue with scheduling differences between the two versions of Windows. Any differences in performance can be more likely attributed to software architecture differences between these OSes.
[..]
AMD believes that the Windows® 10 thread scheduler is operating properly for “Zen,”
Unabhängig davon soll es (vermutlich im April) einen Windows-Patch geben. Dieser betrifft allerdings nicht den Scheduler, sondern das Feature Core Parking, das einzelne Kerne schlafenlegen und damit Strom sparen kann. Dabei übertreibt es Windows 10 aktuell anscheinend ein wenig – im Gegensatz zu Windows 7, wie ComputerBase ausgetestet hat –, was zu Leistungsverlust führt, wenn das Energieschema auf “Ausbalanciert” steht.
Quelle: ComputerBase
Bis zur Veröffentlichung des Patches können sich Anwender behelfen, in dem das Energieschema auf “Höchstleistung” gestellt wird. Aktuelle Intel-Prozessoren sind davon nicht betroffen, da sowohl Kaby Lake als auch Skylake Core-Parking nicht nutzen.